@porscheinformatik/clr-addons 18.2.4 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstract-form-component/abstract-form-component.d.ts +1 -1
- package/daterangepicker/directives/abstract-container.component.d.ts +1 -1
- package/fesm2022/clr-addons.mjs +520 -592
- package/fesm2022/clr-addons.mjs.map +1 -1
- package/multilingual/abstract-multilingual.d.ts +1 -1
- package/package.json +6 -8
- package/esm2022/abstract-form-component/abstract-form-component.mjs +0 -100
- package/esm2022/abstract-form-component/control-id.service.mjs +0 -31
- package/esm2022/abstract-form-component/form.module.mjs +0 -21
- package/esm2022/abstract-form-component/index.mjs +0 -3
- package/esm2022/abstract-form-component/label.mjs +0 -37
- package/esm2022/action-panel/action-panel-container-content.mjs +0 -22
- package/esm2022/action-panel/action-panel-container-footer.mjs +0 -22
- package/esm2022/action-panel/action-panel-container.mjs +0 -35
- package/esm2022/action-panel/action-panel.mjs +0 -80
- package/esm2022/action-panel/action-panel.module.mjs +0 -36
- package/esm2022/action-panel/index.mjs +0 -6
- package/esm2022/autocomplete-off/autocomplete-off.directive.mjs +0 -21
- package/esm2022/autocomplete-off/autocomplete-off.module.mjs +0 -21
- package/esm2022/autocomplete-off/index.mjs +0 -3
- package/esm2022/back-button/back-button.mjs +0 -27
- package/esm2022/back-button/back-button.module.mjs +0 -25
- package/esm2022/back-button/index.mjs +0 -8
- package/esm2022/brand-avatar/brand-avatar.mjs +0 -77
- package/esm2022/brand-avatar/brand-avatar.module.mjs +0 -24
- package/esm2022/brand-avatar/index.mjs +0 -8
- package/esm2022/breadcrumb/breadcrumb-model.interface.mjs +0 -7
- package/esm2022/breadcrumb/breadcrumb.mjs +0 -37
- package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -27
- package/esm2022/breadcrumb/breadcrumb.service.mjs +0 -25
- package/esm2022/breadcrumb/index.mjs +0 -10
- package/esm2022/clr-addons.mjs +0 -5
- package/esm2022/clr-addons.module.mjs +0 -152
- package/esm2022/clr-control-warning/if-warning.directive.mjs +0 -73
- package/esm2022/clr-control-warning/if-warning.module.mjs +0 -20
- package/esm2022/clr-control-warning/index.mjs +0 -3
- package/esm2022/collapse-expand-section/collapse-expand-section.mjs +0 -88
- package/esm2022/collapse-expand-section/collapse-expand-section.module.mjs +0 -25
- package/esm2022/collapse-expand-section/index.mjs +0 -8
- package/esm2022/content-panel/content-panel-container-content.mjs +0 -22
- package/esm2022/content-panel/content-panel-container-footer.mjs +0 -22
- package/esm2022/content-panel/content-panel-container.mjs +0 -35
- package/esm2022/content-panel/content-panel.mjs +0 -81
- package/esm2022/content-panel/content-panel.module.mjs +0 -36
- package/esm2022/content-panel/index.mjs +0 -11
- package/esm2022/data-list-validator/data-list-predefined-validator.directive.mjs +0 -33
- package/esm2022/data-list-validator/data-list-validator.module.mjs +0 -21
- package/esm2022/data-list-validator/data-list.validator.mjs +0 -35
- package/esm2022/data-list-validator/index.mjs +0 -9
- package/esm2022/datagrid/datagrid-state-persistence/column-hidden-state-persistence.directive.mjs +0 -80
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-field.directive.mjs +0 -20
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.mjs +0 -2
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence.module.mjs +0 -18
- package/esm2022/datagrid/datagrid-state-persistence/index.mjs +0 -7
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-key.directive.mjs +0 -308
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-options.interface.mjs +0 -2
- package/esm2022/datagrid/date-filter/date-filter.component.mjs +0 -210
- package/esm2022/datagrid/date-filter/date-filter.module.mjs +0 -22
- package/esm2022/datagrid/date-filter/index.mjs +0 -3
- package/esm2022/datagrid/date-filter/nested-property.mjs +0 -37
- package/esm2022/datagrid/enum-filter/enum-filter.component.mjs +0 -148
- package/esm2022/datagrid/enum-filter/enum-filter.module.mjs +0 -20
- package/esm2022/datagrid/enum-filter/index.mjs +0 -3
- package/esm2022/datagrid/index.mjs +0 -4
- package/esm2022/date-time-container/date-time-container.mjs +0 -53
- package/esm2022/date-time-container/date-time-module.mjs +0 -26
- package/esm2022/date-time-container/index.mjs +0 -9
- package/esm2022/date-time-container/time-input.mjs +0 -21
- package/esm2022/daterangepicker/daterange.constants.mjs +0 -27
- package/esm2022/daterangepicker/daterangepicker.module.mjs +0 -60
- package/esm2022/daterangepicker/directives/abstract-container.component.mjs +0 -104
- package/esm2022/daterangepicker/directives/datepicker/datepicker.component.mjs +0 -100
- package/esm2022/daterangepicker/directives/daterangepicker/daterangepicker.directive.mjs +0 -329
- package/esm2022/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.mjs +0 -321
- package/esm2022/daterangepicker/directives/if-daterange-error.directive.mjs +0 -94
- package/esm2022/daterangepicker/directives/timepicker/timepicker.component.mjs +0 -54
- package/esm2022/daterangepicker/index.mjs +0 -17
- package/esm2022/daterangepicker/interfaces/daterange-preset.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/daterange.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/timerange-preset.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/timerange.interface.mjs +0 -2
- package/esm2022/daterangepicker/models/day.model.mjs +0 -99
- package/esm2022/daterangepicker/models/popover-positions.model.mjs +0 -66
- package/esm2022/daterangepicker/models/time.model.mjs +0 -82
- package/esm2022/daterangepicker/providers/daterange-control-state.service.mjs +0 -62
- package/esm2022/daterangepicker/providers/daterange-parsing.service.mjs +0 -226
- package/esm2022/daterangepicker/providers/daterange.service.mjs +0 -66
- package/esm2022/daterangepicker/providers/opened-datepickers-tracker.service.mjs +0 -36
- package/esm2022/daterangepicker/validators/daterange-max.validator.mjs +0 -85
- package/esm2022/daterangepicker/validators/daterange-min.validator.mjs +0 -85
- package/esm2022/daterangepicker/validators/daterange-order.validator.mjs +0 -82
- package/esm2022/daterangepicker/validators/daterange-required.validator.mjs +0 -71
- package/esm2022/dot-pager/dot-pager.mjs +0 -58
- package/esm2022/dot-pager/dot-pager.module.mjs +0 -25
- package/esm2022/dot-pager/index.mjs +0 -8
- package/esm2022/dropdown/clr-dropdown-overflow.directive.mjs +0 -117
- package/esm2022/dropdown/clr-dropdown-overflow.module.mjs +0 -21
- package/esm2022/dropdown/index.mjs +0 -8
- package/esm2022/flow-bar/flow-bar.mjs +0 -163
- package/esm2022/flow-bar/flow-bar.module.mjs +0 -26
- package/esm2022/flow-bar/index.mjs +0 -8
- package/esm2022/generic-quick-list/generic-quick-list.mjs +0 -98
- package/esm2022/generic-quick-list/generic-quick-list.module.mjs +0 -24
- package/esm2022/generic-quick-list/index.mjs +0 -8
- package/esm2022/history/history-model.interface.mjs +0 -8
- package/esm2022/history/history-pinned.mjs +0 -60
- package/esm2022/history/history.mjs +0 -91
- package/esm2022/history/history.module.mjs +0 -27
- package/esm2022/history/history.provider.mjs +0 -8
- package/esm2022/history/history.service.mjs +0 -236
- package/esm2022/history/index.mjs +0 -12
- package/esm2022/icons/index.mjs +0 -8
- package/esm2022/icons/shapes.mjs +0 -5575
- package/esm2022/icons/svg-tag-generator.mjs +0 -39
- package/esm2022/index.mjs +0 -41
- package/esm2022/letter-avatar/index.mjs +0 -8
- package/esm2022/letter-avatar/letter-avatar.mjs +0 -52
- package/esm2022/letter-avatar/letter-avatar.module.mjs +0 -24
- package/esm2022/location-bar/index.mjs +0 -6
- package/esm2022/location-bar/location-bar-node/location-bar-node.component.mjs +0 -150
- package/esm2022/location-bar/location-bar-search/location-bar-search.component.mjs +0 -74
- package/esm2022/location-bar/location-bar.component.mjs +0 -64
- package/esm2022/location-bar/location-bar.model.mjs +0 -63
- package/esm2022/location-bar/location-bar.module.mjs +0 -55
- package/esm2022/location-bar/location-bar.provider.mjs +0 -18
- package/esm2022/location-bar/location-bar.search.model.mjs +0 -2
- package/esm2022/main-nav-group/index.mjs +0 -9
- package/esm2022/main-nav-group/main-nav-group-item.mjs +0 -27
- package/esm2022/main-nav-group/main-nav-group.mjs +0 -154
- package/esm2022/main-nav-group/main-nav-group.module.mjs +0 -26
- package/esm2022/multilingual/abstract-multilingual.mjs +0 -133
- package/esm2022/multilingual/index.mjs +0 -11
- package/esm2022/multilingual/multilingual-input/multilingual-input.mjs +0 -42
- package/esm2022/multilingual/multilingual-selector.mjs +0 -84
- package/esm2022/multilingual/multilingual-textarea/multilingual-textarea.mjs +0 -44
- package/esm2022/multilingual/multilingual-validators.mjs +0 -104
- package/esm2022/multilingual/multilingual.module.mjs +0 -49
- package/esm2022/notification/index.mjs +0 -10
- package/esm2022/notification/notification-ref.mjs +0 -61
- package/esm2022/notification/notification.mjs +0 -134
- package/esm2022/notification/notification.module.mjs +0 -24
- package/esm2022/notification/notification.service.mjs +0 -92
- package/esm2022/notification/scheduler-utils.mjs +0 -52
- package/esm2022/numericfield/index.mjs +0 -9
- package/esm2022/numericfield/numeric-field-validators.mjs +0 -140
- package/esm2022/numericfield/numeric-field.mjs +0 -280
- package/esm2022/numericfield/numeric-field.module.mjs +0 -26
- package/esm2022/paged-search-result-list/index.mjs +0 -8
- package/esm2022/paged-search-result-list/paged-search-result-list.mjs +0 -67
- package/esm2022/paged-search-result-list/paged-search-result-list.module.mjs +0 -26
- package/esm2022/pager/index.mjs +0 -8
- package/esm2022/pager/pager.mjs +0 -137
- package/esm2022/pager/pager.module.mjs +0 -25
- package/esm2022/progress-spinner/index.mjs +0 -8
- package/esm2022/progress-spinner/progress-spinner.mjs +0 -78
- package/esm2022/progress-spinner/progress-spinner.module.mjs +0 -23
- package/esm2022/quick-list/add-option.mjs +0 -78
- package/esm2022/quick-list/add-option.service.mjs +0 -7
- package/esm2022/quick-list/index.mjs +0 -9
- package/esm2022/quick-list/quick-list.mjs +0 -128
- package/esm2022/quick-list/quick-list.module.mjs +0 -26
- package/esm2022/readonly/index.mjs +0 -8
- package/esm2022/readonly/readonly.directive.mjs +0 -149
- package/esm2022/readonly/readonly.module.mjs +0 -16
- package/esm2022/searchfield/index.mjs +0 -8
- package/esm2022/searchfield/search-field.mjs +0 -104
- package/esm2022/searchfield/search-field.module.mjs +0 -25
- package/esm2022/treetable/index.mjs +0 -14
- package/esm2022/treetable/renderer/cell-renderer.mjs +0 -28
- package/esm2022/treetable/renderer/header-renderer.mjs +0 -41
- package/esm2022/treetable/renderer/index.mjs +0 -5
- package/esm2022/treetable/renderer/main-renderer.mjs +0 -103
- package/esm2022/treetable/renderer/row-renderer.mjs +0 -20
- package/esm2022/treetable/treetable-action-overflow.mjs +0 -94
- package/esm2022/treetable/treetable-cell.mjs +0 -23
- package/esm2022/treetable/treetable-column.mjs +0 -23
- package/esm2022/treetable/treetable-placeholder.mjs +0 -30
- package/esm2022/treetable/treetable-row.mjs +0 -100
- package/esm2022/treetable/treetable.mjs +0 -79
- package/esm2022/treetable/treetable.module.mjs +0 -63
- package/esm2022/util/escape.util.mjs +0 -20
- package/esm2022/util/index.mjs +0 -8
- package/esm2022/util/numeric.format.util.mjs +0 -99
- package/esm2022/view-edit-section/index.mjs +0 -8
- package/esm2022/view-edit-section/view-edit-section.mjs +0 -154
- package/esm2022/view-edit-section/view-edit-section.module.mjs +0 -25
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ClrCommonStringsService, ClrDatagridFilter, ClrPopoverEventsService, } from '@clr/angular';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { NestedProperty } from './nested-property';
|
|
5
|
-
import { ClarityIcons, trashIcon } from '@cds/core/icon';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@clr/angular";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@angular/forms";
|
|
10
|
-
import * as i4 from "../../date-time-container/date-time-container";
|
|
11
|
-
import * as i5 from "../../date-time-container/time-input";
|
|
12
|
-
ClarityIcons.addIcons(trashIcon);
|
|
13
|
-
export class ClrDateFilterComponent {
|
|
14
|
-
set property(value) {
|
|
15
|
-
this.nestedProp = new NestedProperty(value);
|
|
16
|
-
}
|
|
17
|
-
get property() {
|
|
18
|
-
return this.nestedProp.prop;
|
|
19
|
-
}
|
|
20
|
-
constructor(commonStrings, clrPopoverEventsService, filterContainer) {
|
|
21
|
-
this.commonStrings = commonStrings;
|
|
22
|
-
this.clrPopoverEventsService = clrPopoverEventsService;
|
|
23
|
-
this.timeActive = false;
|
|
24
|
-
this.valError = false;
|
|
25
|
-
this.filterValueChange = new EventEmitter();
|
|
26
|
-
/**
|
|
27
|
-
* Internal values and accessor
|
|
28
|
-
*/
|
|
29
|
-
this._from = null;
|
|
30
|
-
this._to = null;
|
|
31
|
-
/**
|
|
32
|
-
* The Observable required as part of the Filter interface
|
|
33
|
-
*/
|
|
34
|
-
this._changes = new Subject();
|
|
35
|
-
filterContainer.setFilter(this);
|
|
36
|
-
}
|
|
37
|
-
ngAfterViewInit() {
|
|
38
|
-
this.clrPopoverEventsService.outsideClickClose = false;
|
|
39
|
-
}
|
|
40
|
-
get maxPlaceholderValue() {
|
|
41
|
-
return this.maxPlaceholder || this.commonStrings.keys.maxValue;
|
|
42
|
-
}
|
|
43
|
-
get minPlaceholderValue() {
|
|
44
|
-
return this.minPlaceholder || this.commonStrings.keys.minValue;
|
|
45
|
-
}
|
|
46
|
-
set value(values) {
|
|
47
|
-
if (Array.isArray(values)) {
|
|
48
|
-
if (values && (values[0] !== this._from || values[1] !== this._to)) {
|
|
49
|
-
if (typeof values[0] === 'object') {
|
|
50
|
-
this._from = values[0];
|
|
51
|
-
this._fromTime = this._from?.toLocaleTimeString().substring(0, 5);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
this._from = null;
|
|
55
|
-
}
|
|
56
|
-
if (typeof values[1] === 'object') {
|
|
57
|
-
this._to = values[1];
|
|
58
|
-
this._toTime = this._to?.toLocaleTimeString().substring(0, 5);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this._to = null;
|
|
62
|
-
}
|
|
63
|
-
this._changes.next(values);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
get from() {
|
|
68
|
-
return this._from;
|
|
69
|
-
}
|
|
70
|
-
get fromTime() {
|
|
71
|
-
return this._fromTime;
|
|
72
|
-
}
|
|
73
|
-
get toTime() {
|
|
74
|
-
return this._toTime;
|
|
75
|
-
}
|
|
76
|
-
set from(from) {
|
|
77
|
-
if (typeof from === 'object' && from !== this._from) {
|
|
78
|
-
if (!this.timeActive && from && typeof from.setHours === 'function') {
|
|
79
|
-
from.setHours(0, 0, 0, 0); // set from-date to start of day
|
|
80
|
-
}
|
|
81
|
-
if (!this.fromTime && from && from?.toLocaleTimeString() !== '00:00:00') {
|
|
82
|
-
this.fromTime = from?.toLocaleTimeString().substring(0, 5);
|
|
83
|
-
}
|
|
84
|
-
if (this.fromTime && from) {
|
|
85
|
-
const [hours, minutes, seconds] = this.fromTime.split(':').map(n => parseInt(n));
|
|
86
|
-
from.setHours(hours, minutes, seconds || 0, 0);
|
|
87
|
-
}
|
|
88
|
-
this._from = from;
|
|
89
|
-
this.validateDates();
|
|
90
|
-
this._changes.next([this._from, this._to]);
|
|
91
|
-
this.filterValueChange.emit([this._from, this._to]);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
set fromTime(fromtime) {
|
|
95
|
-
this._fromTime = fromtime;
|
|
96
|
-
if (this._fromTime && this._from) {
|
|
97
|
-
const [hours, minutes, seconds] = this._fromTime.split(':').map(n => parseInt(n));
|
|
98
|
-
this._from.setHours(hours, minutes, seconds || 0, 0);
|
|
99
|
-
this.validateDates();
|
|
100
|
-
this._changes.next([this._from, this._to]);
|
|
101
|
-
this.filterValueChange.emit([this._from, this._to]);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
get to() {
|
|
105
|
-
return this._to;
|
|
106
|
-
}
|
|
107
|
-
set to(to) {
|
|
108
|
-
if (typeof to === 'object' && to !== this._to) {
|
|
109
|
-
if (!this.timeActive && to && typeof to.setHours === 'function') {
|
|
110
|
-
to.setHours(23, 59, 59, 999); // set to-date to end of day
|
|
111
|
-
}
|
|
112
|
-
if (!this.toTime && to?.toLocaleTimeString() !== '23:59:59' && to?.toLocaleTimeString() !== '00:00:00') {
|
|
113
|
-
this.toTime = to?.toLocaleTimeString().substring(0, 5);
|
|
114
|
-
}
|
|
115
|
-
if (this.toTime) {
|
|
116
|
-
const [hours, minutes, seconds] = this.toTime.split(':').map(n => parseInt(n));
|
|
117
|
-
to.setHours(hours, minutes, seconds || 0, 0);
|
|
118
|
-
}
|
|
119
|
-
this._to = to;
|
|
120
|
-
this.validateDates();
|
|
121
|
-
this._changes.next([this._from, this._to]);
|
|
122
|
-
this.filterValueChange.emit([this._from, this._to]);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
set toTime(totime) {
|
|
126
|
-
this._toTime = totime;
|
|
127
|
-
if (this._toTime && this._to) {
|
|
128
|
-
const [hours, minutes, seconds] = this._toTime.split(':').map(n => parseInt(n));
|
|
129
|
-
this._to.setHours(hours, minutes, seconds || 0, 0);
|
|
130
|
-
this.validateDates();
|
|
131
|
-
this._changes.next([this._from, this._to]);
|
|
132
|
-
this.filterValueChange.emit([this._from, this._to]);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Indicates if the filter is currently active, (at least one input is set)
|
|
137
|
-
*/
|
|
138
|
-
isActive() {
|
|
139
|
-
return this._from !== null || this._to !== null;
|
|
140
|
-
}
|
|
141
|
-
accepts(item) {
|
|
142
|
-
let propValue = this.nestedProp ? this.nestedProp.getPropValue(item) : item;
|
|
143
|
-
if (propValue === undefined) {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
if (typeof propValue === 'string') {
|
|
147
|
-
propValue = new Date(propValue);
|
|
148
|
-
}
|
|
149
|
-
if (this._from !== null && (!(propValue instanceof Date) || propValue.getTime() < this._from.getTime())) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
if (this._to !== null && (!(propValue instanceof Date) || propValue.getTime() > this._to.getTime())) {
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
// We do not want to expose the Subject itself, but the Observable which is read-only
|
|
158
|
-
get changes() {
|
|
159
|
-
return this._changes.asObservable();
|
|
160
|
-
}
|
|
161
|
-
get state() {
|
|
162
|
-
return {
|
|
163
|
-
property: this.nestedProp,
|
|
164
|
-
from: this._from,
|
|
165
|
-
to: this._to,
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
clearFilter() {
|
|
169
|
-
this._from = null;
|
|
170
|
-
this._to = null;
|
|
171
|
-
this.fromTime = null;
|
|
172
|
-
this.toTime = null;
|
|
173
|
-
this._changes.next([this._from, this._to]);
|
|
174
|
-
this.filterValueChange.emit([this._from, this._to]);
|
|
175
|
-
}
|
|
176
|
-
equals(other) {
|
|
177
|
-
return other === this;
|
|
178
|
-
}
|
|
179
|
-
validateDates() {
|
|
180
|
-
if (this._from && this._to) {
|
|
181
|
-
this.valError = this._from > this._to;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterComponent, deps: [{ token: i1.ClrCommonStringsService }, { token: i1.ClrPopoverEventsService }, { token: i1.ClrDatagridFilter }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
185
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDateFilterComponent, selector: "clr-date-filter", inputs: { timeActive: "timeActive", dateValidationError: "dateValidationError", 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\" class=\"time-filter-input\" step=\"60\" [(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\" class=\"time-filter-input\" step=\"60\" [(ngModel)]=\"toTime\" />\n </clr-date-time-container>\n <clr-control-error *ngIf=\"valError\"\n >{{ dateValidationError || 'Date \"from\" must be before date \"to\"!' }}\n </clr-control-error>\n</ng-container>\n", styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}.time-filter-active{width:12rem}.time-filter-active-input,.time-filter-input{width:4.5rem!important}\n"], dependencies: [{ kind: "directive", type: i1.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i1.ClrControlError, selector: "clr-control-error" }, { kind: "component", type: i1.ClrDateContainer, selector: "clr-date-container", inputs: ["clrPosition"] }, { kind: "directive", type: i1.ClrDateInput, selector: "[clrDate]", inputs: ["placeholder", "clrDate", "min", "max", "disabled"], outputs: ["clrDateChange"] }, { kind: "directive", type: i1.ClrDateInputValidator, selector: "[clrDate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ClrDateTimeContainer, selector: "clr-date-time-container" }, { kind: "directive", type: i5.ClrTimeInput, selector: "[clrTime]" }] }); }
|
|
186
|
-
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterComponent, decorators: [{
|
|
188
|
-
type: Component,
|
|
189
|
-
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\" class=\"time-filter-input\" step=\"60\" [(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\" class=\"time-filter-input\" step=\"60\" [(ngModel)]=\"toTime\" />\n </clr-date-time-container>\n <clr-control-error *ngIf=\"valError\"\n >{{ dateValidationError || 'Date \"from\" must be before date \"to\"!' }}\n </clr-control-error>\n</ng-container>\n", styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}.time-filter-active{width:12rem}.time-filter-active-input,.time-filter-input{width:4.5rem!important}\n"] }]
|
|
190
|
-
}], ctorParameters: () => [{ type: i1.ClrCommonStringsService }, { type: i1.ClrPopoverEventsService }, { type: i1.ClrDatagridFilter }], propDecorators: { timeActive: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], dateValidationError: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], property: [{
|
|
195
|
-
type: Input,
|
|
196
|
-
args: ['clrProperty']
|
|
197
|
-
}], maxPlaceholder: [{
|
|
198
|
-
type: Input,
|
|
199
|
-
args: ['clrFilterMaxPlaceholder']
|
|
200
|
-
}], minPlaceholder: [{
|
|
201
|
-
type: Input,
|
|
202
|
-
args: ['clrFilterMinPlaceholder']
|
|
203
|
-
}], value: [{
|
|
204
|
-
type: Input,
|
|
205
|
-
args: ['clrFilterValue']
|
|
206
|
-
}], filterValueChange: [{
|
|
207
|
-
type: Output,
|
|
208
|
-
args: ['clrFilterValueChange']
|
|
209
|
-
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZGF0ZS1maWx0ZXIvZGF0ZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZGF0ZS1maWx0ZXIvZGF0ZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsdUJBQXVCLEdBQ3hCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFFekQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQU9qQyxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLElBQTBCLFFBQVEsQ0FBQyxLQUFhO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQ1UsYUFBc0MsRUFDdEMsdUJBQWdELEVBQ3hELGVBQWtDO1FBRjFCLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBaEIxRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSW5CLGFB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QUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQzs4R0FwTlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMFlDbEJuQyxnOURBMERBOzsyRkR4Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjtrS0FTM0IsVUFBVTtzQkFEVCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLb0IsUUFBUTtzQkFBakMsS0FBSzt1QkFBQyxhQUFhO2dCQXVCYyxjQUFjO3NCQUEvQyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFNRSxjQUFjO3NCQUEvQyxLQUFLO3VCQUFDLHlCQUF5QjtnQkFPckIsS0FBSztzQkFEZixLQUFLO3VCQUFDLGdCQUFnQjtnQkFxQlMsaUJBQWlCO3NCQUFoRCxNQUFNO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgQ2xyRGF0YWdyaWRGaWx0ZXIsXG4gIENsckRhdGFncmlkRmlsdGVySW50ZXJmYWNlLFxuICBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSxcbn0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5lc3RlZFByb3BlcnR5IH0gZnJvbSAnLi9uZXN0ZWQtcHJvcGVydHknO1xuaW1wb3J0IHsgQ2xhcml0eUljb25zLCB0cmFzaEljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5cbkNsYXJpdHlJY29ucy5hZGRJY29ucyh0cmFzaEljb24pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGF0ZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEYXRlRmlsdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9PlxuICBpbXBsZW1lbnRzIENsckRhdGFncmlkRmlsdGVySW50ZXJmYWNlPFQ+LCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgbmVzdGVkUHJvcDogTmVzdGVkUHJvcGVydHk8YW55PjtcbiAgQElucHV0KClcbiAgdGltZUFjdGl2ZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBkYXRlVmFsaWRhdGlvbkVycm9yOiBzdHJpbmc7XG5cbiAgdmFsRXJyb3IgPSBmYWxzZTtcblxuICBASW5wdXQoJ2NsclByb3BlcnR5Jykgc2V0IHByb3BlcnR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5lc3RlZFByb3AgPSBuZXcgTmVzdGVkUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5KCkge1xuICAgIHJldHVybiB0aGlzLm5lc3RlZFByb3AucHJvcDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjbHJQb3BvdmVyRXZlbnRzU2VydmljZTogQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UsXG4gICAgZmlsdGVyQ29udGFpbmVyOiBDbHJEYXRhZ3JpZEZpbHRlclxuICApIHtcbiAgICBmaWx0ZXJDb250YWluZXIuc2V0RmlsdGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsclBvcG92ZXJFdmVudHNTZXJ2aWNlLm91dHNpZGVDbGlja0Nsb3NlID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSBhIHdheSB0byBwYXNzIGV4dGVybmFsIHBsYWNlaG9sZGVyIGFuZCBhcmlhLWxhYmVsIHRvIHRoZSBmaWx0ZXIgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgnY2xyRmlsdGVyTWF4UGxhY2Vob2xkZXInKSBtYXhQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIGdldCBtYXhQbGFjZWhvbGRlclZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm1heFBsYWNlaG9sZGVyIHx8IHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlcicpIG1pblBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgZ2V0IG1pblBsYWNlaG9sZGVyVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWluUGxhY2Vob2xkZXIgfHwgdGhpcy5jb21tb25TdHJpbmdzLmtleXMubWluVmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2NsckZpbHRlclZhbHVlJylcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZXM6IFtEYXRlLCBEYXRlXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgIGlmICh2YWx1ZXMgJiYgKHZhbHVlc1swXSAhPT0gdGhpcy5fZnJvbSB8fCB2YWx1ZXNbMV0gIT09IHRoaXMuX3RvKSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0aGlzLl9mcm9tID0gdmFsdWVzWzBdO1xuICAgICAgICAgIHRoaXMuX2Zyb21UaW1lID0gdGhpcy5fZnJvbT8udG9Mb2NhbGVUaW1lU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2Zyb20gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWVzWzFdID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuX3RvID0gdmFsdWVzWzFdO1xuICAgICAgICAgIHRoaXMuX3RvVGltZSA9IHRoaXMuX3RvPy50b0xvY2FsZVRpbWVTdHJpbmcoKS5zdWJzdHJpbmcoMCwgNSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fdG8gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZXMubmV4dCh2YWx1ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NsckZpbHRlclZhbHVlQ2hhbmdlJykgZmlsdGVyVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEludGVybmFsIHZhbHVlcyBhbmQgYWNjZXNzb3JcbiAgICovXG4gIHByaXZhdGUgX2Zyb206IERhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdG86IERhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdG9UaW1lOiBzdHJpbmcgfCBudWxsO1xuICBwcml2YXRlIF9mcm9tVGltZTogc3RyaW5nIHwgbnVsbDtcblxuICBwdWJsaWMgZ2V0IGZyb20oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zyb207XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZyb21UaW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9mcm9tVGltZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9UaW1lKCkge1xuICAgIHJldHVybiB0aGlzLl90b1RpbWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGZyb20oZnJvbTogRGF0ZSkge1xuICAgIGlmICh0eXBlb2YgZnJvbSA9PT0gJ29iamVjdCcgJiYgZnJvbSAhPT0gdGhpcy5fZnJvbSkge1xuICAgICAgaWYgKCF0aGlzLnRpbWVBY3RpdmUgJiYgZnJvbSAmJiB0eXBlb2YgZnJvbS5zZXRIb3VycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmcm9tLnNldEhvdXJzKDAsIDAsIDAsIDApOyAvLyBzZXQgZnJvbS1kYXRlIHRvIHN0YXJ0IG9mIGRheVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmZyb21UaW1lICYmIGZyb20gJiYgZnJvbT8udG9Mb2NhbGVUaW1lU3RyaW5nKCkgIT09ICcwMDowMDowMCcpIHtcbiAgICAgICAgdGhpcy5mcm9tVGltZSA9IGZyb20/LnRvTG9jYWxlVGltZVN0cmluZygpLnN1YnN0cmluZygwLCA1KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZyb21UaW1lICYmIGZyb20pIHtcbiAgICAgICAgY29uc3QgW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzXSA9IHRoaXMuZnJvbVRpbWUuc3BsaXQoJzonKS5tYXAobiA9PiBwYXJzZUludChuKSk7XG4gICAgICAgIGZyb20uc2V0SG91cnMoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMgfHwgMCwgMCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICAgIHRoaXMudmFsaWRhdGVEYXRlcygpO1xuICAgICAgdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9mcm9tLCB0aGlzLl90b10pO1xuICAgICAgdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLl9mcm9tLCB0aGlzLl90b10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgZnJvbVRpbWUoZnJvbXRpbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zyb21UaW1lID0gZnJvbXRpbWU7XG4gICAgaWYgKHRoaXMuX2Zyb21UaW1lICYmIHRoaXMuX2Zyb20pIHtcbiAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSB0aGlzLl9mcm9tVGltZS5zcGxpdCgnOicpLm1hcChuID0+IHBhcnNlSW50KG4pKTtcbiAgICAgIHRoaXMuX2Zyb20uc2V0SG91cnMoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMgfHwgMCwgMCk7XG4gICAgICB0aGlzLnZhbGlkYXRlRGF0ZXMoKTtcbiAgICAgIHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fZnJvbSwgdGhpcy5fdG9dKTtcbiAgICAgIHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhpcy5fZnJvbSwgdGhpcy5fdG9dKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvKCkge1xuICAgIHJldHVybiB0aGlzLl90bztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdG8odG86IERhdGUpIHtcbiAgICBpZiAodHlwZW9mIHRvID09PSAnb2JqZWN0JyAmJiB0byAhPT0gdGhpcy5fdG8pIHtcbiAgICAgIGlmICghdGhpcy50aW1lQWN0aXZlICYmIHRvICYmIHR5cGVvZiB0by5zZXRIb3VycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0by5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpOyAvLyBzZXQgdG8tZGF0ZSB0byBlbmQgb2YgZGF5XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMudG9UaW1lICYmIHRvPy50b0xvY2FsZVRpbWVTdHJpbmcoKSAhPT0gJzIzOjU5OjU5JyAmJiB0bz8udG9Mb2NhbGVUaW1lU3RyaW5nKCkgIT09ICcwMDowMDowMCcpIHtcbiAgICAgICAgdGhpcy50b1RpbWUgPSB0bz8udG9Mb2NhbGVUaW1lU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudG9UaW1lKSB7XG4gICAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSB0aGlzLnRvVGltZS5zcGxpdCgnOicpLm1hcChuID0+IHBhcnNlSW50KG4pKTtcbiAgICAgICAgdG8uc2V0SG91cnMoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMgfHwgMCwgMCk7XG4gICAgICB9XG4gICAgICB0aGlzLl90byA9IHRvO1xuICAgICAgdGhpcy52YWxpZGF0ZURhdGVzKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2Zyb20sIHRoaXMuX3RvXSk7XG4gICAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuX2Zyb20sIHRoaXMuX3RvXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCB0b1RpbWUodG90aW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b1RpbWUgPSB0b3RpbWU7XG4gICAgaWYgKHRoaXMuX3RvVGltZSAmJiB0aGlzLl90bykge1xuICAgICAgY29uc3QgW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzXSA9IHRoaXMuX3RvVGltZS5zcGxpdCgnOicpLm1hcChuID0+IHBhcnNlSW50KG4pKTtcbiAgICAgIHRoaXMuX3RvLnNldEhvdXJzKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzIHx8IDAsIDApO1xuICAgICAgdGhpcy52YWxpZGF0ZURhdGVzKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2Zyb20sIHRoaXMuX3RvXSk7XG4gICAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuX2Zyb20sIHRoaXMuX3RvXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgZmlsdGVyIGlzIGN1cnJlbnRseSBhY3RpdmUsIChhdCBsZWFzdCBvbmUgaW5wdXQgaXMgc2V0KVxuICAgKi9cbiAgcHVibGljIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mcm9tICE9PSBudWxsIHx8IHRoaXMuX3RvICE9PSBudWxsO1xuICB9XG5cbiAgYWNjZXB0cyhpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgbGV0IHByb3BWYWx1ZSA9IHRoaXMubmVzdGVkUHJvcCA/IHRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUoaXRlbSkgOiBpdGVtO1xuICAgIGlmIChwcm9wVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHByb3BWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHByb3BWYWx1ZSA9IG5ldyBEYXRlKHByb3BWYWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mcm9tICE9PSBudWxsICYmICghKHByb3BWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHx8IHByb3BWYWx1ZS5nZXRUaW1lKCkgPCB0aGlzLl9mcm9tLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3RvICE9PSBudWxsICYmICghKHByb3BWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHx8IHByb3BWYWx1ZS5nZXRUaW1lKCkgPiB0aGlzLl90by5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNlcnZhYmxlIHJlcXVpcmVkIGFzIHBhcnQgb2YgdGhlIEZpbHRlciBpbnRlcmZhY2VcbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZXMgPSBuZXcgU3ViamVjdDxbRGF0ZSwgRGF0ZV0+KCk7XG5cbiAgLy8gV2UgZG8gbm90IHdhbnQgdG8gZXhwb3NlIHRoZSBTdWJqZWN0IGl0c2VsZiwgYnV0IHRoZSBPYnNlcnZhYmxlIHdoaWNoIGlzIHJlYWQtb25seVxuICBwdWJsaWMgZ2V0IGNoYW5nZXMoKTogT2JzZXJ2YWJsZTxbRGF0ZSwgRGF0ZV0+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydHk6IHRoaXMubmVzdGVkUHJvcCxcbiAgICAgIGZyb206IHRoaXMuX2Zyb20sXG4gICAgICB0bzogdGhpcy5fdG8sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLl9mcm9tID0gbnVsbDtcbiAgICB0aGlzLl90byA9IG51bGw7XG4gICAgdGhpcy5mcm9tVGltZSA9IG51bGw7XG4gICAgdGhpcy50b1RpbWUgPSBudWxsO1xuICAgIHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fZnJvbSwgdGhpcy5fdG9dKTtcbiAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuX2Zyb20sIHRoaXMuX3RvXSk7XG4gIH1cblxuICBwdWJsaWMgZXF1YWxzKG90aGVyOiBDbHJEYXRhZ3JpZEZpbHRlckludGVyZmFjZTxULCBhbnk+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG90aGVyID09PSB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZURhdGVzKCkge1xuICAgIGlmICh0aGlzLl9mcm9tICYmIHRoaXMuX3RvKSB7XG4gICAgICB0aGlzLnZhbEVycm9yID0gdGhpcy5fZnJvbSA+IHRoaXMuX3RvO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpbmsgYnRuLXRyYXNoXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cbiAgPGNkcy1pY29uIHNoYXBlPVwidHJhc2hcIj48L2Nkcy1pY29uPlxuPC9idXR0b24+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRpbWVBY3RpdmVcIj5cbiAgPGNsci1kYXRlLWNvbnRhaW5lcj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dF9mcm9tXG4gICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICBuYW1lPVwiZnJvbVwiXG4gICAgICBjbGFzcz1cImRhdGFncmlkLWRhdGUtZmlsdGVyLWlucHV0XCJcbiAgICAgIFsoY2xyRGF0ZSldPVwiZnJvbVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwibWluUGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1pblBsYWNlaG9sZGVyVmFsdWVcIlxuICAgIC8+XG4gIDwvY2xyLWRhdGUtY29udGFpbmVyPlxuICA8Y2xyLWRhdGUtY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgbmFtZT1cInRvXCJcbiAgICAgIGNsYXNzPVwiZGF0YWdyaWQtZGF0ZS1maWx0ZXItaW5wdXRcIlxuICAgICAgWyhjbHJEYXRlKV09XCJ0b1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwibWF4UGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1heFBsYWNlaG9sZGVyVmFsdWVcIlxuICAgIC8+XG4gIDwvY2xyLWRhdGUtY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwidGltZUFjdGl2ZVwiPlxuICA8Y2xyLWRhdGUtdGltZS1jb250YWluZXI+XG4gICAgPGNsci1kYXRlLWNvbnRhaW5lciBjbGFzcz1cInRpbWUtZmlsdGVyLWFjdGl2ZVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dF9mcm9tXG4gICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgbmFtZT1cImZyb21cIlxuICAgICAgICBjbGFzcz1cImRhdGFncmlkLWRhdGUtZmlsdGVyLWlucHV0IHRpbWUtZmlsdGVyLWFjdGl2ZS1pbnB1dFwiXG4gICAgICAgIFsoY2xyRGF0ZSldPVwiZnJvbVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJtaW5QbGFjZWhvbGRlclZhbHVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtaW5QbGFjZWhvbGRlclZhbHVlXCJcbiAgICAgIC8+XG4gICAgPC9jbHItZGF0ZS1jb250YWluZXI+XG4gICAgPGlucHV0IGNsclRpbWUgdHlwZT1cInRpbWVcIiBjbGFzcz1cInRpbWUtZmlsdGVyLWlucHV0XCIgc3RlcD1cIjYwXCIgWyhuZ01vZGVsKV09XCJmcm9tVGltZVwiIC8+XG4gIDwvY2xyLWRhdGUtdGltZS1jb250YWluZXI+XG4gIDxjbHItZGF0ZS10aW1lLWNvbnRhaW5lcj5cbiAgICA8Y2xyLWRhdGUtY29udGFpbmVyIGNsYXNzPVwidGltZS1maWx0ZXItYWN0aXZlXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICBuYW1lPVwidG9cIlxuICAgICAgICBjbGFzcz1cImRhdGFncmlkLWRhdGUtZmlsdGVyLWlucHV0IHRpbWUtZmlsdGVyLWFjdGl2ZS1pbnB1dFwiXG4gICAgICAgIFsoY2xyRGF0ZSldPVwidG9cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWF4UGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWF4UGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICAvPlxuICAgIDwvY2xyLWRhdGUtY29udGFpbmVyPlxuICAgIDxpbnB1dCBjbHJUaW1lIHR5cGU9XCJ0aW1lXCIgY2xhc3M9XCJ0aW1lLWZpbHRlci1pbnB1dFwiIHN0ZXA9XCI2MFwiIFsobmdNb2RlbCldPVwidG9UaW1lXCIgLz5cbiAgPC9jbHItZGF0ZS10aW1lLWNvbnRhaW5lcj5cbiAgPGNsci1jb250cm9sLWVycm9yICpuZ0lmPVwidmFsRXJyb3JcIlxuICAgID57eyBkYXRlVmFsaWRhdGlvbkVycm9yIHx8ICdEYXRlIFwiZnJvbVwiIG11c3QgYmUgYmVmb3JlIGRhdGUgXCJ0b1wiIScgfX1cbiAgPC9jbHItY29udHJvbC1lcnJvcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { ClarityModule } from '@clr/angular';
|
|
5
|
-
import { ClrDateFilterComponent } from './date-filter.component';
|
|
6
|
-
import { ClrDateTimeModule } from '../../date-time-container';
|
|
7
|
-
import { ClrFormModule } from '../../abstract-form-component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class ClrDateFilterModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
-
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] }); }
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, imports: [ClarityModule, CommonModule, FormsModule, ClrDateTimeModule, ClrFormModule] }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateFilterModule, decorators: [{
|
|
15
|
-
type: NgModule,
|
|
16
|
-
args: [{
|
|
17
|
-
imports: [ClarityModule, CommonModule, FormsModule, ClrDateTimeModule, ClrFormModule],
|
|
18
|
-
declarations: [ClrDateFilterComponent],
|
|
19
|
-
exports: [ClrDateFilterComponent],
|
|
20
|
-
}]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZGF0ZS1maWx0ZXIvZGF0ZS1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBSGYsc0JBQXNCLGFBRDNCLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsYUFFMUUsc0JBQXNCOytHQUVyQixtQkFBbUIsWUFKcEIsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTs7MkZBSXpFLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLENBQUM7b0JBQ3JGLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xhcml0eU1vZHVsZSB9IGZyb20gJ0BjbHIvYW5ndWxhcic7XG5pbXBvcnQgeyBDbHJEYXRlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2xyRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICcuLi8uLi9kYXRlLXRpbWUtY29udGFpbmVyJztcbmltcG9ydCB7IENsckZvcm1Nb2R1bGUgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDbGFyaXR5TW9kdWxlLCBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDbHJEYXRlVGltZU1vZHVsZSwgQ2xyRm9ybU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0NsckRhdGVGaWx0ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQ2xyRGF0ZUZpbHRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGVGaWx0ZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './date-filter.component';
|
|
2
|
-
export * from './date-filter.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9kYXRhZ3JpZC9kYXRlLWZpbHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtZmlsdGVyLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. 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
|
-
/**
|
|
7
|
-
* Generic accessor for deep object properties
|
|
8
|
-
* that can be specified as simple dot-separated strings.
|
|
9
|
-
*/
|
|
10
|
-
export class NestedProperty {
|
|
11
|
-
constructor(prop) {
|
|
12
|
-
this.prop = prop;
|
|
13
|
-
if (prop.indexOf('.') >= 0) {
|
|
14
|
-
this.splitProp = prop.split('.');
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// Safe getter for a deep object property, will not throw an error but return
|
|
18
|
-
// undefined if one of the intermediate properties is null or undefined.
|
|
19
|
-
getPropValue(item) {
|
|
20
|
-
if (this.splitProp) {
|
|
21
|
-
let value = item;
|
|
22
|
-
for (const nestedProp of this.splitProp) {
|
|
23
|
-
if (value === null ||
|
|
24
|
-
typeof value === 'undefined' ||
|
|
25
|
-
typeof value[nestedProp] === 'undefined') {
|
|
26
|
-
return undefined;
|
|
27
|
-
}
|
|
28
|
-
value = value[nestedProp];
|
|
29
|
-
}
|
|
30
|
-
return value;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return item[this.prop];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZGF0ZS1maWx0ZXIvbmVzdGVkLXByb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFtQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM3QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLHdFQUF3RTtJQUNqRSxZQUFZLENBQUMsSUFBTztRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDakIsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hDLElBQ0UsS0FBSyxLQUFLLElBQUk7b0JBQ2QsT0FBTyxLQUFLLEtBQUssV0FBVztvQkFDNUIsT0FBUSxLQUE2QixDQUFDLFVBQVUsQ0FBQyxLQUFLLFdBQVcsRUFDakUsQ0FBQztvQkFDRCxPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQztnQkFDRCxLQUFLLEdBQUksS0FBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQVEsSUFBNEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuLyoqXG4gKiBHZW5lcmljIGFjY2Vzc29yIGZvciBkZWVwIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgYXMgc2ltcGxlIGRvdC1zZXBhcmF0ZWQgc3RyaW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZFByb3BlcnR5PFQgPSBhbnk+IHtcbiAgcHJpdmF0ZSBzcGxpdFByb3A6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9wOiBzdHJpbmcpIHtcbiAgICBpZiAocHJvcC5pbmRleE9mKCcuJykgPj0gMCkge1xuICAgICAgdGhpcy5zcGxpdFByb3AgPSBwcm9wLnNwbGl0KCcuJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2FmZSBnZXR0ZXIgZm9yIGEgZGVlcCBvYmplY3QgcHJvcGVydHksIHdpbGwgbm90IHRocm93IGFuIGVycm9yIGJ1dCByZXR1cm5cbiAgLy8gdW5kZWZpbmVkIGlmIG9uZSBvZiB0aGUgaW50ZXJtZWRpYXRlIHByb3BlcnRpZXMgaXMgbnVsbCBvciB1bmRlZmluZWQuXG4gIHB1YmxpYyBnZXRQcm9wVmFsdWUoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc3BsaXRQcm9wKSB7XG4gICAgICBsZXQgdmFsdWUgPSBpdGVtO1xuICAgICAgZm9yIChjb25zdCBuZXN0ZWRQcm9wIG9mIHRoaXMuc3BsaXRQcm9wKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgICAgICB0eXBlb2YgKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW25lc3RlZFByb3BdID09PSAndW5kZWZpbmVkJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW25lc3RlZFByb3BdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGhpcy5wcm9wXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { ClrDatagrid, ClrDatagridFilter } from '@clr/angular';
|
|
3
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
-
import { ClarityIcons, trashIcon } from '@cds/core/icon';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@clr/angular";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "@angular/forms";
|
|
9
|
-
ClarityIcons.addIcons(trashIcon);
|
|
10
|
-
export class ClrEnumFilterComponent {
|
|
11
|
-
set setEmptyValuesTranslation(translatedValue) {
|
|
12
|
-
if (translatedValue !== this.emptyDefaultValue) {
|
|
13
|
-
this.emptyValue = translatedValue;
|
|
14
|
-
/* update values if translation set */
|
|
15
|
-
this.setFilteredValues(this.filteredValues);
|
|
16
|
-
if (this.possibleValues?.length !== 0) {
|
|
17
|
-
this.setPossibleValues(this.possibleValues);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
set value(values) {
|
|
22
|
-
this.setFilteredValues(values);
|
|
23
|
-
}
|
|
24
|
-
setFilteredValues(values) {
|
|
25
|
-
const mappedValues = this.mapValues(values);
|
|
26
|
-
if (this.possibleValues?.length) {
|
|
27
|
-
const mappedPossibleValues = this.possibleValues.map(v => this.mapValue(v));
|
|
28
|
-
const values = mappedValues.map(v => v.value);
|
|
29
|
-
this.filteredValues = mappedPossibleValues.filter(possibleValue => values?.includes(possibleValue.value));
|
|
30
|
-
this.clrFilterValuesChange.emit(this.getDisplayValues(this.filteredValues));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
this.filteredValues = mappedValues;
|
|
34
|
-
}
|
|
35
|
-
this.changes.emit(true);
|
|
36
|
-
}
|
|
37
|
-
set clrPossibleValues(values) {
|
|
38
|
-
this.setPossibleValues(values);
|
|
39
|
-
this.customPossibleValues = true;
|
|
40
|
-
}
|
|
41
|
-
constructor(filterContainer, datagrid) {
|
|
42
|
-
this.property = '';
|
|
43
|
-
this.clrFilterValuesChange = new EventEmitter();
|
|
44
|
-
this.possibleValues = [];
|
|
45
|
-
this.customPossibleValues = false;
|
|
46
|
-
this.filteredValues = [];
|
|
47
|
-
this.emptyDefaultValue = '(Empty)';
|
|
48
|
-
this.emptyValue = this.emptyDefaultValue;
|
|
49
|
-
this.changes = new EventEmitter(false);
|
|
50
|
-
this.destroyed$ = new Subject();
|
|
51
|
-
filterContainer.setFilter(this);
|
|
52
|
-
datagrid.items.allChanges.pipe(takeUntil(this.destroyed$)).subscribe(items => {
|
|
53
|
-
if (!this.customPossibleValues) {
|
|
54
|
-
this.setPossibleValues(items.map(item => item[this.property]).filter((value, index, self) => self.indexOf(value) === index));
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
setPossibleValues(values) {
|
|
59
|
-
if (values === null) {
|
|
60
|
-
values = [];
|
|
61
|
-
}
|
|
62
|
-
this.possibleValues = values.map(value => this.mapValue(value));
|
|
63
|
-
this.possibleValues.sort((v1, v2) => v1.displayValue.localeCompare(v2.displayValue));
|
|
64
|
-
this.filteredValues = this.filteredValues.filter(filtered => this.containsFilterValue(this.possibleValues, filtered));
|
|
65
|
-
this.emitFilterChanged();
|
|
66
|
-
}
|
|
67
|
-
onChange(selectedValue, checkboxState) {
|
|
68
|
-
if (checkboxState) {
|
|
69
|
-
this.filteredValues.push(selectedValue);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
this.filteredValues = this.filteredValues.filter(filtered => filtered.value !== selectedValue.value);
|
|
73
|
-
}
|
|
74
|
-
this.emitFilterChanged();
|
|
75
|
-
}
|
|
76
|
-
isActive() {
|
|
77
|
-
return this.filteredValues.length > 0;
|
|
78
|
-
}
|
|
79
|
-
accepts(item) {
|
|
80
|
-
const displayValues = this.getDisplayValues(this.filteredValues);
|
|
81
|
-
if (this.acceptEmptyValue(displayValues, item)) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
return displayValues.includes(item[this.property]);
|
|
85
|
-
}
|
|
86
|
-
acceptEmptyValue(displayValues, item) {
|
|
87
|
-
return displayValues.some(value => !value) && !item[this.property];
|
|
88
|
-
}
|
|
89
|
-
get state() {
|
|
90
|
-
return {
|
|
91
|
-
property: this.property,
|
|
92
|
-
value: this.getValues(this.filteredValues),
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
clearFilters() {
|
|
96
|
-
this.filteredValues = [];
|
|
97
|
-
this.emitFilterChanged();
|
|
98
|
-
}
|
|
99
|
-
emitFilterChanged() {
|
|
100
|
-
this.clrFilterValuesChange.emit(this.getDisplayValues(this.filteredValues));
|
|
101
|
-
this.changes.emit(true);
|
|
102
|
-
}
|
|
103
|
-
ngOnDestroy() {
|
|
104
|
-
this.destroyed$.next();
|
|
105
|
-
this.destroyed$.complete();
|
|
106
|
-
}
|
|
107
|
-
containsFilterValue(entries, filtered) {
|
|
108
|
-
return entries.some(v => v.value === filtered.value);
|
|
109
|
-
}
|
|
110
|
-
getDisplayValues(entries) {
|
|
111
|
-
return entries.map(entry => (!entry.value ? entry.value : entry.displayValue));
|
|
112
|
-
}
|
|
113
|
-
getValues(entries) {
|
|
114
|
-
return entries.map(entry => entry.value);
|
|
115
|
-
}
|
|
116
|
-
mapValues(values) {
|
|
117
|
-
if (!values) {
|
|
118
|
-
return [];
|
|
119
|
-
}
|
|
120
|
-
return values.map(value => this.mapValue(value));
|
|
121
|
-
}
|
|
122
|
-
mapValue(value) {
|
|
123
|
-
if (value instanceof Object) {
|
|
124
|
-
return !value.value ? { value: '', displayValue: this.emptyValue } : value;
|
|
125
|
-
}
|
|
126
|
-
return value ? { value: value, displayValue: value } : { value: '', displayValue: this.emptyValue };
|
|
127
|
-
}
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterComponent, deps: [{ token: i1.ClrDatagridFilter }, { token: i1.ClrDatagrid }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrEnumFilterComponent, selector: "clr-enum-filter", inputs: { property: ["clrProperty", "property"], setEmptyValuesTranslation: ["clrEmptyValuesTranslation", "setEmptyValuesTranslation"], value: ["clrFilterValues", "value"], clrPossibleValues: "clrPossibleValues" }, outputs: { clrFilterValuesChange: "clrFilterValuesChange" }, ngImport: i0, template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilters()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<clr-checkbox-container class=\"filter-selection\">\n <clr-checkbox-wrapper *ngFor=\"let possibleValue of possibleValues\">\n <input\n type=\"checkbox\"\n clrCheckbox\n value=\"{{ possibleValue.displayValue ?? possibleValue }}\"\n name=\"possibleValue\"\n [ngModel]=\"containsFilterValue(filteredValues, possibleValue)\"\n (ngModelChange)=\"onChange(possibleValue, $event)\"\n />\n <label>{{ possibleValue.displayValue ?? possibleValue }}</label>\n </clr-checkbox-wrapper>\n</clr-checkbox-container>\n", styles: [".filter-selection{margin-top:0}.btn-trash{position:absolute;top:15px;right:40px;padding:0}\n"], dependencies: [{ kind: "directive", type: i1.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i1.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i1.ClrCheckboxContainer, selector: "clr-checkbox-container,clr-toggle-container", inputs: ["clrInline"] }, { kind: "component", type: i1.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
130
|
-
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterComponent, decorators: [{
|
|
132
|
-
type: Component,
|
|
133
|
-
args: [{ selector: 'clr-enum-filter', template: "<button class=\"btn btn-sm btn-icon btn-link btn-trash\" (click)=\"clearFilters()\">\n <cds-icon shape=\"trash\"></cds-icon>\n</button>\n<clr-checkbox-container class=\"filter-selection\">\n <clr-checkbox-wrapper *ngFor=\"let possibleValue of possibleValues\">\n <input\n type=\"checkbox\"\n clrCheckbox\n value=\"{{ possibleValue.displayValue ?? possibleValue }}\"\n name=\"possibleValue\"\n [ngModel]=\"containsFilterValue(filteredValues, possibleValue)\"\n (ngModelChange)=\"onChange(possibleValue, $event)\"\n />\n <label>{{ possibleValue.displayValue ?? possibleValue }}</label>\n </clr-checkbox-wrapper>\n</clr-checkbox-container>\n", styles: [".filter-selection{margin-top:0}.btn-trash{position:absolute;top:15px;right:40px;padding:0}\n"] }]
|
|
134
|
-
}], ctorParameters: () => [{ type: i1.ClrDatagridFilter }, { type: i1.ClrDatagrid }], propDecorators: { property: [{
|
|
135
|
-
type: Input,
|
|
136
|
-
args: ['clrProperty']
|
|
137
|
-
}], setEmptyValuesTranslation: [{
|
|
138
|
-
type: Input,
|
|
139
|
-
args: ['clrEmptyValuesTranslation']
|
|
140
|
-
}], value: [{
|
|
141
|
-
type: Input,
|
|
142
|
-
args: ['clrFilterValues']
|
|
143
|
-
}], clrPossibleValues: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], clrFilterValuesChange: [{
|
|
146
|
-
type: Output
|
|
147
|
-
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZW51bS1maWx0ZXIvZW51bS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZW51bS1maWx0ZXIvZW51bS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUE4QixNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUV6RCxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBWWpDLE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsSUFDVyx5QkFBeUIsQ0FBQyxlQUF1QjtRQUMxRCxJQUFJLGVBQWUsS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztZQUNsQyxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1csS0FBSyxDQUFDLE1BQWdCO1FB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LHlCQUF5QjtzQkFEbkMsS0FBSzt1QkFBQywyQkFBMkI7Z0JBYXZCLEtBQUs7c0JBRGYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBbUJYLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFLSSxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZCwgQ2xyRGF0YWdyaWRGaWx0ZXIsIENsckRhdGFncmlkRmlsdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xhcml0eUljb25zLCB0cmFzaEljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5cbkNsYXJpdHlJY29ucy5hZGRJY29ucyh0cmFzaEljb24pO1xuXG5pbnRlcmZhY2UgRmlsdGVyVmFsdWUge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWVudW0tZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudW0tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW51bS1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRW51bUZpbHRlckNvbXBvbmVudDxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT5cbiAgaW1wbGVtZW50cyBDbHJEYXRhZ3JpZEZpbHRlckludGVyZmFjZTxUPiwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgnY2xyUHJvcGVydHknKSBwcm9wZXJ0eSA9ICcnO1xuXG4gIEBJbnB1dCgnY2xyRW1wdHlWYWx1ZXNUcmFuc2xhdGlvbicpXG4gIHB1YmxpYyBzZXQgc2V0RW1wdHlWYWx1ZXNUcmFuc2xhdGlvbih0cmFuc2xhdGVkVmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0cmFuc2xhdGVkVmFsdWUgIT09IHRoaXMuZW1wdHlEZWZhdWx0VmFsdWUpIHtcbiAgICAgIHRoaXMuZW1wdHlWYWx1ZSA9IHRyYW5zbGF0ZWRWYWx1ZTtcbiAgICAgIC8qIHVwZGF0ZSB2YWx1ZXMgaWYgdHJhbnNsYXRpb24gc2V0ICovXG4gICAgICB0aGlzLnNldEZpbHRlcmVkVmFsdWVzKHRoaXMuZmlsdGVyZWRWYWx1ZXMpO1xuICAgICAgaWYgKHRoaXMucG9zc2libGVWYWx1ZXM/Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aGlzLnNldFBvc3NpYmxlVmFsdWVzKHRoaXMucG9zc2libGVWYWx1ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY2xyRmlsdGVyVmFsdWVzJylcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZXRGaWx0ZXJlZFZhbHVlcyh2YWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWx0ZXJlZFZhbHVlcyh2YWx1ZXM6IChzdHJpbmcgfCBGaWx0ZXJWYWx1ZSlbXSk6IHZvaWQge1xuICAgIGNvbnN0IG1hcHBlZFZhbHVlcyA9IHRoaXMubWFwVmFsdWVzKHZhbHVlcyk7XG4gICAgaWYgKHRoaXMucG9zc2libGVWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgbWFwcGVkUG9zc2libGVWYWx1ZXMgPSB0aGlzLnBvc3NpYmxlVmFsdWVzLm1hcCh2ID0+IHRoaXMubWFwVmFsdWUodikpO1xuICAgICAgY29uc3QgdmFsdWVzID0gbWFwcGVkVmFsdWVzLm1hcCh2ID0+IHYudmFsdWUpO1xuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IG1hcHBlZFBvc3NpYmxlVmFsdWVzLmZpbHRlcihwb3NzaWJsZVZhbHVlID0+IHZhbHVlcz8uaW5jbHVkZXMocG9zc2libGVWYWx1ZS52YWx1ZSkpO1xuICAgICAgdGhpcy5jbHJGaWx0ZXJWYWx1ZXNDaGFuZ2UuZW1pdCh0aGlzLmdldERpc3BsYXlWYWx1ZXModGhpcy5maWx0ZXJlZFZhbHVlcykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gbWFwcGVkVmFsdWVzO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlcy5lbWl0KHRydWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGNsclBvc3NpYmxlVmFsdWVzKHZhbHVlczogKHN0cmluZyB8IEZpbHRlclZhbHVlKVtdKSB7XG4gICAgdGhpcy5zZXRQb3NzaWJsZVZhbHVlcyh2YWx1ZXMpO1xuICAgIHRoaXMuY3VzdG9tUG9zc2libGVWYWx1ZXMgPSB0cnVlO1xuICB9XG5cbiAgQE91dHB1dCgpIGNsckZpbHRlclZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgcG9zc2libGVWYWx1ZXM6IEZpbHRlclZhbHVlW10gPSBbXTtcbiAgY3VzdG9tUG9zc2libGVWYWx1ZXMgPSBmYWxzZTtcbiAgZmlsdGVyZWRWYWx1ZXM6IEZpbHRlclZhbHVlW10gPSBbXTtcbiAgZW1wdHlEZWZhdWx0VmFsdWU6IHN0cmluZyA9ICcoRW1wdHkpJztcbiAgZW1wdHlWYWx1ZTogc3RyaW5nID0gdGhpcy5lbXB0eURlZmF1bHRWYWx1ZTtcbiAgY2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGZpbHRlckNvbnRhaW5lcjogQ2xyRGF0YWdyaWRGaWx0ZXIsIGRhdGFncmlkOiBDbHJEYXRhZ3JpZCkge1xuICAgIGZpbHRlckNvbnRhaW5lci5zZXRGaWx0ZXIodGhpcyk7XG4gICAgZGF0YWdyaWQuaXRlbXMuYWxsQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgaWYgKCF0aGlzLmN1c3RvbVBvc3NpYmxlVmFsdWVzKSB7XG4gICAgICAgIHRoaXMuc2V0UG9zc2libGVWYWx1ZXMoXG4gICAgICAgICAgaXRlbXMubWFwKGl0ZW0gPT4gaXRlbVt0aGlzLnByb3BlcnR5XSkuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0UG9zc2libGVWYWx1ZXModmFsdWVzOiAoc3RyaW5nIHwgRmlsdGVyVmFsdWUpW10pIHtcbiAgICBpZiAodmFsdWVzID09PSBudWxsKSB7XG4gICAgICB2YWx1ZXMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5wb3NzaWJsZVZhbHVlcyA9IHZhbHVlcy5tYXAodmFsdWUgPT4gdGhpcy5tYXBWYWx1ZSh2YWx1ZSkpO1xuICAgIHRoaXMucG9zc2libGVWYWx1ZXMuc29ydCgodjEsIHYyKSA9PiB2MS5kaXNwbGF5VmFsdWUubG9jYWxlQ29tcGFyZSh2Mi5kaXNwbGF5VmFsdWUpKTtcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5maWx0ZXJlZFZhbHVlcy5maWx0ZXIoZmlsdGVyZWQgPT5cbiAgICAgIHRoaXMuY29udGFpbnNGaWx0ZXJWYWx1ZSh0aGlzLnBvc3NpYmxlVmFsdWVzLCBmaWx0ZXJlZClcbiAgICApO1xuXG4gICAgdGhpcy5lbWl0RmlsdGVyQ2hhbmdlZCgpO1xuICB9XG5cbiAgb25DaGFuZ2Uoc2VsZWN0ZWRWYWx1ZTogRmlsdGVyVmFsdWUsIGNoZWNrYm94U3RhdGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2hlY2tib3hTdGF0ZSkge1xuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcy5wdXNoKHNlbGVjdGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5maWx0ZXJlZFZhbHVlcy5maWx0ZXIoZmlsdGVyZWQgPT4gZmlsdGVyZWQudmFsdWUgIT09IHNlbGVjdGVkVmFsdWUudmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEZpbHRlckNoYW5nZWQoKTtcbiAgfVxuXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkVmFsdWVzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBhY2NlcHRzKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaXNwbGF5VmFsdWVzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzKHRoaXMuZmlsdGVyZWRWYWx1ZXMpO1xuICAgIGlmICh0aGlzLmFjY2VwdEVtcHR5VmFsdWUoZGlzcGxheVZhbHVlcywgaXRlbSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZGlzcGxheVZhbHVlcy5pbmNsdWRlcyhpdGVtW3RoaXMucHJvcGVydHldKTtcbiAgfVxuXG4gIHByaXZhdGUgYWNjZXB0RW1wdHlWYWx1ZShkaXNwbGF5VmFsdWVzOiBzdHJpbmdbXSwgaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkaXNwbGF5VmFsdWVzLnNvbWUodmFsdWUgPT4gIXZhbHVlKSAmJiAhaXRlbVt0aGlzLnByb3BlcnR5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydHk6IHRoaXMucHJvcGVydHksXG4gICAgICB2YWx1ZTogdGhpcy5nZXRWYWx1ZXModGhpcy5maWx0ZXJlZFZhbHVlcyksXG4gICAgfTtcbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gW107XG4gICAgdGhpcy5lbWl0RmlsdGVyQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmlsdGVyQ2hhbmdlZCgpIHtcbiAgICB0aGlzLmNsckZpbHRlclZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuZ2V0RGlzcGxheVZhbHVlcyh0aGlzLmZpbHRlcmVkVmFsdWVzKSk7XG4gICAgdGhpcy5jaGFuZ2VzLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnRhaW5zRmlsdGVyVmFsdWUoZW50cmllczogRmlsdGVyVmFsdWVbXSwgZmlsdGVyZWQ6IEZpbHRlclZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGVudHJpZXMuc29tZSh2ID0+IHYudmFsdWUgPT09IGZpbHRlcmVkLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheVZhbHVlcyhlbnRyaWVzOiBGaWx0ZXJWYWx1ZVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBlbnRyaWVzLm1hcChlbnRyeSA9PiAoIWVudHJ5LnZhbHVlID8gZW50cnkudmFsdWUgOiBlbnRyeS5kaXNwbGF5VmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVzKGVudHJpZXM6IEZpbHRlclZhbHVlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IGVudHJ5LnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVmFsdWVzKHZhbHVlczogKHN0cmluZyB8IEZpbHRlclZhbHVlKVtdKTogRmlsdGVyVmFsdWVbXSB7XG4gICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5tYXAodmFsdWUgPT4gdGhpcy5tYXBWYWx1ZSh2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRmlsdGVyVmFsdWUpOiBGaWx0ZXJWYWx1ZSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gIXZhbHVlLnZhbHVlID8geyB2YWx1ZTogJycsIGRpc3BsYXlWYWx1ZTogdGhpcy5lbXB0eVZhbHVlIH0gOiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPyB7IHZhbHVlOiB2YWx1ZSwgZGlzcGxheVZhbHVlOiB2YWx1ZSB9IDogeyB2YWx1ZTogJycsIGRpc3BsYXlWYWx1ZTogdGhpcy5lbXB0eVZhbHVlIH07XG4gIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saW5rIGJ0bi10cmFzaFwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxuICA8Y2RzLWljb24gc2hhcGU9XCJ0cmFzaFwiPjwvY2RzLWljb24+XG48L2J1dHRvbj5cbjxjbHItY2hlY2tib3gtY29udGFpbmVyIGNsYXNzPVwiZmlsdGVyLXNlbGVjdGlvblwiPlxuICA8Y2xyLWNoZWNrYm94LXdyYXBwZXIgKm5nRm9yPVwibGV0IHBvc3NpYmxlVmFsdWUgb2YgcG9zc2libGVWYWx1ZXNcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBjbHJDaGVja2JveFxuICAgICAgdmFsdWU9XCJ7eyBwb3NzaWJsZVZhbHVlLmRpc3BsYXlWYWx1ZSA/PyBwb3NzaWJsZVZhbHVlIH19XCJcbiAgICAgIG5hbWU9XCJwb3NzaWJsZVZhbHVlXCJcbiAgICAgIFtuZ01vZGVsXT1cImNvbnRhaW5zRmlsdGVyVmFsdWUoZmlsdGVyZWRWYWx1ZXMsIHBvc3NpYmxlVmFsdWUpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHBvc3NpYmxlVmFsdWUsICRldmVudClcIlxuICAgIC8+XG4gICAgPGxhYmVsPnt7IHBvc3NpYmxlVmFsdWUuZGlzcGxheVZhbHVlID8/IHBvc3NpYmxlVmFsdWUgfX08L2xhYmVsPlxuICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxuPC9jbHItY2hlY2tib3gtY29udGFpbmVyPlxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { ClarityModule } from '@clr/angular';
|
|
5
|
-
import { ClrEnumFilterComponent } from './enum-filter.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class ClrEnumFilterModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterModule, declarations: [ClrEnumFilterComponent], imports: [ClarityModule, CommonModule, FormsModule], exports: [ClrEnumFilterComponent] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterModule, imports: [ClarityModule, CommonModule, FormsModule] }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrEnumFilterModule, decorators: [{
|
|
13
|
-
type: NgModule,
|
|
14
|
-
args: [{
|
|
15
|
-
imports: [ClarityModule, CommonModule, FormsModule],
|
|
16
|
-
declarations: [ClrEnumFilterComponent],
|
|
17
|
-
exports: [ClrEnumFilterComponent],
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1maWx0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvZGF0YWdyaWQvZW51bS1maWx0ZXIvZW51bS1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU9qRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixpQkFIZixzQkFBc0IsYUFEM0IsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLGFBRXhDLHNCQUFzQjsrR0FFckIsbUJBQW1CLFlBSnBCLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVzs7MkZBSXZDLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDbkQsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbGFyaXR5TW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCB7IENsckVudW1GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2VudW0tZmlsdGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDbGFyaXR5TW9kdWxlLCBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQ2xyRW51bUZpbHRlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtDbHJFbnVtRmlsdGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRW51bUZpbHRlck1vZHVsZSB7fVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './enum-filter.component';
|
|
2
|
-
export * from './enum-filter.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9kYXRhZ3JpZC9lbnVtLWZpbHRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudW0tZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VudW0tZmlsdGVyLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './datagrid-state-persistence';
|
|
2
|
-
export * from './enum-filter';
|
|
3
|
-
export * from './date-filter';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9kYXRhZ3JpZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhZ3JpZC1zdGF0ZS1wZXJzaXN0ZW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW0tZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1maWx0ZXInO1xuIl19
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2019 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, ElementRef, Renderer2, TemplateRef, ViewChild } from '@angular/core';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class ClrDateTimeContainer {
|
|
9
|
-
constructor(renderer, inputEl) {
|
|
10
|
-
this.renderer = renderer;
|
|
11
|
-
this.inputEl = inputEl;
|
|
12
|
-
}
|
|
13
|
-
ngAfterViewInit() {
|
|
14
|
-
// Create the time input
|
|
15
|
-
const timeInputElement = this.timeInput.createEmbeddedView(null).rootNodes[0];
|
|
16
|
-
// Select the clr input wrapper of the date-container
|
|
17
|
-
const inputWrapper = this.inputEl.nativeElement.querySelector('.clr-input-wrapper');
|
|
18
|
-
// Append it as a child
|
|
19
|
-
this.renderer.appendChild(inputWrapper, timeInputElement);
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateTimeContainer, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrDateTimeContainer, selector: "clr-date-time-container", host: { properties: { "class.date-time-container": "true" } }, viewQueries: [{ propertyName: "timeInput", first: true, predicate: ["timeInput"], descendants: true, static: true }], ngImport: i0, template: `
|
|
23
|
-
<ng-content select="clr-date-container"></ng-content>
|
|
24
|
-
|
|
25
|
-
<ng-template #timeInput>
|
|
26
|
-
<div class="clr-input-wrapper">
|
|
27
|
-
<ng-content select="[clrTime]"></ng-content>
|
|
28
|
-
</div>
|
|
29
|
-
</ng-template>
|
|
30
|
-
`, isInline: true }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrDateTimeContainer, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: 'clr-date-time-container',
|
|
36
|
-
template: `
|
|
37
|
-
<ng-content select="clr-date-container"></ng-content>
|
|
38
|
-
|
|
39
|
-
<ng-template #timeInput>
|
|
40
|
-
<div class="clr-input-wrapper">
|
|
41
|
-
<ng-content select="[clrTime]"></ng-content>
|
|
42
|
-
</div>
|
|
43
|
-
</ng-template>
|
|
44
|
-
`,
|
|
45
|
-
host: {
|
|
46
|
-
'[class.date-time-container]': 'true',
|
|
47
|
-
},
|
|
48
|
-
}]
|
|
49
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { timeInput: [{
|
|
50
|
-
type: ViewChild,
|
|
51
|
-
args: ['timeInput', { static: true }]
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2RhdGUtdGltZS1jb250YWluZXIvZGF0ZS10aW1lLWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWlCeEcsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixRQUFtQixFQUFVLE9BQW1CO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUcsQ0FBQztJQUV4RSxlQUFlO1FBQ2Isd0JBQXdCO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUscURBQXFEO1FBQ3JELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BGLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQVpVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9QQWJyQjs7Ozs7Ozs7R0FRVDs7MkZBS1Usb0JBQW9CO2tCQWZoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osNkJBQTZCLEVBQUUsTUFBTTtxQkFDdEM7aUJBQ0Y7dUdBRTJDLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1kYXRlLXRpbWUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItZGF0ZS1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctdGVtcGxhdGUgI3RpbWVJbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjbHItaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2xyVGltZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kYXRlLXRpbWUtY29udGFpbmVyXSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0ZVRpbWVDb250YWluZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndGltZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgdGltZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBpbnB1dEVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgdGhlIHRpbWUgaW5wdXRcbiAgICBjb25zdCB0aW1lSW5wdXRFbGVtZW50ID0gdGhpcy50aW1lSW5wdXQuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpLnJvb3ROb2Rlc1swXTtcbiAgICAvLyBTZWxlY3QgdGhlIGNsciBpbnB1dCB3cmFwcGVyIG9mIHRoZSBkYXRlLWNvbnRhaW5lclxuICAgIGNvbnN0IGlucHV0V3JhcHBlciA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jbHItaW5wdXQtd3JhcHBlcicpO1xuICAgIC8vIEFwcGVuZCBpdCBhcyBhIGNoaWxkXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChpbnB1dFdyYXBwZXIsIHRpbWVJbnB1dEVsZW1lbnQpO1xuICB9XG59XG4iXX0=
|