@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
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ClrActionPanelContainerContent {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrActionPanelContainerContent, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrActionPanelContainerContent, "clr-action-panel-container-content", never, {}, {}, never, ["*"], false, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ClrActionPanelContainerFooter {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrActionPanelContainerFooter, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrActionPanelContainerFooter, "clr-action-panel-container-footer", never, {}, {}, never, ["*"], false, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ClrActionPanelContainer {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrActionPanelContainer, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrActionPanelContainer, "clr-action-panel-container", never, {}, {}, never, ["clr-action-panel-container-content", "clr-action-panel-container-footer", "clr-action-panel"], false, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ClrActionPanel {
|
|
4
|
+
_open: boolean;
|
|
5
|
+
opened: EventEmitter<any>;
|
|
6
|
+
closed: EventEmitter<any>;
|
|
7
|
+
isOpen(): boolean;
|
|
8
|
+
open(): void;
|
|
9
|
+
close(): void;
|
|
10
|
+
toggle(): void;
|
|
11
|
+
resizeWindow(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrActionPanel, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrActionPanel, "clr-action-panel", never, {}, { "opened": "clrOpened"; "closed": "clrClosed"; }, never, ["[clr-action-panel-content]"], false, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./action-panel";
|
|
3
|
+
import * as i2 from "./action-panel-container";
|
|
4
|
+
import * as i3 from "./action-panel-container-content";
|
|
5
|
+
import * as i4 from "./action-panel-container-footer";
|
|
6
|
+
import * as i5 from "@angular/common";
|
|
7
|
+
import * as i6 from "@clr/angular";
|
|
8
|
+
import * as i7 from "@angular/forms";
|
|
9
|
+
export declare class ClrActionPanelModule {
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrActionPanelModule, never>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrActionPanelModule, [typeof i1.ClrActionPanel, typeof i2.ClrActionPanelContainer, typeof i3.ClrActionPanelContainerContent, typeof i4.ClrActionPanelContainerFooter], [typeof i5.CommonModule, typeof i6.ClarityModule, typeof i7.FormsModule], [typeof i1.ClrActionPanel, typeof i2.ClrActionPanelContainer, typeof i3.ClrActionPanelContainerContent, typeof i4.ClrActionPanelContainerFooter]>;
|
|
12
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ClrActionPanelModule>;
|
|
13
|
+
}
|
package/clr-addons.module.d.ts
CHANGED
|
@@ -31,8 +31,9 @@ import * as i29 from "./datagrid/enum-filter/enum-filter.module";
|
|
|
31
31
|
import * as i30 from "./datagrid/date-filter/date-filter.module";
|
|
32
32
|
import * as i31 from "./daterangepicker/daterangepicker.module";
|
|
33
33
|
import * as i32 from "./clr-control-warning/if-warning.module";
|
|
34
|
+
import * as i33 from "./action-panel/action-panel.module";
|
|
34
35
|
export declare class ClrAddonsModule {
|
|
35
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrAddonsModule, never>;
|
|
36
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrAddonsModule, never, never, [typeof i1.ClrViewEditSectionModule, typeof i2.ClrPagerModule, typeof i3.ClrDotPagerModule, typeof i4.ClrPagedSearchResultListModule, typeof i5.ClrCollapseExpandSectionModule, typeof i6.ClrBreadcrumbModule, typeof i7.ClrMainNavGroupModule, typeof i8.ClrContentPanelModule, typeof i9.ClrNotificationModule, typeof i10.ClrFlowBarModule, typeof i11.ClrBackButtonModule, typeof i12.ClrNumericFieldModule, typeof i13.ClrSearchFieldModule, typeof i14.ClrTreetableModule, typeof i15.ClrProgressSpinnerModule, typeof i16.ClrDateTimeModule, typeof i17.ClrQuickListModule, typeof i18.ClrLetterAvatarModule, typeof i19.ClrMultilingualModule, typeof i20.ClrGenericQuickListModule, typeof i21.ClrDataListValidatorModule, typeof i22.ClrHistoryModule, typeof i23.ClrAutocompleteOffModule, typeof i24.ClrBrandAvatarModule, typeof i25.ClrLocationBarModule, typeof i26.ClrFormModule, typeof i27.ClrDropdownOverflowModule, typeof i28.ClrDatagridStatePersistenceModule, typeof i29.ClrEnumFilterModule, typeof i30.ClrDateFilterModule, typeof i31.ClrDaterangepickerModule, typeof i32.ClrIfWarningModule]>;
|
|
37
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrAddonsModule, never, never, [typeof i1.ClrViewEditSectionModule, typeof i2.ClrPagerModule, typeof i3.ClrDotPagerModule, typeof i4.ClrPagedSearchResultListModule, typeof i5.ClrCollapseExpandSectionModule, typeof i6.ClrBreadcrumbModule, typeof i7.ClrMainNavGroupModule, typeof i8.ClrContentPanelModule, typeof i9.ClrNotificationModule, typeof i10.ClrFlowBarModule, typeof i11.ClrBackButtonModule, typeof i12.ClrNumericFieldModule, typeof i13.ClrSearchFieldModule, typeof i14.ClrTreetableModule, typeof i15.ClrProgressSpinnerModule, typeof i16.ClrDateTimeModule, typeof i17.ClrQuickListModule, typeof i18.ClrLetterAvatarModule, typeof i19.ClrMultilingualModule, typeof i20.ClrGenericQuickListModule, typeof i21.ClrDataListValidatorModule, typeof i22.ClrHistoryModule, typeof i23.ClrAutocompleteOffModule, typeof i24.ClrBrandAvatarModule, typeof i25.ClrLocationBarModule, typeof i26.ClrFormModule, typeof i27.ClrDropdownOverflowModule, typeof i28.ClrDatagridStatePersistenceModule, typeof i29.ClrEnumFilterModule, typeof i30.ClrDateFilterModule, typeof i31.ClrDaterangepickerModule, typeof i32.ClrIfWarningModule, typeof i33.ClrActionPanelModule]>;
|
|
37
38
|
static ɵinj: i0.ɵɵInjectorDeclaration<ClrAddonsModule>;
|
|
38
39
|
}
|
|
@@ -8,6 +8,7 @@ export declare class ClrDateFilterComponent<T extends {
|
|
|
8
8
|
private commonStrings;
|
|
9
9
|
private clrPopoverEventsService;
|
|
10
10
|
private nestedProp;
|
|
11
|
+
timeActive: boolean;
|
|
11
12
|
set property(value: string);
|
|
12
13
|
get property(): string;
|
|
13
14
|
constructor(commonStrings: ClrCommonStringsService, clrPopoverEventsService: ClrPopoverEventsService, filterContainer: ClrDatagridFilter);
|
|
@@ -26,10 +27,16 @@ export declare class ClrDateFilterComponent<T extends {
|
|
|
26
27
|
*/
|
|
27
28
|
private _from;
|
|
28
29
|
private _to;
|
|
30
|
+
private _toTime;
|
|
31
|
+
private _fromTime;
|
|
29
32
|
get from(): Date;
|
|
33
|
+
get fromTime(): string;
|
|
34
|
+
get toTime(): string;
|
|
30
35
|
set from(from: Date);
|
|
36
|
+
set fromTime(fromtime: string);
|
|
31
37
|
get to(): Date;
|
|
32
38
|
set to(to: Date);
|
|
39
|
+
set toTime(totime: string);
|
|
33
40
|
/**
|
|
34
41
|
* Indicates if the filter is currently active, (at least one input is set)
|
|
35
42
|
*/
|
|
@@ -44,5 +51,5 @@ export declare class ClrDateFilterComponent<T extends {
|
|
|
44
51
|
clearFilter(): void;
|
|
45
52
|
equals(other: ClrDatagridFilterInterface<T, any>): boolean;
|
|
46
53
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDateFilterComponent<any>, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDateFilterComponent<any>, "clr-date-filter", never, { "property": { "alias": "clrProperty"; "required": false; }; "maxPlaceholder": { "alias": "clrFilterMaxPlaceholder"; "required": false; }; "minPlaceholder": { "alias": "clrFilterMinPlaceholder"; "required": false; }; "value": { "alias": "clrFilterValue"; "required": false; }; }, { "filterValueChange": "clrFilterValueChange"; }, never, never, false, never>;
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDateFilterComponent<any>, "clr-date-filter", never, { "timeActive": { "alias": "timeActive"; "required": false; }; "property": { "alias": "clrProperty"; "required": false; }; "maxPlaceholder": { "alias": "clrFilterMaxPlaceholder"; "required": false; }; "minPlaceholder": { "alias": "clrFilterMinPlaceholder"; "required": false; }; "value": { "alias": "clrFilterValue"; "required": false; }; }, { "filterValueChange": "clrFilterValueChange"; }, never, never, false, never>;
|
|
48
55
|
}
|
|
@@ -3,8 +3,10 @@ import * as i1 from "./date-filter.component";
|
|
|
3
3
|
import * as i2 from "@clr/angular";
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
5
|
import * as i4 from "@angular/forms";
|
|
6
|
+
import * as i5 from "../../date-time-container/date-time-module";
|
|
7
|
+
import * as i6 from "../../abstract-form-component/form.module";
|
|
6
8
|
export declare class ClrDateFilterModule {
|
|
7
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDateFilterModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDateFilterModule, [typeof i1.ClrDateFilterComponent], [typeof i2.ClarityModule, typeof i3.CommonModule, typeof i4.FormsModule], [typeof i1.ClrDateFilterComponent]>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDateFilterModule, [typeof i1.ClrDateFilterComponent], [typeof i2.ClarityModule, typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.ClrDateTimeModule, typeof i6.ClrFormModule], [typeof i1.ClrDateFilterComponent]>;
|
|
9
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<ClrDateFilterModule>;
|
|
10
12
|
}
|
|
@@ -7,11 +7,12 @@ import * as i5 from "./directives/daterangepicker-container/daterangepicker-cont
|
|
|
7
7
|
import * as i6 from "./directives/daterangepicker/daterangepicker.directive";
|
|
8
8
|
import * as i7 from "./validators/daterange-required.validator";
|
|
9
9
|
import * as i8 from "./directives/if-daterange-error.directive";
|
|
10
|
-
import * as i9 from "
|
|
11
|
-
import * as i10 from "@angular/
|
|
12
|
-
import * as i11 from "@
|
|
10
|
+
import * as i9 from "./directives/timepicker/timepicker.component";
|
|
11
|
+
import * as i10 from "@angular/common";
|
|
12
|
+
import * as i11 from "@angular/forms";
|
|
13
|
+
import * as i12 from "@clr/angular";
|
|
13
14
|
export declare class ClrDaterangepickerModule {
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDaterangepickerModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDaterangepickerModule, [typeof i1.ClrDatepickerComponent, typeof i2.ClrDaterangeMaxValidator, typeof i3.ClrDaterangeMinValidator, typeof i4.ClrDaterangeOrderValidator, typeof i5.ClrDaterangepickerContainerComponent, typeof i6.ClrDaterangepickerDirective, typeof i7.ClrDaterangeRequiredValidator, typeof i8.ClrIfDaterangeErrorDirective], [typeof
|
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDaterangepickerModule, [typeof i1.ClrDatepickerComponent, typeof i2.ClrDaterangeMaxValidator, typeof i3.ClrDaterangeMinValidator, typeof i4.ClrDaterangeOrderValidator, typeof i5.ClrDaterangepickerContainerComponent, typeof i6.ClrDaterangepickerDirective, typeof i7.ClrDaterangeRequiredValidator, typeof i8.ClrIfDaterangeErrorDirective, typeof i9.ClrTimepickerComponent], [typeof i10.CommonModule, typeof i11.FormsModule, typeof i12.ClarityModule, typeof i12.ClrDatepickerModule, typeof i12.ClrIconModule], [typeof i2.ClrDaterangeMaxValidator, typeof i3.ClrDaterangeMinValidator, typeof i4.ClrDaterangeOrderValidator, typeof i5.ClrDaterangepickerContainerComponent, typeof i6.ClrDaterangepickerDirective, typeof i7.ClrDaterangeRequiredValidator, typeof i8.ClrIfDaterangeErrorDirective]>;
|
|
16
17
|
static ɵinj: i0.ɵɵInjectorDeclaration<ClrDaterangepickerModule>;
|
|
17
18
|
}
|
|
@@ -20,6 +20,7 @@ export declare class ClrDatepickerComponent implements AfterViewInit, OnDestroy
|
|
|
20
20
|
* Maximum date that can be selected.
|
|
21
21
|
*/
|
|
22
22
|
maxDate: NullableDayModel;
|
|
23
|
+
timeSelection: boolean;
|
|
23
24
|
/**
|
|
24
25
|
* Input control.
|
|
25
26
|
*/
|
|
@@ -61,5 +62,5 @@ export declare class ClrDatepickerComponent implements AfterViewInit, OnDestroy
|
|
|
61
62
|
*/
|
|
62
63
|
focus(): void;
|
|
63
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatepickerComponent, never>;
|
|
64
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatepickerComponent, "clr-datepicker", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatepickerComponent, "clr-datepicker", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "timeSelection": { "alias": "timeSelection"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
65
66
|
}
|
|
@@ -29,6 +29,11 @@ export declare class ClrDaterangepickerDirective implements OnInit, OnDestroy, C
|
|
|
29
29
|
* Locale text between 'from' and 'to' dateranges.
|
|
30
30
|
*/
|
|
31
31
|
separatorText: string;
|
|
32
|
+
regex: RegExp;
|
|
33
|
+
regexW: RegExp;
|
|
34
|
+
regexH: RegExp;
|
|
35
|
+
regexD: RegExp;
|
|
36
|
+
regexM: RegExp;
|
|
32
37
|
/**
|
|
33
38
|
* Placeholder text.
|
|
34
39
|
*
|
|
@@ -122,6 +127,7 @@ export declare class ClrDaterangepickerDirective implements OnInit, OnDestroy, C
|
|
|
122
127
|
* @param disabled - Disabled state.
|
|
123
128
|
*/
|
|
124
129
|
setDisabledState(disabled: boolean): void;
|
|
130
|
+
private handleEasyAccess;
|
|
125
131
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDaterangepickerDirective, [{ self: true; }, null, null, null, null, null, null]>;
|
|
126
132
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDaterangepickerDirective, "[clrDaterangepicker]", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "separatorText": { "alias": "separatorText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
127
133
|
}
|
|
@@ -8,6 +8,8 @@ import { DaterangeParsingService } from '../../providers/daterange-parsing.servi
|
|
|
8
8
|
import { DaterangeService } from '../../providers/daterange.service';
|
|
9
9
|
import { OpenedDatepickersTrackerService } from '../../providers/opened-datepickers-tracker.service';
|
|
10
10
|
import { ClrAbstractContainer } from '../abstract-container.component';
|
|
11
|
+
import { DateTimerangePreset } from '../../interfaces/timerange-preset.interface';
|
|
12
|
+
import { NullableTimeModel } from '../../models/time.model';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
12
14
|
/**
|
|
13
15
|
* Daterangepicker container.
|
|
@@ -19,12 +21,18 @@ export declare class ClrDaterangepickerContainerComponent extends ClrAbstractCon
|
|
|
19
21
|
protected readonly clrLayout: ClrLayout;
|
|
20
22
|
protected readonly daterangeControlStateService: DaterangeControlStateService;
|
|
21
23
|
private readonly openedDatepickersTrackerService;
|
|
22
|
-
|
|
24
|
+
protected readonly daterangeService: DaterangeService;
|
|
23
25
|
private readonly daterangeParsingService;
|
|
24
26
|
/**
|
|
25
27
|
* List of presets.
|
|
26
28
|
*/
|
|
27
29
|
presets: Array<DaterangePreset>;
|
|
30
|
+
/**
|
|
31
|
+
* List of time presets.
|
|
32
|
+
*/
|
|
33
|
+
presetsDateTime: Array<DateTimerangePreset>;
|
|
34
|
+
timeSelection: boolean;
|
|
35
|
+
activateSeconds: boolean;
|
|
28
36
|
/**
|
|
29
37
|
* Set popover position.
|
|
30
38
|
*/
|
|
@@ -56,11 +64,13 @@ export declare class ClrDaterangepickerContainerComponent extends ClrAbstractCon
|
|
|
56
64
|
* @returns Date from.
|
|
57
65
|
*/
|
|
58
66
|
protected get dateFrom(): import("../../models/day.model").DayModel;
|
|
67
|
+
protected get timeFrom(): import("../../models/time.model").TimeModel;
|
|
59
68
|
/**
|
|
60
69
|
* Date to.
|
|
61
70
|
* @returns Date to.
|
|
62
71
|
*/
|
|
63
72
|
protected get dateTo(): import("../../models/day.model").DayModel;
|
|
73
|
+
protected get timeTo(): import("../../models/time.model").TimeModel;
|
|
64
74
|
/**
|
|
65
75
|
* Minimum date that can be selected.
|
|
66
76
|
* @returns Minimum date that can be selected.
|
|
@@ -113,6 +123,9 @@ export declare class ClrDaterangepickerContainerComponent extends ClrAbstractCon
|
|
|
113
123
|
* @param preset - Selected preset.
|
|
114
124
|
*/
|
|
115
125
|
protected applyPreset(preset: DaterangePreset): void;
|
|
126
|
+
applyPresetTime(preset: DateTimerangePreset): void;
|
|
127
|
+
protected onTimeFromChange(value: NullableTimeModel): void;
|
|
128
|
+
protected onTimeToChange(value: NullableTimeModel): void;
|
|
116
129
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDaterangepickerContainerComponent, [null, null, null, { optional: true; }, null, null, null, null]>;
|
|
117
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDaterangepickerContainerComponent, "clr-daterangepicker-container", never, { "presets": { "alias": "presets"; "required": false; }; "clrPosition": { "alias": "clrPosition"; "required": false; }; "labelFrom": { "alias": "labelFrom"; "required": false; }; "labelTo": { "alias": "labelTo"; "required": false; }; }, {}, ["daterangepickerDirective"], ["label", "[clrDaterangepicker]", "clr-control-helper", "clr-control-error", "clr-control-success"], false, never>;
|
|
130
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDaterangepickerContainerComponent, "clr-daterangepicker-container", never, { "presets": { "alias": "presets"; "required": false; }; "presetsDateTime": { "alias": "presetsDateTime"; "required": false; }; "timeSelection": { "alias": "timeSelection"; "required": false; }; "activateSeconds": { "alias": "activateSeconds"; "required": false; }; "clrPosition": { "alias": "clrPosition"; "required": false; }; "labelFrom": { "alias": "labelFrom"; "required": false; }; "labelTo": { "alias": "labelTo"; "required": false; }; }, {}, ["daterangepickerDirective"], ["label", "[clrDaterangepicker]", "clr-control-helper", "clr-control-error", "clr-control-success"], false, never>;
|
|
118
131
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { TimeModel } from '../../models/time.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ClrTimepickerComponent {
|
|
5
|
+
/**
|
|
6
|
+
* Input value.
|
|
7
|
+
*/
|
|
8
|
+
value: string;
|
|
9
|
+
/**
|
|
10
|
+
* Activate/Deactivate seconds handling.
|
|
11
|
+
*/
|
|
12
|
+
activateSeconds: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Input control.
|
|
15
|
+
*/
|
|
16
|
+
private inputElm;
|
|
17
|
+
/**
|
|
18
|
+
* Event triggered when value changes.
|
|
19
|
+
*/
|
|
20
|
+
valueChange: EventEmitter<TimeModel>;
|
|
21
|
+
protected get time(): any | undefined | null;
|
|
22
|
+
/**
|
|
23
|
+
* Set time.
|
|
24
|
+
*/
|
|
25
|
+
protected set time(val: string | undefined | null);
|
|
26
|
+
constructor();
|
|
27
|
+
/**
|
|
28
|
+
* Focus input.
|
|
29
|
+
*/
|
|
30
|
+
focus(): void;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrTimepickerComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrTimepickerComponent, "clr-timepicker", never, { "value": { "alias": "value"; "required": false; }; "activateSeconds": { "alias": "activateSeconds"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
33
|
+
}
|
|
@@ -5,7 +5,10 @@ export * from './directives/daterangepicker/daterangepicker.directive';
|
|
|
5
5
|
export * from './directives/if-daterange-error.directive';
|
|
6
6
|
export * from './interfaces/daterange-preset.interface';
|
|
7
7
|
export * from './interfaces/daterange.interface';
|
|
8
|
+
export * from './interfaces/timerange.interface';
|
|
9
|
+
export * from './interfaces/timerange-preset.interface';
|
|
8
10
|
export * from './models/day.model';
|
|
11
|
+
export * from './models/time.model';
|
|
9
12
|
export * from './models/popover-positions.model';
|
|
10
13
|
export * from './validators/daterange-max.validator';
|
|
11
14
|
export * from './validators/daterange-min.validator';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NullableTimeModel } from '../models/time.model';
|
|
2
|
+
import { Daterange } from './daterange.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Timerange interface.
|
|
5
|
+
*/
|
|
6
|
+
export interface Timerange extends Daterange {
|
|
7
|
+
fromTime: NullableTimeModel;
|
|
8
|
+
toTime: NullableTimeModel;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Timerange.
|
|
12
|
+
*/
|
|
13
|
+
export type NullableTimerange = Timerange | undefined | null;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time model.
|
|
3
|
+
* Takes care of keeping records of full time.
|
|
4
|
+
*/
|
|
5
|
+
export declare class TimeModel {
|
|
6
|
+
private hours;
|
|
7
|
+
private minutes;
|
|
8
|
+
private seconds;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a time model.
|
|
11
|
+
* @param hours - The full hours (0-23).
|
|
12
|
+
* @param minutes - The minutes
|
|
13
|
+
* @param seconds - The seconds
|
|
14
|
+
*/
|
|
15
|
+
constructor(hours: number, minutes: number, seconds: number);
|
|
16
|
+
/**
|
|
17
|
+
* Creates an time model.
|
|
18
|
+
* @param date - Javascript Date object.
|
|
19
|
+
*/
|
|
20
|
+
constructor(date: Date);
|
|
21
|
+
/**
|
|
22
|
+
* Creates a time model.
|
|
23
|
+
* @param date - time string in `hh:mm:ss` format.
|
|
24
|
+
*/
|
|
25
|
+
constructor(date: string);
|
|
26
|
+
/**
|
|
27
|
+
* Checks if the passed value is equal to current time model.
|
|
28
|
+
* @param value - Time model.
|
|
29
|
+
* @returns Whether value is equal to current time model.
|
|
30
|
+
*/
|
|
31
|
+
isEqual(value: TimeModel): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Checks if current time model is after value.
|
|
34
|
+
* @param value - time model.
|
|
35
|
+
* @returns Whether current time model is after value.
|
|
36
|
+
*/
|
|
37
|
+
isAfter(value: TimeModel): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Checks if current time model is before value.
|
|
40
|
+
* @param value - Time model.
|
|
41
|
+
* @returns Whether current time model is before value.
|
|
42
|
+
*/
|
|
43
|
+
isBefore(value: TimeModel): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Clones the current odel.
|
|
46
|
+
* @returns Cloned model.
|
|
47
|
+
*/
|
|
48
|
+
clone(): TimeModel;
|
|
49
|
+
/**
|
|
50
|
+
* Convert to Javascript Date object.
|
|
51
|
+
* @returns Javascript Date object.
|
|
52
|
+
*/
|
|
53
|
+
toDate(): Date;
|
|
54
|
+
/**
|
|
55
|
+
* To HTML5 time spec string.
|
|
56
|
+
* @returns Time as HTML5 spec string.
|
|
57
|
+
*/
|
|
58
|
+
toHTML5SpecTimeString(): string;
|
|
59
|
+
private pad;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Time model.
|
|
63
|
+
* Takes care of keeping records of full time.
|
|
64
|
+
*/
|
|
65
|
+
export type NullableTimeModel = TimeModel | undefined | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InputDateDisplayFormat } from '../daterange.constants';
|
|
2
2
|
import { NullableDaterange } from '../interfaces/daterange.interface';
|
|
3
|
+
import { NullableTimerange } from '../interfaces/timerange.interface';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Daterange parsing service.
|
|
@@ -20,6 +21,8 @@ export declare class DaterangeParsingService {
|
|
|
20
21
|
* @returns Friendly daterange text.
|
|
21
22
|
*/
|
|
22
23
|
toLocaleString(daterange: NullableDaterange, separator?: string): string;
|
|
24
|
+
toLocaleStringWithTime(daterange: NullableDaterange | NullableTimerange, separator?: string): string;
|
|
25
|
+
private toTimeString;
|
|
23
26
|
/**
|
|
24
27
|
* Convert date to locale display format string.
|
|
25
28
|
* @param date - Javascript Date object.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { NullableDaterange } from '../interfaces/daterange.interface';
|
|
3
3
|
import { NullableDayModel } from '../models/day.model';
|
|
4
|
+
import { NullableTimerange } from '../interfaces/timerange.interface';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Daterange service.
|
|
@@ -12,6 +13,8 @@ export declare class DaterangeService {
|
|
|
12
13
|
/** Maximum date that can be selected. */
|
|
13
14
|
maxDate: NullableDayModel;
|
|
14
15
|
private _selectedDaterange;
|
|
16
|
+
timeActive: boolean;
|
|
17
|
+
timeSecondsActive: boolean;
|
|
15
18
|
/**
|
|
16
19
|
* Selected daterange value.
|
|
17
20
|
* @returns Selected daterange value.
|
|
@@ -22,7 +25,13 @@ export declare class DaterangeService {
|
|
|
22
25
|
* @param value - New selected daterange value.
|
|
23
26
|
* @param triggerEvent - Trigger change event (default true).
|
|
24
27
|
*/
|
|
25
|
-
updateSelectedDaterange(value: NullableDaterange, triggerEvent?: boolean): void;
|
|
28
|
+
updateSelectedDaterange(value: NullableDaterange | NullableTimerange, triggerEvent?: boolean): void;
|
|
29
|
+
/**
|
|
30
|
+
* Set selected Timerange value.
|
|
31
|
+
* @param value - New selected Timerange value.
|
|
32
|
+
* @param triggerEvent - Trigger change event (default true).
|
|
33
|
+
*/
|
|
34
|
+
updateSelectedTimerange(value: NullableTimerange, triggerEvent?: boolean): void;
|
|
26
35
|
/**
|
|
27
36
|
* Event triggered when value changes.
|
|
28
37
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AbstractControl, ValidationErrors, Validator } from '@angular/forms';
|
|
2
2
|
import { NullableDaterange } from '../interfaces/daterange.interface';
|
|
3
|
+
import { NullableTimerange } from '../interfaces/timerange.interface';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Validator for daterangepicker to validate that 'from' date is before 'to' date.
|
|
@@ -23,7 +24,7 @@ export declare class ClrDaterangeOrderValidator implements Validator {
|
|
|
23
24
|
* @param control - The control to validate against.
|
|
24
25
|
* @returns A map of validation errors if validation fails, otherwise null.
|
|
25
26
|
*/
|
|
26
|
-
validate(control: AbstractControl<NullableDaterange, any>): ValidationErrors | null;
|
|
27
|
+
validate(control: AbstractControl<NullableDaterange | NullableTimerange, any>): ValidationErrors | null;
|
|
27
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDaterangeOrderValidator, never>;
|
|
28
29
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDaterangeOrderValidator, "[clrDaterangepicker], [clrDaterangeOrder]", never, { "active": { "alias": "clrDaterangeOrder"; "required": false; }; }, {}, never, never, false, never>;
|
|
29
30
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Component } from '@angular/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ClrActionPanelContainerContent {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
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 }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerContent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: 'clr-action-panel-container-content',
|
|
16
|
+
template: ` <ng-content></ng-content> `,
|
|
17
|
+
host: {
|
|
18
|
+
'[class.content-area]': 'true',
|
|
19
|
+
},
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBhbmVsLWNvbnRhaW5lci1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvYWN0aW9uLXBhbmVsL2FjdGlvbi1wYW5lbC1jb250YWluZXItY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTMUMsTUFBTSxPQUFPLDhCQUE4Qjs4R0FBOUIsOEJBQThCO2tHQUE5Qiw4QkFBOEIsa0lBTC9CLDZCQUE2Qjs7MkZBSzVCLDhCQUE4QjtrQkFQMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxJQUFJLEVBQUU7d0JBQ0osc0JBQXNCLEVBQUUsTUFBTTtxQkFDL0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFjdGlvbi1wYW5lbC1jb250YWluZXItY29udGVudCcsXG4gIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY29udGVudC1hcmVhXSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWN0aW9uUGFuZWxDb250YWluZXJDb250ZW50IHt9XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Component } from '@angular/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ClrActionPanelContainerFooter {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerFooter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
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 }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainerFooter, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: 'clr-action-panel-container-footer',
|
|
16
|
+
template: ` <ng-content></ng-content> `,
|
|
17
|
+
host: {
|
|
18
|
+
'[class.content-area-footer]': 'true',
|
|
19
|
+
},
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBhbmVsLWNvbnRhaW5lci1mb290ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9hY3Rpb24tcGFuZWwvYWN0aW9uLXBhbmVsLWNvbnRhaW5lci1mb290ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzFDLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHdJQUw5Qiw2QkFBNkI7OzJGQUs1Qiw2QkFBNkI7a0JBUHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsSUFBSSxFQUFFO3dCQUNKLDZCQUE2QixFQUFFLE1BQU07cUJBQ3RDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1hY3Rpb24tcGFuZWwtY29udGFpbmVyLWZvb3RlcicsXG4gIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY29udGVudC1hcmVhLWZvb3Rlcl0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckFjdGlvblBhbmVsQ29udGFpbmVyRm9vdGVyIHt9XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Component } from '@angular/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class ClrActionPanelContainer {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
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: `
|
|
11
|
+
<div class="action-panel-outer-wrapper">
|
|
12
|
+
<ng-content select="clr-action-panel-container-content"></ng-content>
|
|
13
|
+
<ng-content select="clr-action-panel-container-footer"></ng-content>
|
|
14
|
+
</div>
|
|
15
|
+
<ng-content select="clr-action-panel"></ng-content>
|
|
16
|
+
`, isInline: true }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanelContainer, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'clr-action-panel-container',
|
|
22
|
+
template: `
|
|
23
|
+
<div class="action-panel-outer-wrapper">
|
|
24
|
+
<ng-content select="clr-action-panel-container-content"></ng-content>
|
|
25
|
+
<ng-content select="clr-action-panel-container-footer"></ng-content>
|
|
26
|
+
</div>
|
|
27
|
+
<ng-content select="clr-action-panel"></ng-content>
|
|
28
|
+
`,
|
|
29
|
+
host: {
|
|
30
|
+
'[class.content-container]': 'true',
|
|
31
|
+
'[class.action-panel-container]': 'true',
|
|
32
|
+
},
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBhbmVsLWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2FjdGlvbi1wYW5lbC9hY3Rpb24tcGFuZWwtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWdCMUMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsdUtBWnhCOzs7Ozs7R0FNVDs7MkZBTVUsdUJBQXVCO2tCQWRuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7O0dBTVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLDJCQUEyQixFQUFFLE1BQU07d0JBQ25DLGdDQUFnQyxFQUFFLE1BQU07cUJBQ3pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1hY3Rpb24tcGFuZWwtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXBhbmVsLW91dGVyLXdyYXBwZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1hY3Rpb24tcGFuZWwtY29udGFpbmVyLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItYWN0aW9uLXBhbmVsLWNvbnRhaW5lci1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWFjdGlvbi1wYW5lbFwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY29udGVudC1jb250YWluZXJdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuYWN0aW9uLXBhbmVsLWNvbnRhaW5lcl0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckFjdGlvblBhbmVsQ29udGFpbmVyIHt9XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
7
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
8
|
+
import { ClarityIcons, timesIcon } from '@cds/core/icon';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
ClarityIcons.addIcons(timesIcon);
|
|
12
|
+
export class ClrActionPanel {
|
|
13
|
+
constructor() {
|
|
14
|
+
this._open = false;
|
|
15
|
+
this.opened = new EventEmitter();
|
|
16
|
+
this.closed = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
isOpen() {
|
|
19
|
+
return this._open;
|
|
20
|
+
}
|
|
21
|
+
open() {
|
|
22
|
+
if (this._open) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this._open = true;
|
|
26
|
+
this.opened.emit();
|
|
27
|
+
}
|
|
28
|
+
close() {
|
|
29
|
+
if (!this._open) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this._open = false;
|
|
33
|
+
this.closed.emit();
|
|
34
|
+
}
|
|
35
|
+
toggle() {
|
|
36
|
+
if (this._open) {
|
|
37
|
+
this.close();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.open();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
resizeWindow() {
|
|
44
|
+
// this event is used by the tree table to adjust the colomns width
|
|
45
|
+
window.dispatchEvent(new Event('resize'));
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
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: [
|
|
49
|
+
trigger('slideIn', [
|
|
50
|
+
transition(':enter', [style({ opacity: 0, width: 0 }), animate('0.2s', style({ opacity: 1, width: '*' }))]),
|
|
51
|
+
transition(':leave', [style({ opacity: 1, width: '*' }), animate('0.2s', style({ opacity: 0, width: 0 }))]),
|
|
52
|
+
]),
|
|
53
|
+
trigger('fade', [
|
|
54
|
+
transition(':enter', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
55
|
+
transition(':leave', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
56
|
+
]),
|
|
57
|
+
] }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrActionPanel, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'clr-action-panel', animations: [
|
|
62
|
+
trigger('slideIn', [
|
|
63
|
+
transition(':enter', [style({ opacity: 0, width: 0 }), animate('0.2s', style({ opacity: 1, width: '*' }))]),
|
|
64
|
+
transition(':leave', [style({ opacity: 1, width: '*' }), animate('0.2s', style({ opacity: 0, width: 0 }))]),
|
|
65
|
+
]),
|
|
66
|
+
trigger('fade', [
|
|
67
|
+
transition(':enter', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
68
|
+
transition(':leave', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
69
|
+
]),
|
|
70
|
+
], host: {
|
|
71
|
+
'[class.action-panel]': 'true',
|
|
72
|
+
}, 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" }]
|
|
73
|
+
}], propDecorators: { opened: [{
|
|
74
|
+
type: Output,
|
|
75
|
+
args: ['clrOpened']
|
|
76
|
+
}], closed: [{
|
|
77
|
+
type: Output,
|
|
78
|
+
args: ['clrClosed']
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvYWN0aW9uLXBhbmVsL2FjdGlvbi1wYW5lbC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2FjdGlvbi1wYW5lbC9hY3Rpb24tcGFuZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFekQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQW1CakMsTUFBTSxPQUFPLGNBQWM7SUFqQjNCO1FBa0JFLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFTyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBa0NyRTtJQWhDUSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIs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Q0FBQzt5QkFDM0UsQ0FBQztxQkFDSCxRQUNLO3dCQUNKLHNCQUFzQixFQUFFLE1BQU07cUJBQy9COzhCQUtvQixNQUFNO3NCQUExQixNQUFNO3VCQUFDLFdBQVc7Z0JBQ0UsTUFBTTtzQkFBMUIsTUFBTTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXJpdHlJY29ucywgdGltZXNJY29uIH0gZnJvbSAnQGNkcy9jb3JlL2ljb24nO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnModGltZXNJY29uKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFjdGlvbi1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tcGFuZWwuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZUluJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCwgd2lkdGg6IDAgfSksIGFuaW1hdGUoJzAuMnMnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHdpZHRoOiAnKicgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoeyBvcGFjaXR5OiAxLCB3aWR0aDogJyonIH0pLCBhbmltYXRlKCcwLjJzJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB3aWR0aDogMCB9KSldKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdmYWRlJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMC44NSB9KSldKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICAgIF0pLFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hY3Rpb24tcGFuZWxdJzogJ3RydWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJBY3Rpb25QYW5lbCB7XG4gIF9vcGVuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgnY2xyT3BlbmVkJykgb3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnY2xyQ2xvc2VkJykgY2xvc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX29wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fb3BlbiA9IHRydWU7XG4gICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fb3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3Blbikge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICByZXNpemVXaW5kb3coKTogdm9pZCB7XG4gICAgLy8gdGhpcyBldmVudCBpcyB1c2VkIGJ5IHRoZSB0cmVlIHRhYmxlIHRvIGFkanVzdCB0aGUgY29sb21ucyB3aWR0aFxuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiX29wZW5cIj5cbiAgPGRpdiBbQHNsaWRlSW5dIGNsYXNzPVwiYWN0aW9uLXBhbmVsLWFjdGlvbi13cmFwcGVyXCIgKEBzbGlkZUluLmRvbmUpPVwicmVzaXplV2luZG93KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2xyLWFjdGlvbi1wYW5lbC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgW0BmYWRlXSBjbGFzcz1cImFjdGlvbi1wYW5lbC1iYWNrZHJvcFwiIChjbGljayk9XCJjbG9zZSgpXCIgKEBmYWRlLmRvbmUpPVwicmVzaXplV2luZG93KClcIj48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|