@porscheinformatik/clr-addons 18.0.4 → 18.1.1
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/action-panel/action-panel-container-content.d.ts +5 -0
- package/action-panel/action-panel-container-footer.d.ts +5 -0
- package/action-panel/action-panel-container.d.ts +5 -0
- package/action-panel/action-panel.d.ts +14 -0
- package/action-panel/action-panel.module.d.ts +13 -0
- package/action-panel/index.d.ts +5 -0
- package/clr-addons.module.d.ts +2 -1
- package/datagrid/date-filter/date-filter.component.d.ts +8 -1
- package/datagrid/date-filter/date-filter.module.d.ts +3 -1
- package/daterangepicker/daterangepicker.module.d.ts +5 -4
- package/daterangepicker/directives/datepicker/datepicker.component.d.ts +2 -1
- package/daterangepicker/directives/daterangepicker/daterangepicker.directive.d.ts +6 -0
- package/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.d.ts +15 -2
- package/daterangepicker/directives/timepicker/timepicker.component.d.ts +33 -0
- package/daterangepicker/index.d.ts +3 -0
- package/daterangepicker/interfaces/timerange-preset.interface.d.ts +8 -0
- package/daterangepicker/interfaces/timerange.interface.d.ts +13 -0
- package/daterangepicker/models/time.model.d.ts +65 -0
- package/daterangepicker/providers/daterange-parsing.service.d.ts +3 -0
- package/daterangepicker/providers/daterange.service.d.ts +10 -1
- package/daterangepicker/validators/daterange-order.validator.d.ts +2 -1
- package/esm2022/action-panel/action-panel-container-content.mjs +22 -0
- package/esm2022/action-panel/action-panel-container-footer.mjs +22 -0
- package/esm2022/action-panel/action-panel-container.mjs +35 -0
- package/esm2022/action-panel/action-panel.mjs +80 -0
- package/esm2022/action-panel/action-panel.module.mjs +36 -0
- package/esm2022/action-panel/index.mjs +6 -0
- package/esm2022/clr-addons.module.mjs +7 -3
- package/esm2022/datagrid/date-filter/date-filter.component.mjs +45 -4
- package/esm2022/datagrid/date-filter/date-filter.module.mjs +6 -4
- package/esm2022/daterangepicker/daterangepicker.module.mjs +5 -2
- package/esm2022/daterangepicker/directives/datepicker/datepicker.component.mjs +5 -2
- package/esm2022/daterangepicker/directives/daterangepicker/daterangepicker.directive.mjs +76 -2
- package/esm2022/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.mjs +84 -14
- package/esm2022/daterangepicker/directives/timepicker/timepicker.component.mjs +54 -0
- package/esm2022/daterangepicker/index.mjs +4 -1
- package/esm2022/daterangepicker/interfaces/timerange-preset.interface.mjs +2 -0
- package/esm2022/daterangepicker/interfaces/timerange.interface.mjs +2 -0
- package/esm2022/daterangepicker/models/time.model.mjs +82 -0
- package/esm2022/daterangepicker/providers/daterange-parsing.service.mjs +21 -1
- package/esm2022/daterangepicker/providers/daterange.service.mjs +17 -5
- package/esm2022/daterangepicker/validators/daterange-order.validator.mjs +9 -2
- package/esm2022/history/history.mjs +3 -3
- package/esm2022/index.mjs +2 -1
- package/esm2022/main-nav-group/main-nav-group.mjs +2 -3
- package/fesm2022/clr-addons.mjs +564 -33
- package/fesm2022/clr-addons.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +4 -4
- package/styles/clr-addons-phs.css +74 -0
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
package/fesm2022/clr-addons.mjs
CHANGED
|
@@ -1232,7 +1232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
1232
1232
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
|
|
1233
1233
|
|
|
1234
1234
|
/*
|
|
1235
|
-
* Copyright (c) 2018-
|
|
1235
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
1236
1236
|
* This software is released under MIT license.
|
|
1237
1237
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1238
1238
|
*/
|
|
@@ -1288,7 +1288,6 @@ class ClrMainNavGroup {
|
|
|
1288
1288
|
closeMenus(selector) {
|
|
1289
1289
|
selector = '.main-container:not(.open-hamburger-menu) ' + selector;
|
|
1290
1290
|
const hiddenInputs = document.querySelectorAll(selector);
|
|
1291
|
-
// tslint:disable-next-line:prefer-for-of
|
|
1292
1291
|
for (let i = 0; i < hiddenInputs.length; i++) {
|
|
1293
1292
|
hiddenInputs[i].checked = false;
|
|
1294
1293
|
}
|
|
@@ -4527,11 +4526,11 @@ class ClrHistory {
|
|
|
4527
4526
|
this.historyService.setHistoryPinned(this.username, !this.pinActivated);
|
|
4528
4527
|
}
|
|
4529
4528
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, deps: [{ token: ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4530
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistory, selector: "clr-history", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, ngImport: i0, template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-
|
|
4529
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistory, selector: "clr-history", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, ngImport: i0, template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-outline-primary\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"24\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen>\n <label class=\"dropdown-header\" aria-hidden=\"true\">{{dropdownHeader}}</label>\n <button type=\"button\" clrDropdownItem *ngFor=\"let history of historyElements\" (click)=\"select(history)\">\n {{history.title}}\n </button>\n <div *ngIf=\"pinActive\" class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n <button clrDropdownItem (click)=\"togglePinHistory()\">\n <span *ngIf=\"pinActive && !pinActivated\">{{dropdownPin}}</span>\n <span *ngIf=\"pinActive && pinActivated\">{{dropdownUnpin}}</span>\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i2.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }] }); }
|
|
4531
4530
|
}
|
|
4532
4531
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, decorators: [{
|
|
4533
4532
|
type: Component,
|
|
4534
|
-
args: [{ selector: 'clr-history', template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-
|
|
4533
|
+
args: [{ selector: 'clr-history', template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-outline-primary\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"24\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen>\n <label class=\"dropdown-header\" aria-hidden=\"true\">{{dropdownHeader}}</label>\n <button type=\"button\" clrDropdownItem *ngFor=\"let history of historyElements\" (click)=\"select(history)\">\n {{history.title}}\n </button>\n <div *ngIf=\"pinActive\" class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n <button clrDropdownItem (click)=\"togglePinHistory()\">\n <span *ngIf=\"pinActive && !pinActivated\">{{dropdownPin}}</span>\n <span *ngIf=\"pinActive && pinActivated\">{{dropdownUnpin}}</span>\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n" }]
|
|
4535
4534
|
}], ctorParameters: () => [{ type: ClrHistoryService }, { type: HistoryProvider, decorators: [{
|
|
4536
4535
|
type: Inject,
|
|
4537
4536
|
args: [HISTORY_PROVIDER]
|
|
@@ -6435,6 +6434,7 @@ class ClrDateFilterComponent {
|
|
|
6435
6434
|
constructor(commonStrings, clrPopoverEventsService, filterContainer) {
|
|
6436
6435
|
this.commonStrings = commonStrings;
|
|
6437
6436
|
this.clrPopoverEventsService = clrPopoverEventsService;
|
|
6437
|
+
this.timeActive = false;
|
|
6438
6438
|
this.filterValueChange = new EventEmitter();
|
|
6439
6439
|
/**
|
|
6440
6440
|
* Internal values and accessor
|
|
@@ -6478,16 +6478,35 @@ class ClrDateFilterComponent {
|
|
|
6478
6478
|
get from() {
|
|
6479
6479
|
return this._from;
|
|
6480
6480
|
}
|
|
6481
|
+
get fromTime() {
|
|
6482
|
+
return this._fromTime;
|
|
6483
|
+
}
|
|
6484
|
+
get toTime() {
|
|
6485
|
+
return this._toTime;
|
|
6486
|
+
}
|
|
6481
6487
|
set from(from) {
|
|
6482
6488
|
if (typeof from === 'object' && from !== this._from) {
|
|
6483
6489
|
if (from && typeof from.setHours === 'function') {
|
|
6484
6490
|
from.setHours(0, 0, 0, 0); // set from-date to start of day
|
|
6485
6491
|
}
|
|
6492
|
+
if (this.fromTime) {
|
|
6493
|
+
const [hours, minutes, seconds] = this.fromTime.split(':').map(n => parseInt(n));
|
|
6494
|
+
from.setHours(hours, minutes, seconds ? seconds : 0, 0);
|
|
6495
|
+
}
|
|
6486
6496
|
this._from = from;
|
|
6487
6497
|
this._changes.next([this._from, this._to]);
|
|
6488
6498
|
this.filterValueChange.emit([this._from, this._to]);
|
|
6489
6499
|
}
|
|
6490
6500
|
}
|
|
6501
|
+
set fromTime(fromtime) {
|
|
6502
|
+
this._fromTime = fromtime;
|
|
6503
|
+
if (this._fromTime && this._from) {
|
|
6504
|
+
const [hours, minutes, seconds] = this._fromTime.split(':').map(n => parseInt(n));
|
|
6505
|
+
this._from.setHours(hours, minutes, seconds ? seconds : 0, 0);
|
|
6506
|
+
this._changes.next([this._from, this._to]);
|
|
6507
|
+
this.filterValueChange.emit([this._from, this._to]);
|
|
6508
|
+
}
|
|
6509
|
+
}
|
|
6491
6510
|
get to() {
|
|
6492
6511
|
return this._to;
|
|
6493
6512
|
}
|
|
@@ -6496,11 +6515,24 @@ class ClrDateFilterComponent {
|
|
|
6496
6515
|
if (to && typeof to.setHours === 'function') {
|
|
6497
6516
|
to.setHours(23, 59, 59, 999); // set to-date to end of day
|
|
6498
6517
|
}
|
|
6518
|
+
if (this.toTime) {
|
|
6519
|
+
const [hours, minutes, seconds] = this.toTime.split(':').map(n => parseInt(n));
|
|
6520
|
+
to.setHours(hours, minutes, seconds ? seconds : 0, 0);
|
|
6521
|
+
}
|
|
6499
6522
|
this._to = to;
|
|
6500
6523
|
this._changes.next([this._from, this._to]);
|
|
6501
6524
|
this.filterValueChange.emit([this._from, this._to]);
|
|
6502
6525
|
}
|
|
6503
6526
|
}
|
|
6527
|
+
set toTime(totime) {
|
|
6528
|
+
this._toTime = totime;
|
|
6529
|
+
if (this._toTime && this._to) {
|
|
6530
|
+
const [hours, minutes, seconds] = this._toTime.split(':').map(n => parseInt(n));
|
|
6531
|
+
this._to.setHours(hours, minutes, seconds ? seconds : 0, 0);
|
|
6532
|
+
this._changes.next([this._from, this._to]);
|
|
6533
|
+
this.filterValueChange.emit([this._from, this._to]);
|
|
6534
|
+
}
|
|
6535
|
+
}
|
|
6504
6536
|
/**
|
|
6505
6537
|
* Indicates if the filter is currently active, (at least one input is set)
|
|
6506
6538
|
*/
|
|
@@ -6537,6 +6569,8 @@ class ClrDateFilterComponent {
|
|
|
6537
6569
|
clearFilter() {
|
|
6538
6570
|
this._from = null;
|
|
6539
6571
|
this._to = null;
|
|
6572
|
+
this.fromTime = null;
|
|
6573
|
+
this.toTime = null;
|
|
6540
6574
|
this._changes.next([this._from, this._to]);
|
|
6541
6575
|
this.filterValueChange.emit([this._from, this._to]);
|
|
6542
6576
|
}
|
|
@@ -6544,12 +6578,14 @@ class ClrDateFilterComponent {
|
|
|
6544
6578
|
return other === this;
|
|
6545
6579
|
}
|
|
6546
6580
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterComponent, deps: [{ token: i2.ClrCommonStringsService }, { token: i2.ClrPopoverEventsService }, { token: i2.ClrDatagridFilter }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6547
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDateFilterComponent, selector: "clr-date-filter", inputs: { property: ["clrProperty", "property"], maxPlaceholder: ["clrFilterMaxPlaceholder", "maxPlaceholder"], minPlaceholder: ["clrFilterMinPlaceholder", "minPlaceholder"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, ngImport: i0, template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilter()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<clr-date-container>\n <input\n #input_from\n
|
|
6581
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDateFilterComponent, selector: "clr-date-filter", inputs: { timeActive: "timeActive", property: ["clrProperty", "property"], maxPlaceholder: ["clrFilterMaxPlaceholder", "maxPlaceholder"], minPlaceholder: ["clrFilterMinPlaceholder", "minPlaceholder"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, ngImport: i0, template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilter()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<ng-container *ngIf=\"!timeActive\">\n <clr-date-container>\n <input\n #input_from\n type=\"date\"\n name=\"from\"\n class=\"datagrid-date-filter-input\"\n [(clrDate)]=\"from\"\n [placeholder]=\"minPlaceholderValue\"\n [attr.aria-label]=\"minPlaceholderValue\"\n />\n </clr-date-container>\n <clr-date-container>\n <input\n type=\"date\"\n name=\"to\"\n class=\"datagrid-date-filter-input\"\n [(clrDate)]=\"to\"\n [placeholder]=\"maxPlaceholderValue\"\n [attr.aria-label]=\"maxPlaceholderValue\"\n />\n </clr-date-container>\n</ng-container>\n<ng-container *ngIf=\"timeActive\">\n <clr-date-time-container>\n <clr-date-container class=\"time-filter-active\">\n <input\n #input_from\n type=\"date\"\n name=\"from\"\n class=\"datagrid-date-filter-input time-filter-active-input\"\n [(clrDate)]=\"from\"\n [placeholder]=\"minPlaceholderValue\"\n [attr.aria-label]=\"minPlaceholderValue\"\n />\n </clr-date-container>\n <input clrTime type=\"time\" [(ngModel)]=\"fromTime\" />\n </clr-date-time-container>\n <clr-date-time-container>\n <clr-date-container class=\"time-filter-active\">\n <input\n type=\"date\"\n name=\"to\"\n class=\"datagrid-date-filter-input time-filter-active-input\"\n [(clrDate)]=\"to\"\n [placeholder]=\"maxPlaceholderValue\"\n [attr.aria-label]=\"maxPlaceholderValue\"\n />\n </clr-date-container>\n <input clrTime type=\"time\" [(ngModel)]=\"toTime\" />\n </clr-date-time-container>\n</ng-container>\n", styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}.time-filter-active{width:12rem}.time-filter-active-input{width:5rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2.ClrDateContainer, selector: "clr-date-container", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDateInput, selector: "[clrDate]", inputs: ["placeholder", "clrDate", "min", "max", "disabled"], outputs: ["clrDateChange"] }, { kind: "directive", type: i2.ClrDateInputValidator, selector: "[clrDate]" }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ClrDateTimeContainer, selector: "clr-date-time-container" }, { kind: "directive", type: ClrTimeInput, selector: "[clrTime]" }] }); }
|
|
6548
6582
|
}
|
|
6549
6583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterComponent, decorators: [{
|
|
6550
6584
|
type: Component,
|
|
6551
|
-
args: [{ selector: 'clr-date-filter', template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilter()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<clr-date-container>\n <input\n #input_from\n
|
|
6552
|
-
}], ctorParameters: () => [{ type: i2.ClrCommonStringsService }, { type: i2.ClrPopoverEventsService }, { type: i2.ClrDatagridFilter }], propDecorators: {
|
|
6585
|
+
args: [{ selector: 'clr-date-filter', template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilter()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<ng-container *ngIf=\"!timeActive\">\n <clr-date-container>\n <input\n #input_from\n type=\"date\"\n name=\"from\"\n class=\"datagrid-date-filter-input\"\n [(clrDate)]=\"from\"\n [placeholder]=\"minPlaceholderValue\"\n [attr.aria-label]=\"minPlaceholderValue\"\n />\n </clr-date-container>\n <clr-date-container>\n <input\n type=\"date\"\n name=\"to\"\n class=\"datagrid-date-filter-input\"\n [(clrDate)]=\"to\"\n [placeholder]=\"maxPlaceholderValue\"\n [attr.aria-label]=\"maxPlaceholderValue\"\n />\n </clr-date-container>\n</ng-container>\n<ng-container *ngIf=\"timeActive\">\n <clr-date-time-container>\n <clr-date-container class=\"time-filter-active\">\n <input\n #input_from\n type=\"date\"\n name=\"from\"\n class=\"datagrid-date-filter-input time-filter-active-input\"\n [(clrDate)]=\"from\"\n [placeholder]=\"minPlaceholderValue\"\n [attr.aria-label]=\"minPlaceholderValue\"\n />\n </clr-date-container>\n <input clrTime type=\"time\" [(ngModel)]=\"fromTime\" />\n </clr-date-time-container>\n <clr-date-time-container>\n <clr-date-container class=\"time-filter-active\">\n <input\n type=\"date\"\n name=\"to\"\n class=\"datagrid-date-filter-input time-filter-active-input\"\n [(clrDate)]=\"to\"\n [placeholder]=\"maxPlaceholderValue\"\n [attr.aria-label]=\"maxPlaceholderValue\"\n />\n </clr-date-container>\n <input clrTime type=\"time\" [(ngModel)]=\"toTime\" />\n </clr-date-time-container>\n</ng-container>\n", styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}.time-filter-active{width:12rem}.time-filter-active-input{width:5rem!important}\n"] }]
|
|
6586
|
+
}], ctorParameters: () => [{ type: i2.ClrCommonStringsService }, { type: i2.ClrPopoverEventsService }, { type: i2.ClrDatagridFilter }], propDecorators: { timeActive: [{
|
|
6587
|
+
type: Input
|
|
6588
|
+
}], property: [{
|
|
6553
6589
|
type: Input,
|
|
6554
6590
|
args: ['clrProperty']
|
|
6555
6591
|
}], maxPlaceholder: [{
|
|
@@ -6568,13 +6604,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
6568
6604
|
|
|
6569
6605
|
class ClrDateFilterModule {
|
|
6570
6606
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6571
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, declarations: [ClrDateFilterComponent], imports: [ClarityModule, CommonModule, FormsModule], exports: [ClrDateFilterComponent] }); }
|
|
6572
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, imports: [ClarityModule, CommonModule, FormsModule] }); }
|
|
6607
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, declarations: [ClrDateFilterComponent], imports: [ClarityModule, CommonModule, FormsModule, ClrDateTimeModule, ClrFormModule], exports: [ClrDateFilterComponent] }); }
|
|
6608
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, imports: [ClarityModule, CommonModule, FormsModule, ClrDateTimeModule, ClrFormModule] }); }
|
|
6573
6609
|
}
|
|
6574
6610
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, decorators: [{
|
|
6575
6611
|
type: NgModule,
|
|
6576
6612
|
args: [{
|
|
6577
|
-
imports: [ClarityModule, CommonModule, FormsModule],
|
|
6613
|
+
imports: [ClarityModule, CommonModule, FormsModule, ClrDateTimeModule, ClrFormModule],
|
|
6578
6614
|
declarations: [ClrDateFilterComponent],
|
|
6579
6615
|
exports: [ClrDateFilterComponent],
|
|
6580
6616
|
}]
|
|
@@ -6783,6 +6819,7 @@ class ClrDatepickerComponent {
|
|
|
6783
6819
|
* Maximum date that can be selected.
|
|
6784
6820
|
*/
|
|
6785
6821
|
this.maxDate = undefined;
|
|
6822
|
+
this.timeSelection = false;
|
|
6786
6823
|
/**
|
|
6787
6824
|
* Event triggered when value changes.
|
|
6788
6825
|
*/
|
|
@@ -6807,7 +6844,7 @@ class ClrDatepickerComponent {
|
|
|
6807
6844
|
this.inputElm.nativeElement.focus();
|
|
6808
6845
|
}
|
|
6809
6846
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDatepickerComponent, deps: [{ token: OpenedDatepickersTrackerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6810
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDatepickerComponent, selector: "clr-datepicker", inputs: { value: "value", label: "label", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "inputElm", first: true, predicate: ["inputElm"], descendants: true }, { propertyName: "clrDateContainer", first: true, predicate: ClrDateContainer, descendants: true }], ngImport: i0, template: "<clr-date-container>\n <label>{{ this.label }}</label>\n <input #inputElm clrDate [(clrDate)]=\"this.date\" [min]=\"this.minDateAttr\" [max]=\"this.maxDateAttr\" />\n</clr-date-container>\n", dependencies: [{ kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i2.ClrDateContainer, selector: "clr-date-container", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDateInput, selector: "[clrDate]", inputs: ["placeholder", "clrDate", "min", "max", "disabled"], outputs: ["clrDateChange"] }, { kind: "directive", type: i2.ClrDateInputValidator, selector: "[clrDate]" }] }); }
|
|
6847
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDatepickerComponent, selector: "clr-datepicker", inputs: { value: "value", label: "label", minDate: "minDate", maxDate: "maxDate", timeSelection: "timeSelection" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "inputElm", first: true, predicate: ["inputElm"], descendants: true }, { propertyName: "clrDateContainer", first: true, predicate: ClrDateContainer, descendants: true }], ngImport: i0, template: "<clr-date-container>\n <label>{{ this.label }}</label>\n <input #inputElm clrDate [(clrDate)]=\"this.date\" [min]=\"this.minDateAttr\" [max]=\"this.maxDateAttr\" />\n</clr-date-container>\n", dependencies: [{ kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i2.ClrDateContainer, selector: "clr-date-container", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDateInput, selector: "[clrDate]", inputs: ["placeholder", "clrDate", "min", "max", "disabled"], outputs: ["clrDateChange"] }, { kind: "directive", type: i2.ClrDateInputValidator, selector: "[clrDate]" }] }); }
|
|
6811
6848
|
}
|
|
6812
6849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDatepickerComponent, decorators: [{
|
|
6813
6850
|
type: Component,
|
|
@@ -6820,6 +6857,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
6820
6857
|
type: Input
|
|
6821
6858
|
}], maxDate: [{
|
|
6822
6859
|
type: Input
|
|
6860
|
+
}], timeSelection: [{
|
|
6861
|
+
type: Input
|
|
6823
6862
|
}], inputElm: [{
|
|
6824
6863
|
type: ViewChild,
|
|
6825
6864
|
args: ['inputElm']
|
|
@@ -7008,6 +7047,26 @@ class DaterangeParsingService {
|
|
|
7008
7047
|
const toDateStr = this.toLocaleDisplayFormatString(toDate);
|
|
7009
7048
|
return fromDateStr + separator + toDateStr;
|
|
7010
7049
|
}
|
|
7050
|
+
toLocaleStringWithTime(daterange, separator = SEPARATOR_TEXT_DEFAULT) {
|
|
7051
|
+
if (daterange == null) {
|
|
7052
|
+
return '';
|
|
7053
|
+
}
|
|
7054
|
+
const { from, to, fromTime, toTime } = daterange;
|
|
7055
|
+
if (from == null || to == null) {
|
|
7056
|
+
return '';
|
|
7057
|
+
}
|
|
7058
|
+
const fromDate = from.toDate();
|
|
7059
|
+
const toDate = to.toDate();
|
|
7060
|
+
const fromDateStr = this.toLocaleDisplayFormatString(fromDate);
|
|
7061
|
+
const toDateStr = this.toLocaleDisplayFormatString(toDate);
|
|
7062
|
+
if (fromTime === null || toTime === null) {
|
|
7063
|
+
return fromDateStr + separator + toDateStr;
|
|
7064
|
+
}
|
|
7065
|
+
return fromDateStr + ' ' + this.toTimeString(fromTime) + separator + toDateStr + ' ' + this.toTimeString(toTime);
|
|
7066
|
+
}
|
|
7067
|
+
toTimeString(time) {
|
|
7068
|
+
return time?.toHTML5SpecTimeString();
|
|
7069
|
+
}
|
|
7011
7070
|
/**
|
|
7012
7071
|
* Convert date to locale display format string.
|
|
7013
7072
|
* @param date - Javascript Date object.
|
|
@@ -7167,6 +7226,8 @@ class DaterangeService {
|
|
|
7167
7226
|
/** Maximum date that can be selected. */
|
|
7168
7227
|
this.maxDate = null;
|
|
7169
7228
|
this._selectedDaterange = null;
|
|
7229
|
+
this.timeActive = false;
|
|
7230
|
+
this.timeSecondsActive = false;
|
|
7170
7231
|
/**
|
|
7171
7232
|
* Event triggered when value changes.
|
|
7172
7233
|
*/
|
|
@@ -7190,16 +7251,26 @@ class DaterangeService {
|
|
|
7190
7251
|
this.valueChange.emit(value);
|
|
7191
7252
|
}
|
|
7192
7253
|
}
|
|
7254
|
+
/**
|
|
7255
|
+
* Set selected Timerange value.
|
|
7256
|
+
* @param value - New selected Timerange value.
|
|
7257
|
+
* @param triggerEvent - Trigger change event (default true).
|
|
7258
|
+
*/
|
|
7259
|
+
updateSelectedTimerange(value, triggerEvent = true) {
|
|
7260
|
+
this._selectedDaterange = value;
|
|
7261
|
+
if (triggerEvent) {
|
|
7262
|
+
this.valueChange.emit(value);
|
|
7263
|
+
}
|
|
7264
|
+
}
|
|
7193
7265
|
/**
|
|
7194
7266
|
* Checks if daterange is valid.
|
|
7195
7267
|
* Daterange is considered invalid when it's empty, or when one of it's properties is absent.
|
|
7196
7268
|
* @returns Wether daterange is valid.
|
|
7197
7269
|
*/
|
|
7198
7270
|
isValid() {
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7202
|
-
return true;
|
|
7271
|
+
return !(this._selectedDaterange == null ||
|
|
7272
|
+
this._selectedDaterange.from == null ||
|
|
7273
|
+
this._selectedDaterange.to == null);
|
|
7203
7274
|
}
|
|
7204
7275
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DaterangeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7205
7276
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DaterangeService }); }
|
|
@@ -7306,6 +7377,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
7306
7377
|
args: [ClrControlSuccess]
|
|
7307
7378
|
}] } });
|
|
7308
7379
|
|
|
7380
|
+
/**
|
|
7381
|
+
* Time model.
|
|
7382
|
+
* Takes care of keeping records of full time.
|
|
7383
|
+
*/
|
|
7384
|
+
class TimeModel {
|
|
7385
|
+
constructor(...args) {
|
|
7386
|
+
if (args[0] instanceof Date) {
|
|
7387
|
+
const date = args[0];
|
|
7388
|
+
this.hours = date.getHours();
|
|
7389
|
+
this.minutes = date.getMinutes();
|
|
7390
|
+
this.seconds = date.getSeconds();
|
|
7391
|
+
}
|
|
7392
|
+
else if (typeof args[0] === 'string') {
|
|
7393
|
+
const [hours, minutes, seconds] = args[0].split(':').map(n => parseInt(n));
|
|
7394
|
+
this.hours = hours;
|
|
7395
|
+
this.minutes = minutes;
|
|
7396
|
+
this.seconds = seconds;
|
|
7397
|
+
}
|
|
7398
|
+
else {
|
|
7399
|
+
this.hours = args[0];
|
|
7400
|
+
this.minutes = args[1];
|
|
7401
|
+
this.seconds = args[2];
|
|
7402
|
+
}
|
|
7403
|
+
}
|
|
7404
|
+
/**
|
|
7405
|
+
* Checks if the passed value is equal to current time model.
|
|
7406
|
+
* @param value - Time model.
|
|
7407
|
+
* @returns Whether value is equal to current time model.
|
|
7408
|
+
*/
|
|
7409
|
+
isEqual(value) {
|
|
7410
|
+
if (value) {
|
|
7411
|
+
return this.hours === value.hours && this.minutes === value.minutes && this.seconds === value.seconds;
|
|
7412
|
+
}
|
|
7413
|
+
return false;
|
|
7414
|
+
}
|
|
7415
|
+
/**
|
|
7416
|
+
* Checks if current time model is after value.
|
|
7417
|
+
* @param value - time model.
|
|
7418
|
+
* @returns Whether current time model is after value.
|
|
7419
|
+
*/
|
|
7420
|
+
isAfter(value) {
|
|
7421
|
+
return this.toDate() > value.toDate();
|
|
7422
|
+
}
|
|
7423
|
+
/**
|
|
7424
|
+
* Checks if current time model is before value.
|
|
7425
|
+
* @param value - Time model.
|
|
7426
|
+
* @returns Whether current time model is before value.
|
|
7427
|
+
*/
|
|
7428
|
+
isBefore(value) {
|
|
7429
|
+
return this.toDate() < value.toDate();
|
|
7430
|
+
}
|
|
7431
|
+
/**
|
|
7432
|
+
* Clones the current odel.
|
|
7433
|
+
* @returns Cloned model.
|
|
7434
|
+
*/
|
|
7435
|
+
clone() {
|
|
7436
|
+
return new TimeModel(this.hours, this.minutes, this.seconds);
|
|
7437
|
+
}
|
|
7438
|
+
/**
|
|
7439
|
+
* Convert to Javascript Date object.
|
|
7440
|
+
* @returns Javascript Date object.
|
|
7441
|
+
*/
|
|
7442
|
+
toDate() {
|
|
7443
|
+
return new Date(new Date().setHours(this.hours, this.minutes, this.seconds ? this.seconds : 0));
|
|
7444
|
+
}
|
|
7445
|
+
/**
|
|
7446
|
+
* To HTML5 time spec string.
|
|
7447
|
+
* @returns Time as HTML5 spec string.
|
|
7448
|
+
*/
|
|
7449
|
+
toHTML5SpecTimeString() {
|
|
7450
|
+
// The clarity time picker uses the format 'hh:mm:ss'.
|
|
7451
|
+
if (this.seconds) {
|
|
7452
|
+
return this.pad(this.hours) + ':' + this.pad(this.minutes) + ':' + this.pad(this.seconds);
|
|
7453
|
+
}
|
|
7454
|
+
// The clarity time picker uses the format 'hh:mm'.
|
|
7455
|
+
return this.pad(this.hours) + ':' + this.pad(this.minutes);
|
|
7456
|
+
}
|
|
7457
|
+
pad(num) {
|
|
7458
|
+
return num < 10 ? `0${num}` : `${num}`;
|
|
7459
|
+
}
|
|
7460
|
+
}
|
|
7461
|
+
|
|
7309
7462
|
/**
|
|
7310
7463
|
* Daterangepicker.
|
|
7311
7464
|
*/
|
|
@@ -7323,6 +7476,16 @@ class ClrDaterangepickerDirective {
|
|
|
7323
7476
|
this.daterangeService.maxDate = !value ? null : new DayModel(value);
|
|
7324
7477
|
}
|
|
7325
7478
|
get placeholderText() {
|
|
7479
|
+
if (this.daterangeService.timeActive) {
|
|
7480
|
+
return (this.placeholder ??
|
|
7481
|
+
this.daterangeParsingService.localeFormat +
|
|
7482
|
+
' hh:mm' +
|
|
7483
|
+
(this.daterangeService.timeSecondsActive ? ':ss' : '') +
|
|
7484
|
+
this.separatorText +
|
|
7485
|
+
this.daterangeParsingService.localeFormat +
|
|
7486
|
+
' hh:mm' +
|
|
7487
|
+
(this.daterangeService.timeSecondsActive ? ':ss' : ''));
|
|
7488
|
+
}
|
|
7326
7489
|
return (this.placeholder ??
|
|
7327
7490
|
this.daterangeParsingService.localeFormat + this.separatorText + this.daterangeParsingService.localeFormat);
|
|
7328
7491
|
}
|
|
@@ -7364,6 +7527,11 @@ class ClrDaterangepickerDirective {
|
|
|
7364
7527
|
* Locale text between 'from' and 'to' dateranges.
|
|
7365
7528
|
*/
|
|
7366
7529
|
this.separatorText = SEPARATOR_TEXT_DEFAULT;
|
|
7530
|
+
this.regex = /^[0-9]+[mhdw]$/;
|
|
7531
|
+
this.regexW = /^[0-9]+w$/;
|
|
7532
|
+
this.regexH = /^[0-9]+h$/;
|
|
7533
|
+
this.regexD = /^[0-9]+d$/;
|
|
7534
|
+
this.regexM = /^[0-9]+m$/;
|
|
7367
7535
|
/**
|
|
7368
7536
|
* Event that is triggered when value changes.
|
|
7369
7537
|
*/
|
|
@@ -7411,6 +7579,15 @@ class ClrDaterangepickerDirective {
|
|
|
7411
7579
|
if (this.control.control.hasError('invalid')) {
|
|
7412
7580
|
delete this.control.control.errors.invalid;
|
|
7413
7581
|
}
|
|
7582
|
+
if (!target) {
|
|
7583
|
+
return;
|
|
7584
|
+
}
|
|
7585
|
+
console.log('aaaaa', target, this.regex.test(target.value));
|
|
7586
|
+
if (target.value && this.regex.test(target.value)) {
|
|
7587
|
+
// handle easy access
|
|
7588
|
+
this.handleEasyAccess(target.value);
|
|
7589
|
+
return;
|
|
7590
|
+
}
|
|
7414
7591
|
// If there is nothing to parse, `ClrDaterangeRequiredValidator` will take care of this.
|
|
7415
7592
|
if (!target.value) {
|
|
7416
7593
|
this.daterangeService.updateSelectedDaterange(null, true);
|
|
@@ -7468,7 +7645,19 @@ class ClrDaterangepickerDirective {
|
|
|
7468
7645
|
* Update input with friendly daterange text.
|
|
7469
7646
|
*/
|
|
7470
7647
|
updateInput() {
|
|
7471
|
-
|
|
7648
|
+
let dateString;
|
|
7649
|
+
if (this.daterangeService.timeActive) {
|
|
7650
|
+
if (this.daterangeService.selectedDaterange &&
|
|
7651
|
+
Object.prototype.hasOwnProperty.call(this.daterangeService.selectedDaterange, 'fromTime')) {
|
|
7652
|
+
this.daterangeService.updateSelectedDaterange(this.daterangeService.selectedDaterange
|
|
7653
|
+
? this.daterangeService.selectedDaterange
|
|
7654
|
+
: null, false);
|
|
7655
|
+
}
|
|
7656
|
+
dateString = this.daterangeParsingService.toLocaleStringWithTime(this.daterangeService.selectedDaterange, this.separatorText);
|
|
7657
|
+
}
|
|
7658
|
+
else {
|
|
7659
|
+
dateString = this.daterangeParsingService.toLocaleString(this.daterangeService.selectedDaterange, this.separatorText);
|
|
7660
|
+
}
|
|
7472
7661
|
this.renderer.setProperty(this.element.nativeElement, 'value', dateString);
|
|
7473
7662
|
}
|
|
7474
7663
|
/**
|
|
@@ -7499,6 +7688,43 @@ class ClrDaterangepickerDirective {
|
|
|
7499
7688
|
setDisabledState(disabled) {
|
|
7500
7689
|
this.daterangeControlStateService.disabled = disabled;
|
|
7501
7690
|
}
|
|
7691
|
+
handleEasyAccess(value) {
|
|
7692
|
+
const now = new Date();
|
|
7693
|
+
if (this.regexW.test(value)) {
|
|
7694
|
+
value = value.replace('w', '');
|
|
7695
|
+
now.setDate(now.getDate() - Number(value) * 7);
|
|
7696
|
+
this.daterangeService.updateSelectedDaterange({
|
|
7697
|
+
from: new DayModel(now),
|
|
7698
|
+
to: new DayModel(new Date()),
|
|
7699
|
+
}, true);
|
|
7700
|
+
}
|
|
7701
|
+
else if (this.regexD.test(value)) {
|
|
7702
|
+
value = value.replace('d', '');
|
|
7703
|
+
now.setDate(now.getDate() - Number(value));
|
|
7704
|
+
this.daterangeService.updateSelectedDaterange({
|
|
7705
|
+
from: new DayModel(now),
|
|
7706
|
+
to: new DayModel(new Date()),
|
|
7707
|
+
}, true);
|
|
7708
|
+
}
|
|
7709
|
+
else if (this.regexH.test(value)) {
|
|
7710
|
+
value = value.replace('h', '');
|
|
7711
|
+
this.daterangeService.updateSelectedDaterange({
|
|
7712
|
+
from: new DayModel(new Date()),
|
|
7713
|
+
to: new DayModel(new Date()),
|
|
7714
|
+
fromTime: new TimeModel(new Date(new Date().getTime() - Number(value) * 3600000)),
|
|
7715
|
+
toTime: new TimeModel(new Date()),
|
|
7716
|
+
}, true);
|
|
7717
|
+
}
|
|
7718
|
+
else if (this.regexM.test(value)) {
|
|
7719
|
+
value = value.replace('m', '');
|
|
7720
|
+
this.daterangeService.updateSelectedDaterange({
|
|
7721
|
+
from: new DayModel(new Date()),
|
|
7722
|
+
to: new DayModel(new Date()),
|
|
7723
|
+
fromTime: new TimeModel(new Date(new Date().getTime() - Number(value) * 60000)),
|
|
7724
|
+
toTime: new TimeModel(new Date()),
|
|
7725
|
+
}, true);
|
|
7726
|
+
}
|
|
7727
|
+
}
|
|
7502
7728
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDaterangepickerDirective, deps: [{ token: i3$1.NgControl, self: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DaterangeControlStateService }, { token: ControlIdService }, { token: DaterangeService }, { token: DaterangeParsingService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7503
7729
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: ClrDaterangepickerDirective, selector: "[clrDaterangepicker]", inputs: { min: "min", max: "max", separatorText: "separatorText", placeholder: "placeholder", id: "id", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "change": "onChangeEvent($event.target)", "focus": "focusEvent()", "blur": "blurEvent()" }, properties: { "attr.placeholder": "this.placeholderText", "id": "this.id", "disabled": "this.disabled", "attr.type": "this.inputType", "class.clr-input": "this.inputClass" } }, ngImport: i0 }); }
|
|
7504
7730
|
}
|
|
@@ -7548,7 +7774,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
7548
7774
|
args: ['blur']
|
|
7549
7775
|
}] } });
|
|
7550
7776
|
|
|
7551
|
-
|
|
7777
|
+
class ClrTimepickerComponent {
|
|
7778
|
+
get time() {
|
|
7779
|
+
if (typeof this.value === 'string') {
|
|
7780
|
+
return this.value;
|
|
7781
|
+
}
|
|
7782
|
+
if (this.value) {
|
|
7783
|
+
return this.value.toHTML5SpecTimeString();
|
|
7784
|
+
}
|
|
7785
|
+
}
|
|
7786
|
+
/**
|
|
7787
|
+
* Set time.
|
|
7788
|
+
*/
|
|
7789
|
+
set time(val) {
|
|
7790
|
+
this.value = val;
|
|
7791
|
+
this.valueChange.emit(new TimeModel(val));
|
|
7792
|
+
}
|
|
7793
|
+
constructor() {
|
|
7794
|
+
/**
|
|
7795
|
+
* Activate/Deactivate seconds handling.
|
|
7796
|
+
*/
|
|
7797
|
+
this.activateSeconds = false;
|
|
7798
|
+
/**
|
|
7799
|
+
* Event triggered when value changes.
|
|
7800
|
+
*/
|
|
7801
|
+
this.valueChange = new EventEmitter();
|
|
7802
|
+
}
|
|
7803
|
+
/**
|
|
7804
|
+
* Focus input.
|
|
7805
|
+
*/
|
|
7806
|
+
focus() {
|
|
7807
|
+
this.inputElm.nativeElement.focus();
|
|
7808
|
+
}
|
|
7809
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrTimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7810
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrTimepickerComponent, selector: "clr-timepicker", inputs: { value: "value", activateSeconds: "activateSeconds" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "inputElm", first: true, predicate: ["inputElm"], descendants: true }], ngImport: i0, template: "<clr-input-container class=\"clr-input-time\">\n <label class=\"clr-control-label\"> </label>\n <input clrInput #inputElm [(ngModel)]=\"this.time\" type=\"time\" step=\"{{ activateSeconds ? 1 : 60 }}\" />\n</clr-input-container>\n", styles: [".clr-input-time{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3$1.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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }] }); }
|
|
7811
|
+
}
|
|
7812
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrTimepickerComponent, decorators: [{
|
|
7813
|
+
type: Component,
|
|
7814
|
+
args: [{ selector: 'clr-timepicker', template: "<clr-input-container class=\"clr-input-time\">\n <label class=\"clr-control-label\"> </label>\n <input clrInput #inputElm [(ngModel)]=\"this.time\" type=\"time\" step=\"{{ activateSeconds ? 1 : 60 }}\" />\n</clr-input-container>\n", styles: [".clr-input-time{margin-top:0}\n"] }]
|
|
7815
|
+
}], ctorParameters: () => [], propDecorators: { value: [{
|
|
7816
|
+
type: Input
|
|
7817
|
+
}], activateSeconds: [{
|
|
7818
|
+
type: Input
|
|
7819
|
+
}], inputElm: [{
|
|
7820
|
+
type: ViewChild,
|
|
7821
|
+
args: ['inputElm']
|
|
7822
|
+
}], valueChange: [{
|
|
7823
|
+
type: Output
|
|
7824
|
+
}] } });
|
|
7825
|
+
|
|
7826
|
+
ClarityIcons.addIcons(calendarIcon, exclamationCircleIcon, checkCircleIcon, windowCloseIcon, trashIcon);
|
|
7552
7827
|
/**
|
|
7553
7828
|
* Daterangepicker container.
|
|
7554
7829
|
*/
|
|
@@ -7568,6 +7843,11 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7568
7843
|
get dateFrom() {
|
|
7569
7844
|
return this.daterangeService.selectedDaterange?.from;
|
|
7570
7845
|
}
|
|
7846
|
+
get timeFrom() {
|
|
7847
|
+
return this.daterangeService.selectedDaterange
|
|
7848
|
+
? this.daterangeService.selectedDaterange.fromTime
|
|
7849
|
+
: null;
|
|
7850
|
+
}
|
|
7571
7851
|
/**
|
|
7572
7852
|
* Date to.
|
|
7573
7853
|
* @returns Date to.
|
|
@@ -7575,6 +7855,11 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7575
7855
|
get dateTo() {
|
|
7576
7856
|
return this.daterangeService.selectedDaterange?.to;
|
|
7577
7857
|
}
|
|
7858
|
+
get timeTo() {
|
|
7859
|
+
return this.daterangeService.selectedDaterange
|
|
7860
|
+
? this.daterangeService.selectedDaterange.toTime
|
|
7861
|
+
: null;
|
|
7862
|
+
}
|
|
7578
7863
|
/**
|
|
7579
7864
|
* Minimum date that can be selected.
|
|
7580
7865
|
* @returns Minimum date that can be selected.
|
|
@@ -7616,6 +7901,12 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7616
7901
|
* List of presets.
|
|
7617
7902
|
*/
|
|
7618
7903
|
this.presets = [];
|
|
7904
|
+
/**
|
|
7905
|
+
* List of time presets.
|
|
7906
|
+
*/
|
|
7907
|
+
this.presetsDateTime = [];
|
|
7908
|
+
this.timeSelection = false;
|
|
7909
|
+
this.activateSeconds = false;
|
|
7619
7910
|
/**
|
|
7620
7911
|
* Text for the 'from' label.
|
|
7621
7912
|
*/
|
|
@@ -7641,6 +7932,8 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7641
7932
|
if (this.daterangepickerDirective == null) {
|
|
7642
7933
|
throw new Error('`ClrDaterangepickerContainerComponent` requires an child `ClrDaterangepickerDirective`');
|
|
7643
7934
|
}
|
|
7935
|
+
this.daterangeService.timeActive = this.timeSelection;
|
|
7936
|
+
this.daterangeService.timeSecondsActive = this.activateSeconds;
|
|
7644
7937
|
this.listenForDaterangeValueChanges();
|
|
7645
7938
|
this.listenForOpenedDatepickersTrackerChanges();
|
|
7646
7939
|
this.listenForPopoverToggleChanges();
|
|
@@ -7705,20 +7998,40 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7705
7998
|
* @param value - Date from.
|
|
7706
7999
|
*/
|
|
7707
8000
|
onDateFromChange(value) {
|
|
7708
|
-
this.daterangeService.
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
8001
|
+
if (this.daterangeService.timeActive) {
|
|
8002
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8003
|
+
from: value,
|
|
8004
|
+
to: this.dateTo,
|
|
8005
|
+
fromTime: this.timeFrom,
|
|
8006
|
+
toTime: this.timeTo,
|
|
8007
|
+
});
|
|
8008
|
+
}
|
|
8009
|
+
else {
|
|
8010
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8011
|
+
from: value,
|
|
8012
|
+
to: this.dateTo,
|
|
8013
|
+
});
|
|
8014
|
+
}
|
|
7712
8015
|
}
|
|
7713
8016
|
/**
|
|
7714
8017
|
* Event triggered when date to changed.
|
|
7715
8018
|
* @param value - Date to.
|
|
7716
8019
|
*/
|
|
7717
8020
|
onDateToChange(value) {
|
|
7718
|
-
this.daterangeService.
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
8021
|
+
if (this.daterangeService.timeActive) {
|
|
8022
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8023
|
+
from: this.dateFrom,
|
|
8024
|
+
to: value,
|
|
8025
|
+
fromTime: this.timeFrom,
|
|
8026
|
+
toTime: this.timeTo,
|
|
8027
|
+
});
|
|
8028
|
+
}
|
|
8029
|
+
else {
|
|
8030
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8031
|
+
from: this.dateFrom,
|
|
8032
|
+
to: value,
|
|
8033
|
+
});
|
|
8034
|
+
}
|
|
7722
8035
|
}
|
|
7723
8036
|
/**
|
|
7724
8037
|
* Apply selected preset.
|
|
@@ -7733,8 +8046,33 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7733
8046
|
this.clrPopoverToggleService.open = false;
|
|
7734
8047
|
}
|
|
7735
8048
|
}
|
|
8049
|
+
applyPresetTime(preset) {
|
|
8050
|
+
const range = preset.range();
|
|
8051
|
+
this.daterangeService.updateSelectedDaterange(range);
|
|
8052
|
+
// Close popover here, because it's not possible to conditionally
|
|
8053
|
+
// apply `clrPopoverCloseButton` directive on preset button.
|
|
8054
|
+
if (this.daterangeService.isValid()) {
|
|
8055
|
+
this.clrPopoverToggleService.open = false;
|
|
8056
|
+
}
|
|
8057
|
+
}
|
|
8058
|
+
onTimeFromChange(value) {
|
|
8059
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8060
|
+
from: this.dateFrom,
|
|
8061
|
+
to: this.dateTo,
|
|
8062
|
+
fromTime: value,
|
|
8063
|
+
toTime: this.timeTo,
|
|
8064
|
+
});
|
|
8065
|
+
}
|
|
8066
|
+
onTimeToChange(value) {
|
|
8067
|
+
this.daterangeService.updateSelectedDaterange({
|
|
8068
|
+
from: this.dateFrom,
|
|
8069
|
+
to: this.dateTo,
|
|
8070
|
+
fromTime: this.timeFrom,
|
|
8071
|
+
toTime: value,
|
|
8072
|
+
});
|
|
8073
|
+
}
|
|
7736
8074
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDaterangepickerContainerComponent, deps: [{ token: i2.ClrPopoverEventsService }, { token: i2.ClrPopoverToggleService }, { token: i2.ClrCommonStringsService }, { token: i2.ClrLayout, optional: true }, { token: DaterangeControlStateService }, { token: OpenedDatepickersTrackerService }, { token: DaterangeService }, { token: DaterangeParsingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7737
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDaterangepickerContainerComponent, selector: "clr-daterangepicker-container", inputs: { presets: "presets", clrPosition: "clrPosition", labelFrom: "labelFrom", labelTo: "labelTo" }, host: { properties: { "class": "this.classes" } }, providers: [
|
|
8075
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDaterangepickerContainerComponent, selector: "clr-daterangepicker-container", inputs: { presets: "presets", presetsDateTime: "presetsDateTime", timeSelection: "timeSelection", activateSeconds: "activateSeconds", clrPosition: "clrPosition", labelFrom: "labelFrom", labelTo: "labelTo" }, host: { properties: { "class": "this.classes" } }, providers: [
|
|
7738
8076
|
ClrPopoverToggleService,
|
|
7739
8077
|
ClrPopoverEventsService,
|
|
7740
8078
|
ClrPopoverPositionService,
|
|
@@ -7742,7 +8080,7 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
7742
8080
|
DaterangeService,
|
|
7743
8081
|
OpenedDatepickersTrackerService,
|
|
7744
8082
|
ControlIdService,
|
|
7745
|
-
], queries: [{ propertyName: "daterangepickerDirective", first: true, predicate: ClrDaterangepickerDirective, descendants: true }], viewQueries: [{ propertyName: "datepickerComponents", predicate: ClrDatepickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n<label *ngIf=\"!this.labelComponent && this.addLayoutGrid\"></label>\n<div\n
|
|
8083
|
+
], queries: [{ propertyName: "daterangepickerDirective", first: true, predicate: ClrDaterangepickerDirective, descendants: true }], viewQueries: [{ propertyName: "datepickerComponents", predicate: ClrDatepickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n<label *ngIf=\"!this.labelComponent && this.addLayoutGrid\"></label>\n<div\n [class.clr-col-12]=\"this.addLayoutGrid\"\n [class.clr-col-md-10]=\"this.addLayoutGrid\"\n [class.clr-error]=\"this.isInvalid\"\n class=\"clr-control-container\"\n>\n <div class=\"clr-input-wrapper\" clrPopoverAnchor>\n <div [class.clr-focus]=\"this.focus\" class=\"clr-input-group\">\n <ng-content select=\"[clrDaterangepicker]\"></ng-content>\n <button\n [attr.aria-label]=\"this.friendlyDaterange\"\n [disabled]=\"this.disabled\"\n [title]=\"this.friendlyDaterange\"\n class=\"clr-input-group-icon-action\"\n clrPopoverOpenCloseButton\n type=\"button\"\n >\n <cds-icon shape=\"calendar\" status=\"info\"></cds-icon>\n </button>\n </div>\n <cds-icon\n *ngIf=\"this.isInvalid\"\n aria-hidden=\"true\"\n class=\"clr-validate-icon\"\n shape=\"exclamation-circle\"\n status=\"danger\"\n ></cds-icon>\n <cds-icon\n *ngIf=\"!this.isInvalid\"\n aria-hidden=\"true\"\n class=\"clr-validate-icon\"\n shape=\"check-circle\"\n status=\"success\"\n ></cds-icon>\n </div>\n <ng-content *ngIf=\"this.showHelper\" select=\"clr-control-helper\"></ng-content>\n <ng-content *ngIf=\"this.showInvalid\" select=\"clr-control-error\"></ng-content>\n <ng-content *ngIf=\"this.showValid\" select=\"clr-control-success\"></ng-content>\n\n <div\n *clrPopoverContent=\"this.open; at: this.popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n class=\"clr-daterangepicker-container-popup datepicker\"\n >\n <button\n class=\"btn btn-sm btn-link close clr-smart-close-button btn-trash\"\n type=\"button\"\n (click)=\"daterangeService.updateSelectedDaterange(null)\"\n >\n <cds-icon shape=\"trash\"></cds-icon>\n </button>\n <button\n [attr.aria-label]=\"this.commonStrings.close\"\n class=\"btn btn-sm btn-link close\"\n clrPopoverCloseButton\n type=\"button\"\n >\n <cds-icon [attr.title]=\"this.commonStrings.close\" aria-hidden=\"true\" shape=\"window-close\"></cds-icon>\n <span class=\"clr-sr-only\">{{ this.commonStrings.close }}</span>\n </button>\n <div class=\"clr-daterangepicker-container-popup-content\">\n <form [clrLayout]=\"'vertical'\" clrForm>\n <div class=\"datetime-container\">\n <clr-datepicker\n (valueChange)=\"this.onDateFromChange($event)\"\n [label]=\"this.labelFrom\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateFrom\"\n class=\"clr-datepicker\"\n >\n </clr-datepicker>\n <clr-timepicker\n *ngIf=\"timeSelection\"\n class=\"timepicker\"\n (valueChange)=\"this.onTimeFromChange($event)\"\n [value]=\"this.timeFrom\"\n [activateSeconds]=\"activateSeconds\"\n >\n </clr-timepicker>\n </div>\n <div class=\"datetime-container datetime-container-to\">\n <clr-datepicker\n (valueChange)=\"this.onDateToChange($event)\"\n [label]=\"this.labelTo\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateTo\"\n class=\"clr-datepicker\"\n >\n </clr-datepicker>\n <clr-timepicker\n *ngIf=\"timeSelection\"\n class=\"timepicker\"\n (valueChange)=\"this.onTimeToChange($event)\"\n [value]=\"this.timeTo\"\n [activateSeconds]=\"activateSeconds\"\n >\n </clr-timepicker>\n </div>\n </form>\n <div *ngIf=\"this.presets?.length > 0\" class=\"clr-daterangepicker-container-popup-content-presets\">\n <ng-container *ngFor=\"let preset of this.presets\">\n <button (click)=\"this.applyPreset(preset)\" class=\"btn btn-outline btn-sm btn-block\" type=\"button\">\n {{ preset.text }}\n </button>\n </ng-container>\n </div>\n <div *ngIf=\"this.presetsDateTime?.length > 0\" class=\"clr-daterangepicker-container-popup-content-presets\">\n <ng-container *ngFor=\"let preset of this.presetsDateTime\">\n <button (click)=\"this.applyPresetTime(preset)\" class=\"btn btn-outline btn-sm btn-block\" type=\"button\">\n {{ preset.text }}\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".clr-input-wrapper>.clr-input-group{max-width:fit-content;padding-right:1.5rem}.clr-input-wrapper>.clr-input-group ::ng-deep>.clr-input{width:100%;padding:0 .3rem}.clr-daterangepicker-container-popup.datepicker{padding:0;width:auto;height:auto;display:block}.clr-daterangepicker-container-popup.datepicker .clr-smart-close-button{min-width:1.2rem;padding:0;position:absolute;right:0;margin:5px}.clr-daterangepicker-container-popup.datepicker .btn-trash{padding-right:25px;margin:5px}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content{padding:.6rem;display:flex;flex-direction:row}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-form ::ng-deep clr-datepicker:first-of-type ::ng-deep clr-date-container{margin-top:0}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets{margin-left:.6rem;padding:.3rem}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets .btn{margin-right:0}.datetime-container{display:flex;flex-direction:row;align-items:flex-start}.datetime-container-to{padding-top:1rem}.timepicker{padding-left:1rem}.timepicker clr-input-container{margin-top:.8rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i2.ClrLayout, selector: "[clrForm][clrLayout]", inputs: ["clrLayout"] }, { kind: "directive", type: i2.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: i2.ÇlrClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: i2.ÇlrClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "component", type: ClrDatepickerComponent, selector: "clr-datepicker", inputs: ["value", "label", "minDate", "maxDate", "timeSelection"], outputs: ["valueChange"] }, { kind: "component", type: ClrTimepickerComponent, selector: "clr-timepicker", inputs: ["value", "activateSeconds"], outputs: ["valueChange"] }] }); }
|
|
7746
8084
|
}
|
|
7747
8085
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDaterangepickerContainerComponent, decorators: [{
|
|
7748
8086
|
type: Component,
|
|
@@ -7754,11 +8092,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
7754
8092
|
DaterangeService,
|
|
7755
8093
|
OpenedDatepickersTrackerService,
|
|
7756
8094
|
ControlIdService,
|
|
7757
|
-
], template: "<ng-content select=\"label\"></ng-content>\n<label *ngIf=\"!this.labelComponent && this.addLayoutGrid\"></label>\n<div\n
|
|
8095
|
+
], template: "<ng-content select=\"label\"></ng-content>\n<label *ngIf=\"!this.labelComponent && this.addLayoutGrid\"></label>\n<div\n [class.clr-col-12]=\"this.addLayoutGrid\"\n [class.clr-col-md-10]=\"this.addLayoutGrid\"\n [class.clr-error]=\"this.isInvalid\"\n class=\"clr-control-container\"\n>\n <div class=\"clr-input-wrapper\" clrPopoverAnchor>\n <div [class.clr-focus]=\"this.focus\" class=\"clr-input-group\">\n <ng-content select=\"[clrDaterangepicker]\"></ng-content>\n <button\n [attr.aria-label]=\"this.friendlyDaterange\"\n [disabled]=\"this.disabled\"\n [title]=\"this.friendlyDaterange\"\n class=\"clr-input-group-icon-action\"\n clrPopoverOpenCloseButton\n type=\"button\"\n >\n <cds-icon shape=\"calendar\" status=\"info\"></cds-icon>\n </button>\n </div>\n <cds-icon\n *ngIf=\"this.isInvalid\"\n aria-hidden=\"true\"\n class=\"clr-validate-icon\"\n shape=\"exclamation-circle\"\n status=\"danger\"\n ></cds-icon>\n <cds-icon\n *ngIf=\"!this.isInvalid\"\n aria-hidden=\"true\"\n class=\"clr-validate-icon\"\n shape=\"check-circle\"\n status=\"success\"\n ></cds-icon>\n </div>\n <ng-content *ngIf=\"this.showHelper\" select=\"clr-control-helper\"></ng-content>\n <ng-content *ngIf=\"this.showInvalid\" select=\"clr-control-error\"></ng-content>\n <ng-content *ngIf=\"this.showValid\" select=\"clr-control-success\"></ng-content>\n\n <div\n *clrPopoverContent=\"this.open; at: this.popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n class=\"clr-daterangepicker-container-popup datepicker\"\n >\n <button\n class=\"btn btn-sm btn-link close clr-smart-close-button btn-trash\"\n type=\"button\"\n (click)=\"daterangeService.updateSelectedDaterange(null)\"\n >\n <cds-icon shape=\"trash\"></cds-icon>\n </button>\n <button\n [attr.aria-label]=\"this.commonStrings.close\"\n class=\"btn btn-sm btn-link close\"\n clrPopoverCloseButton\n type=\"button\"\n >\n <cds-icon [attr.title]=\"this.commonStrings.close\" aria-hidden=\"true\" shape=\"window-close\"></cds-icon>\n <span class=\"clr-sr-only\">{{ this.commonStrings.close }}</span>\n </button>\n <div class=\"clr-daterangepicker-container-popup-content\">\n <form [clrLayout]=\"'vertical'\" clrForm>\n <div class=\"datetime-container\">\n <clr-datepicker\n (valueChange)=\"this.onDateFromChange($event)\"\n [label]=\"this.labelFrom\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateFrom\"\n class=\"clr-datepicker\"\n >\n </clr-datepicker>\n <clr-timepicker\n *ngIf=\"timeSelection\"\n class=\"timepicker\"\n (valueChange)=\"this.onTimeFromChange($event)\"\n [value]=\"this.timeFrom\"\n [activateSeconds]=\"activateSeconds\"\n >\n </clr-timepicker>\n </div>\n <div class=\"datetime-container datetime-container-to\">\n <clr-datepicker\n (valueChange)=\"this.onDateToChange($event)\"\n [label]=\"this.labelTo\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateTo\"\n class=\"clr-datepicker\"\n >\n </clr-datepicker>\n <clr-timepicker\n *ngIf=\"timeSelection\"\n class=\"timepicker\"\n (valueChange)=\"this.onTimeToChange($event)\"\n [value]=\"this.timeTo\"\n [activateSeconds]=\"activateSeconds\"\n >\n </clr-timepicker>\n </div>\n </form>\n <div *ngIf=\"this.presets?.length > 0\" class=\"clr-daterangepicker-container-popup-content-presets\">\n <ng-container *ngFor=\"let preset of this.presets\">\n <button (click)=\"this.applyPreset(preset)\" class=\"btn btn-outline btn-sm btn-block\" type=\"button\">\n {{ preset.text }}\n </button>\n </ng-container>\n </div>\n <div *ngIf=\"this.presetsDateTime?.length > 0\" class=\"clr-daterangepicker-container-popup-content-presets\">\n <ng-container *ngFor=\"let preset of this.presetsDateTime\">\n <button (click)=\"this.applyPresetTime(preset)\" class=\"btn btn-outline btn-sm btn-block\" type=\"button\">\n {{ preset.text }}\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".clr-input-wrapper>.clr-input-group{max-width:fit-content;padding-right:1.5rem}.clr-input-wrapper>.clr-input-group ::ng-deep>.clr-input{width:100%;padding:0 .3rem}.clr-daterangepicker-container-popup.datepicker{padding:0;width:auto;height:auto;display:block}.clr-daterangepicker-container-popup.datepicker .clr-smart-close-button{min-width:1.2rem;padding:0;position:absolute;right:0;margin:5px}.clr-daterangepicker-container-popup.datepicker .btn-trash{padding-right:25px;margin:5px}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content{padding:.6rem;display:flex;flex-direction:row}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-form ::ng-deep clr-datepicker:first-of-type ::ng-deep clr-date-container{margin-top:0}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets{margin-left:.6rem;padding:.3rem}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets .btn{margin-right:0}.datetime-container{display:flex;flex-direction:row;align-items:flex-start}.datetime-container-to{padding-top:1rem}.timepicker{padding-left:1rem}.timepicker clr-input-container{margin-top:.8rem}\n"] }]
|
|
7758
8096
|
}], ctorParameters: () => [{ type: i2.ClrPopoverEventsService }, { type: i2.ClrPopoverToggleService }, { type: i2.ClrCommonStringsService }, { type: i2.ClrLayout, decorators: [{
|
|
7759
8097
|
type: Optional
|
|
7760
8098
|
}] }, { type: DaterangeControlStateService }, { type: OpenedDatepickersTrackerService }, { type: DaterangeService }, { type: DaterangeParsingService }], propDecorators: { presets: [{
|
|
7761
8099
|
type: Input
|
|
8100
|
+
}], presetsDateTime: [{
|
|
8101
|
+
type: Input
|
|
8102
|
+
}], timeSelection: [{
|
|
8103
|
+
type: Input
|
|
8104
|
+
}], activateSeconds: [{
|
|
8105
|
+
type: Input
|
|
7762
8106
|
}], clrPosition: [{
|
|
7763
8107
|
type: Input
|
|
7764
8108
|
}], labelFrom: [{
|
|
@@ -8058,11 +8402,18 @@ class ClrDaterangeOrderValidator {
|
|
|
8058
8402
|
if (control.value == null) {
|
|
8059
8403
|
return null;
|
|
8060
8404
|
}
|
|
8061
|
-
const { from, to } = control.value;
|
|
8405
|
+
const { from, to, fromTime, toTime } = control.value;
|
|
8062
8406
|
// Validation with `null` values from 'from' & 'to' is done with the ClrDaterangeRequiredValidator.
|
|
8063
8407
|
if (from == null || to == null) {
|
|
8064
8408
|
return null;
|
|
8065
8409
|
}
|
|
8410
|
+
if ((from.isAfter(to) || from.isEqual(to)) && fromTime && toTime) {
|
|
8411
|
+
if (fromTime.isAfter(toTime)) {
|
|
8412
|
+
return {
|
|
8413
|
+
[ClrDaterangeOrderValidator.validationErrorName]: control.value,
|
|
8414
|
+
};
|
|
8415
|
+
}
|
|
8416
|
+
}
|
|
8066
8417
|
if (from.isAfter(to)) {
|
|
8067
8418
|
return {
|
|
8068
8419
|
[ClrDaterangeOrderValidator.validationErrorName]: control.value,
|
|
@@ -8173,7 +8524,8 @@ class ClrDaterangepickerModule {
|
|
|
8173
8524
|
ClrDaterangepickerContainerComponent,
|
|
8174
8525
|
ClrDaterangepickerDirective,
|
|
8175
8526
|
ClrDaterangeRequiredValidator,
|
|
8176
|
-
ClrIfDaterangeErrorDirective
|
|
8527
|
+
ClrIfDaterangeErrorDirective,
|
|
8528
|
+
ClrTimepickerComponent], imports: [CommonModule, FormsModule, ClarityModule, ClrDatepickerModule, ClrIconModule], exports: [ClrDaterangeMaxValidator,
|
|
8177
8529
|
ClrDaterangeMinValidator,
|
|
8178
8530
|
ClrDaterangeOrderValidator,
|
|
8179
8531
|
ClrDaterangepickerContainerComponent,
|
|
@@ -8195,6 +8547,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
8195
8547
|
ClrDaterangepickerDirective,
|
|
8196
8548
|
ClrDaterangeRequiredValidator,
|
|
8197
8549
|
ClrIfDaterangeErrorDirective,
|
|
8550
|
+
ClrTimepickerComponent,
|
|
8198
8551
|
],
|
|
8199
8552
|
exports: [
|
|
8200
8553
|
ClrDaterangeMaxValidator,
|
|
@@ -8294,6 +8647,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
8294
8647
|
}]
|
|
8295
8648
|
}] });
|
|
8296
8649
|
|
|
8650
|
+
/*
|
|
8651
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8652
|
+
* This software is released under MIT license.
|
|
8653
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8654
|
+
*/
|
|
8655
|
+
ClarityIcons.addIcons(timesIcon);
|
|
8656
|
+
class ClrActionPanel {
|
|
8657
|
+
constructor() {
|
|
8658
|
+
this._open = false;
|
|
8659
|
+
this.opened = new EventEmitter();
|
|
8660
|
+
this.closed = new EventEmitter();
|
|
8661
|
+
}
|
|
8662
|
+
isOpen() {
|
|
8663
|
+
return this._open;
|
|
8664
|
+
}
|
|
8665
|
+
open() {
|
|
8666
|
+
if (this._open) {
|
|
8667
|
+
return;
|
|
8668
|
+
}
|
|
8669
|
+
this._open = true;
|
|
8670
|
+
this.opened.emit();
|
|
8671
|
+
}
|
|
8672
|
+
close() {
|
|
8673
|
+
if (!this._open) {
|
|
8674
|
+
return;
|
|
8675
|
+
}
|
|
8676
|
+
this._open = false;
|
|
8677
|
+
this.closed.emit();
|
|
8678
|
+
}
|
|
8679
|
+
toggle() {
|
|
8680
|
+
if (this._open) {
|
|
8681
|
+
this.close();
|
|
8682
|
+
}
|
|
8683
|
+
else {
|
|
8684
|
+
this.open();
|
|
8685
|
+
}
|
|
8686
|
+
}
|
|
8687
|
+
resizeWindow() {
|
|
8688
|
+
// this event is used by the tree table to adjust the colomns width
|
|
8689
|
+
window.dispatchEvent(new Event('resize'));
|
|
8690
|
+
}
|
|
8691
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8692
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrActionPanel, selector: "clr-action-panel", outputs: { opened: "clrOpened", closed: "clrClosed" }, host: { properties: { "class.action-panel": "true" } }, ngImport: i0, template: "<ng-container *ngIf=\"_open\">\n <div [@slideIn] class=\"action-panel-action-wrapper\" (@slideIn.done)=\"resizeWindow()\">\n <ng-content select=\"[clr-action-panel-content]\"></ng-content>\n </div>\n <div [@fade] class=\"action-panel-backdrop\" (click)=\"close()\" (@fade.done)=\"resizeWindow()\"></div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
8693
|
+
trigger('slideIn', [
|
|
8694
|
+
transition(':enter', [style({ opacity: 0, width: 0 }), animate('0.2s', style({ opacity: 1, width: '*' }))]),
|
|
8695
|
+
transition(':leave', [style({ opacity: 1, width: '*' }), animate('0.2s', style({ opacity: 0, width: 0 }))]),
|
|
8696
|
+
]),
|
|
8697
|
+
trigger('fade', [
|
|
8698
|
+
transition(':enter', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
8699
|
+
transition(':leave', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
8700
|
+
]),
|
|
8701
|
+
] }); }
|
|
8702
|
+
}
|
|
8703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanel, decorators: [{
|
|
8704
|
+
type: Component,
|
|
8705
|
+
args: [{ selector: 'clr-action-panel', animations: [
|
|
8706
|
+
trigger('slideIn', [
|
|
8707
|
+
transition(':enter', [style({ opacity: 0, width: 0 }), animate('0.2s', style({ opacity: 1, width: '*' }))]),
|
|
8708
|
+
transition(':leave', [style({ opacity: 1, width: '*' }), animate('0.2s', style({ opacity: 0, width: 0 }))]),
|
|
8709
|
+
]),
|
|
8710
|
+
trigger('fade', [
|
|
8711
|
+
transition(':enter', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
8712
|
+
transition(':leave', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
8713
|
+
]),
|
|
8714
|
+
], host: {
|
|
8715
|
+
'[class.action-panel]': 'true',
|
|
8716
|
+
}, template: "<ng-container *ngIf=\"_open\">\n <div [@slideIn] class=\"action-panel-action-wrapper\" (@slideIn.done)=\"resizeWindow()\">\n <ng-content select=\"[clr-action-panel-content]\"></ng-content>\n </div>\n <div [@fade] class=\"action-panel-backdrop\" (click)=\"close()\" (@fade.done)=\"resizeWindow()\"></div>\n</ng-container>\n" }]
|
|
8717
|
+
}], propDecorators: { opened: [{
|
|
8718
|
+
type: Output,
|
|
8719
|
+
args: ['clrOpened']
|
|
8720
|
+
}], closed: [{
|
|
8721
|
+
type: Output,
|
|
8722
|
+
args: ['clrClosed']
|
|
8723
|
+
}] } });
|
|
8724
|
+
|
|
8725
|
+
/*
|
|
8726
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8727
|
+
* This software is released under MIT license.
|
|
8728
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8729
|
+
*/
|
|
8730
|
+
class ClrActionPanelContainer {
|
|
8731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrActionPanelContainer, selector: "clr-action-panel-container", host: { properties: { "class.content-container": "true", "class.action-panel-container": "true" } }, ngImport: i0, template: `
|
|
8733
|
+
<div class="action-panel-outer-wrapper">
|
|
8734
|
+
<ng-content select="clr-action-panel-container-content"></ng-content>
|
|
8735
|
+
<ng-content select="clr-action-panel-container-footer"></ng-content>
|
|
8736
|
+
</div>
|
|
8737
|
+
<ng-content select="clr-action-panel"></ng-content>
|
|
8738
|
+
`, isInline: true }); }
|
|
8739
|
+
}
|
|
8740
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainer, decorators: [{
|
|
8741
|
+
type: Component,
|
|
8742
|
+
args: [{
|
|
8743
|
+
selector: 'clr-action-panel-container',
|
|
8744
|
+
template: `
|
|
8745
|
+
<div class="action-panel-outer-wrapper">
|
|
8746
|
+
<ng-content select="clr-action-panel-container-content"></ng-content>
|
|
8747
|
+
<ng-content select="clr-action-panel-container-footer"></ng-content>
|
|
8748
|
+
</div>
|
|
8749
|
+
<ng-content select="clr-action-panel"></ng-content>
|
|
8750
|
+
`,
|
|
8751
|
+
host: {
|
|
8752
|
+
'[class.content-container]': 'true',
|
|
8753
|
+
'[class.action-panel-container]': 'true',
|
|
8754
|
+
},
|
|
8755
|
+
}]
|
|
8756
|
+
}] });
|
|
8757
|
+
|
|
8758
|
+
/*
|
|
8759
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8760
|
+
* This software is released under MIT license.
|
|
8761
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8762
|
+
*/
|
|
8763
|
+
class ClrActionPanelContainerContent {
|
|
8764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8765
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrActionPanelContainerContent, selector: "clr-action-panel-container-content", host: { properties: { "class.content-area": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
|
|
8766
|
+
}
|
|
8767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerContent, decorators: [{
|
|
8768
|
+
type: Component,
|
|
8769
|
+
args: [{
|
|
8770
|
+
selector: 'clr-action-panel-container-content',
|
|
8771
|
+
template: ` <ng-content></ng-content> `,
|
|
8772
|
+
host: {
|
|
8773
|
+
'[class.content-area]': 'true',
|
|
8774
|
+
},
|
|
8775
|
+
}]
|
|
8776
|
+
}] });
|
|
8777
|
+
|
|
8778
|
+
/*
|
|
8779
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8780
|
+
* This software is released under MIT license.
|
|
8781
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8782
|
+
*/
|
|
8783
|
+
class ClrActionPanelContainerFooter {
|
|
8784
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerFooter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8785
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrActionPanelContainerFooter, selector: "clr-action-panel-container-footer", host: { properties: { "class.content-area-footer": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
|
|
8786
|
+
}
|
|
8787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerFooter, decorators: [{
|
|
8788
|
+
type: Component,
|
|
8789
|
+
args: [{
|
|
8790
|
+
selector: 'clr-action-panel-container-footer',
|
|
8791
|
+
template: ` <ng-content></ng-content> `,
|
|
8792
|
+
host: {
|
|
8793
|
+
'[class.content-area-footer]': 'true',
|
|
8794
|
+
},
|
|
8795
|
+
}]
|
|
8796
|
+
}] });
|
|
8797
|
+
|
|
8798
|
+
/*
|
|
8799
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8800
|
+
* This software is released under MIT license.
|
|
8801
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8802
|
+
*/
|
|
8803
|
+
class ClrActionPanelModule {
|
|
8804
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8805
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelModule, declarations: [ClrActionPanel,
|
|
8806
|
+
ClrActionPanelContainer,
|
|
8807
|
+
ClrActionPanelContainerContent,
|
|
8808
|
+
ClrActionPanelContainerFooter], imports: [CommonModule, ClarityModule, FormsModule], exports: [ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter] }); }
|
|
8809
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelModule, imports: [CommonModule, ClarityModule, FormsModule] }); }
|
|
8810
|
+
}
|
|
8811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelModule, decorators: [{
|
|
8812
|
+
type: NgModule,
|
|
8813
|
+
args: [{
|
|
8814
|
+
imports: [CommonModule, ClarityModule, FormsModule],
|
|
8815
|
+
declarations: [
|
|
8816
|
+
ClrActionPanel,
|
|
8817
|
+
ClrActionPanelContainer,
|
|
8818
|
+
ClrActionPanelContainerContent,
|
|
8819
|
+
ClrActionPanelContainerFooter,
|
|
8820
|
+
],
|
|
8821
|
+
exports: [ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter],
|
|
8822
|
+
}]
|
|
8823
|
+
}] });
|
|
8824
|
+
|
|
8297
8825
|
/*
|
|
8298
8826
|
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8299
8827
|
* This software is released under MIT license.
|
|
@@ -8332,7 +8860,8 @@ class ClrAddonsModule {
|
|
|
8332
8860
|
ClrEnumFilterModule,
|
|
8333
8861
|
ClrDateFilterModule,
|
|
8334
8862
|
ClrDaterangepickerModule,
|
|
8335
|
-
ClrIfWarningModule
|
|
8863
|
+
ClrIfWarningModule,
|
|
8864
|
+
ClrActionPanelModule] }); }
|
|
8336
8865
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrAddonsModule, imports: [ClrViewEditSectionModule,
|
|
8337
8866
|
ClrPagerModule,
|
|
8338
8867
|
ClrDotPagerModule,
|
|
@@ -8364,7 +8893,8 @@ class ClrAddonsModule {
|
|
|
8364
8893
|
ClrEnumFilterModule,
|
|
8365
8894
|
ClrDateFilterModule,
|
|
8366
8895
|
ClrDaterangepickerModule,
|
|
8367
|
-
ClrIfWarningModule
|
|
8896
|
+
ClrIfWarningModule,
|
|
8897
|
+
ClrActionPanelModule] }); }
|
|
8368
8898
|
}
|
|
8369
8899
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrAddonsModule, decorators: [{
|
|
8370
8900
|
type: NgModule,
|
|
@@ -8402,6 +8932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
8402
8932
|
ClrDateFilterModule,
|
|
8403
8933
|
ClrDaterangepickerModule,
|
|
8404
8934
|
ClrIfWarningModule,
|
|
8935
|
+
ClrActionPanelModule,
|
|
8405
8936
|
],
|
|
8406
8937
|
}]
|
|
8407
8938
|
}] });
|
|
@@ -8442,5 +8973,5 @@ function escapeRegex(s) {
|
|
|
8442
8973
|
* Generated bundle index. Do not edit.
|
|
8443
8974
|
*/
|
|
8444
8975
|
|
|
8445
|
-
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HistoryProvider, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
|
|
8976
|
+
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter, ClrActionPanelModule, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HistoryProvider, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TimeModel, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
|
|
8446
8977
|
//# sourceMappingURL=clr-addons.mjs.map
|