ecabs-components 1.0.27 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/ecabs-components.mjs +4 -4
- package/esm2022/lib/base/consts/date-mask.consts.mjs +56 -56
- package/esm2022/lib/base/directives/date-mask.directive.mjs +64 -64
- package/esm2022/lib/base/directives/date-mask.directive.module.mjs +21 -21
- package/esm2022/lib/base/directives/digits-only.directive.mjs +129 -129
- package/esm2022/lib/base/directives/digits-only.directive.module.mjs +21 -21
- package/esm2022/lib/base/directives/number-border.directive.mjs +53 -53
- package/esm2022/lib/base/directives/number-border.directive.module.mjs +21 -21
- package/esm2022/lib/base/element-base.mjs +99 -99
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +53 -53
- package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +52 -52
- package/esm2022/lib/base/hint/hint.component.mjs +20 -20
- package/esm2022/lib/base/hint/hint.module.mjs +19 -19
- package/esm2022/lib/base/validation/validation.component.mjs +70 -70
- package/esm2022/lib/base/validation/validation.module.mjs +20 -20
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.mjs +30 -30
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.mjs +19 -19
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +15 -15
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +19 -19
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +62 -62
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +20 -20
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +100 -100
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +35 -35
- package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +16 -16
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +84 -84
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +47 -47
- package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +16 -16
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +203 -179
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +63 -63
- package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +16 -16
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +192 -192
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +64 -64
- package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +44 -44
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +46 -46
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +19 -19
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +43 -43
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +19 -19
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +18 -18
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +18 -18
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +75 -75
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +23 -23
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +77 -77
- package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +22 -22
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +82 -82
- package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +21 -21
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +61 -61
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +38 -38
- package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +23 -23
- package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +18 -18
- package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +15 -15
- package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +29 -29
- package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +18 -18
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +103 -103
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +21 -21
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +50 -50
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +21 -21
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +64 -64
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +31 -31
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +309 -309
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +59 -59
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +16 -16
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +23 -23
- package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +42 -42
- package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +32 -32
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +61 -61
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +19 -19
- package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +136 -136
- package/esm2022/lib/ecabs-timepicker/config.model.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +311 -311
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +19 -19
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +30 -30
- package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +19 -0
- package/esm2022/lib/ecabs-validation/ecabs-validation.module.mjs +19 -0
- package/esm2022/lib/models/bread-crumb.mjs +1 -1
- package/esm2022/lib/models/timepicker.models.mjs +1 -1
- package/esm2022/lib/models/validation.models.mjs +2 -0
- package/esm2022/lib/services/ecabs-components.service.mjs +31 -31
- package/esm2022/public-api.mjs +59 -57
- package/fesm2022/ecabs-components.mjs +3282 -3229
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/base/consts/date-mask.consts.d.ts +7 -7
- package/lib/base/directives/date-mask.directive.d.ts +16 -16
- package/lib/base/directives/date-mask.directive.module.d.ts +8 -8
- package/lib/base/directives/digits-only.directive.d.ts +26 -26
- package/lib/base/directives/digits-only.directive.module.d.ts +8 -8
- package/lib/base/directives/number-border.directive.d.ts +13 -13
- package/lib/base/directives/number-border.directive.module.d.ts +8 -8
- package/lib/base/element-base.d.ts +28 -28
- package/lib/base/element-wrapper/element-wrapper.component.d.ts +19 -19
- package/lib/base/element-wrapper/element-wrapper.module.d.ts +16 -16
- package/lib/base/hint/hint.component.d.ts +8 -8
- package/lib/base/hint/hint.module.d.ts +10 -10
- package/lib/base/validation/validation.component.d.ts +24 -24
- package/lib/base/validation/validation.module.d.ts +10 -10
- package/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.d.ts +14 -14
- package/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.d.ts +10 -10
- package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +7 -7
- package/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.d.ts +10 -10
- package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +20 -20
- package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +11 -11
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +31 -31
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +12 -12
- package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +6 -6
- package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +29 -29
- package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +15 -15
- package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +6 -6
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +55 -51
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +19 -19
- package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +6 -6
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +58 -58
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +20 -20
- package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +15 -15
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +31 -31
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +11 -11
- package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +28 -28
- package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +11 -11
- package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +12 -12
- package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.d.ts +9 -9
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +28 -28
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +14 -14
- package/lib/ecabs-increment/ecabs-increment.component.d.ts +26 -26
- package/lib/ecabs-increment/ecabs-increment.module.d.ts +13 -13
- package/lib/ecabs-input/ecabs-input.component.d.ts +27 -27
- package/lib/ecabs-input/ecabs-input.module.d.ts +12 -12
- package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +20 -20
- package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +12 -12
- package/lib/ecabs-loading/ecabs-loading.component.d.ts +8 -8
- package/lib/ecabs-loading/ecabs-loading.module.d.ts +9 -9
- package/lib/ecabs-loading/spinner/spinner.component.d.ts +6 -6
- package/lib/ecabs-note/ecabs-note.component.d.ts +7 -7
- package/lib/ecabs-note/ecabs-note.module.d.ts +9 -9
- package/lib/ecabs-phone/ecabs-phone.component.d.ts +33 -33
- package/lib/ecabs-phone/ecabs-phone.module.d.ts +12 -12
- package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +19 -19
- package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +12 -12
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +24 -24
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +11 -11
- package/lib/ecabs-select/ecabs-select.component.d.ts +71 -71
- package/lib/ecabs-select/ecabs-select.module.d.ts +15 -15
- package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +8 -8
- package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.d.ts +9 -9
- package/lib/ecabs-table/ecabs-table.component.d.ts +18 -18
- package/lib/ecabs-table/ecabs-table.module.d.ts +12 -12
- package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +20 -20
- package/lib/ecabs-textarea/ecabs-textarea.module.d.ts +10 -10
- package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +40 -40
- package/lib/ecabs-timepicker/config.model.d.ts +5 -5
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +53 -53
- package/lib/ecabs-timepicker/ecabs-timepicker.module.d.ts +10 -10
- package/lib/ecabs-timepicker/ecabs-timepicker.service.d.ts +12 -12
- package/lib/ecabs-validation/ecabs-validation.component.d.ts +10 -0
- package/lib/ecabs-validation/ecabs-validation.module.d.ts +9 -0
- package/lib/models/bread-crumb.d.ts +5 -5
- package/lib/models/timepicker.models.d.ts +6 -6
- package/lib/models/validation.models.d.ts +7 -0
- package/lib/services/ecabs-components.service.d.ts +16 -16
- package/package.json +1 -1
- package/public-api.d.ts +58 -56
|
@@ -1,193 +1,193 @@
|
|
|
1
|
-
import { DecimalPipe } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
|
4
|
-
import ElementBaseComponent from '../base/element-base';
|
|
5
|
-
import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "../base/element-wrapper/element-wrapper.component";
|
|
9
|
-
import * as i3 from "@angular/material/icon";
|
|
10
|
-
import * as i4 from "@angular/material/datepicker";
|
|
11
|
-
import * as i5 from "@angular/material/legacy-button";
|
|
12
|
-
import * as i6 from "@angular/forms";
|
|
13
|
-
import * as i7 from "../base/directives/digits-only.directive";
|
|
14
|
-
import * as i8 from "../base/directives/number-border.directive";
|
|
15
|
-
import * as i9 from "./time-range.directive";
|
|
16
|
-
export class EcabsDateTimeRangePickerComponent extends ElementBaseComponent {
|
|
17
|
-
get value() {
|
|
18
|
-
return this.val;
|
|
19
|
-
}
|
|
20
|
-
get pickerValue() {
|
|
21
|
-
return this._pickerValue;
|
|
22
|
-
}
|
|
23
|
-
get hoursFrom() {
|
|
24
|
-
return this._hoursFrom;
|
|
25
|
-
}
|
|
26
|
-
get minutesFrom() {
|
|
27
|
-
return this._minutesFrom;
|
|
28
|
-
}
|
|
29
|
-
get hoursTo() {
|
|
30
|
-
return this._hoursTo;
|
|
31
|
-
}
|
|
32
|
-
get minutesTo() {
|
|
33
|
-
return this._minutesTo;
|
|
34
|
-
}
|
|
35
|
-
get seconds() {
|
|
36
|
-
return this._seconds;
|
|
37
|
-
}
|
|
38
|
-
set hoursFrom(value) {
|
|
39
|
-
if (value !== undefined && this._hoursFrom !== value) {
|
|
40
|
-
this._hoursFrom = this.roundNumber(+value);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
set minutesFrom(value) {
|
|
44
|
-
if (value !== undefined && this._minutesFrom !== value) {
|
|
45
|
-
this._minutesFrom = this.roundNumber(+value);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
set hoursTo(value) {
|
|
49
|
-
if (value !== undefined && this._hoursTo !== value) {
|
|
50
|
-
this._hoursTo = this.roundNumber(+value);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
set minutesTo(value) {
|
|
54
|
-
if (value !== undefined && this._minutesTo !== value) {
|
|
55
|
-
this._minutesTo = this.roundNumber(+value);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
set seconds(value) {
|
|
59
|
-
if (value !== undefined && this._seconds !== value) {
|
|
60
|
-
this._seconds = this.roundNumber(+value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
set value(val) {
|
|
64
|
-
if (val && this.val !== val) {
|
|
65
|
-
this.val = val;
|
|
66
|
-
this.pickerValue = val;
|
|
67
|
-
this.onChange(val);
|
|
68
|
-
this.onTouch(val);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
set pickerValue(val) {
|
|
72
|
-
if (val) {
|
|
73
|
-
this._pickerValue = val;
|
|
74
|
-
this.value = val;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
constructor(injector, decimalPipe) {
|
|
78
|
-
super();
|
|
79
|
-
this.injector = injector;
|
|
80
|
-
this.decimalPipe = decimalPipe;
|
|
81
|
-
this.touchUi = false;
|
|
82
|
-
this.onblur = new EventEmitter();
|
|
83
|
-
this.cancleLabel = 'Cancel';
|
|
84
|
-
this.applyLabel = 'Apply';
|
|
85
|
-
this.all = 'All';
|
|
86
|
-
this.from = 'From';
|
|
87
|
-
this.to = 'To';
|
|
88
|
-
this._hoursFrom = '12';
|
|
89
|
-
this._minutesFrom = '00';
|
|
90
|
-
this._hoursTo = '12';
|
|
91
|
-
this._minutesTo = '00';
|
|
92
|
-
this._seconds = '00';
|
|
93
|
-
this.header = EcabsDateTimeRangePickerHeaderComponent;
|
|
94
|
-
this.maxValueHours = 23;
|
|
95
|
-
this.maxValueMinutesSeconds = 59;
|
|
96
|
-
this.onChange = () => { };
|
|
97
|
-
this.onTouch = () => { };
|
|
98
|
-
}
|
|
99
|
-
ngAfterViewInit() {
|
|
100
|
-
const ngControl = this.injector.get(NgControl, null);
|
|
101
|
-
if (ngControl) {
|
|
102
|
-
this.control = ngControl.control;
|
|
103
|
-
setTimeout(() => {
|
|
104
|
-
this.controlDate = this.control;
|
|
105
|
-
const controlDate = !!this.control.value ? this.control.value : '';
|
|
106
|
-
if (controlDate) {
|
|
107
|
-
this.setValues(controlDate);
|
|
108
|
-
}
|
|
109
|
-
}, 10);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
writeValue(value) {
|
|
113
|
-
this.value = value;
|
|
114
|
-
}
|
|
115
|
-
registerOnChange(fn) {
|
|
116
|
-
this.onChange = fn;
|
|
117
|
-
}
|
|
118
|
-
registerOnTouched(fn) {
|
|
119
|
-
this.onTouch = fn;
|
|
120
|
-
}
|
|
121
|
-
blurChange(e) {
|
|
122
|
-
this.onblur.emit(e);
|
|
123
|
-
}
|
|
124
|
-
keydownChange(e) {
|
|
125
|
-
if (e?.target.value === this.all) {
|
|
126
|
-
const val = '';
|
|
127
|
-
this.val = val;
|
|
128
|
-
this._pickerValue = val;
|
|
129
|
-
this.onChange(val);
|
|
130
|
-
this.onTouch(val);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
onApply() {
|
|
134
|
-
if (this._minutesFrom && this._hoursFrom && this._minutesTo && this._hoursTo) {
|
|
135
|
-
this.setValues(this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo);
|
|
136
|
-
this.value = this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo;
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
opened() {
|
|
141
|
-
setTimeout(() => {
|
|
142
|
-
const elements = document.getElementsByClassName('mat-calendar-content');
|
|
143
|
-
while (elements.length > 0) {
|
|
144
|
-
elements[0].parentNode.removeChild(elements[0]);
|
|
145
|
-
}
|
|
146
|
-
let cols = Array.from(document.getElementsByClassName('mat-calendar'));
|
|
147
|
-
for (let i = 0; i < cols.length; i++) {
|
|
148
|
-
cols[i].style.height = '50px';
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
roundNumber(num) {
|
|
153
|
-
return this.decimalPipe.transform(num, '2.0-0') ?? '00';
|
|
154
|
-
}
|
|
155
|
-
setValues(date) {
|
|
156
|
-
this._date = date;
|
|
157
|
-
}
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimeRangePickerComponent, selector: "ecabs-date-time-range-picker", inputs: { touchUi: "touchUi", cancleLabel: "cancleLabel", applyLabel: "applyLabel", all: "all", from: "from", to: "to" }, outputs: { onblur: "onblur" }, providers: [
|
|
160
|
-
{
|
|
161
|
-
provide: NG_VALUE_ACCESSOR,
|
|
162
|
-
useExisting: EcabsDateTimeRangePickerComponent,
|
|
163
|
-
multi: true,
|
|
164
|
-
},
|
|
165
|
-
DecimalPipe,
|
|
166
|
-
], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i4.MatDatepickerCancel, selector: "[matDatepickerCancel], [matDateRangePickerCancel]" }, { kind: "directive", type: i4.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i8.NumberBorderDirective, selector: "[appNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i9.TimeRangeDirective, selector: "[appTimeRange]", inputs: ["isDateTimeMask", "considerSeconds", "all"] }] }); }
|
|
167
|
-
}
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
|
|
169
|
-
type: Component,
|
|
170
|
-
args: [{ selector: 'ecabs-date-time-range-picker', providers: [
|
|
171
|
-
{
|
|
172
|
-
provide: NG_VALUE_ACCESSOR,
|
|
173
|
-
useExisting: EcabsDateTimeRangePickerComponent,
|
|
174
|
-
multi: true,
|
|
175
|
-
},
|
|
176
|
-
DecimalPipe,
|
|
177
|
-
], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"] }]
|
|
178
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DecimalPipe }]; }, propDecorators: { touchUi: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], onblur: [{
|
|
181
|
-
type: Output
|
|
182
|
-
}], cancleLabel: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], applyLabel: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], all: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], from: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], to: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}] } });
|
|
1
|
+
import { DecimalPipe } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
|
4
|
+
import ElementBaseComponent from '../base/element-base';
|
|
5
|
+
import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "../base/element-wrapper/element-wrapper.component";
|
|
9
|
+
import * as i3 from "@angular/material/icon";
|
|
10
|
+
import * as i4 from "@angular/material/datepicker";
|
|
11
|
+
import * as i5 from "@angular/material/legacy-button";
|
|
12
|
+
import * as i6 from "@angular/forms";
|
|
13
|
+
import * as i7 from "../base/directives/digits-only.directive";
|
|
14
|
+
import * as i8 from "../base/directives/number-border.directive";
|
|
15
|
+
import * as i9 from "./time-range.directive";
|
|
16
|
+
export class EcabsDateTimeRangePickerComponent extends ElementBaseComponent {
|
|
17
|
+
get value() {
|
|
18
|
+
return this.val;
|
|
19
|
+
}
|
|
20
|
+
get pickerValue() {
|
|
21
|
+
return this._pickerValue;
|
|
22
|
+
}
|
|
23
|
+
get hoursFrom() {
|
|
24
|
+
return this._hoursFrom;
|
|
25
|
+
}
|
|
26
|
+
get minutesFrom() {
|
|
27
|
+
return this._minutesFrom;
|
|
28
|
+
}
|
|
29
|
+
get hoursTo() {
|
|
30
|
+
return this._hoursTo;
|
|
31
|
+
}
|
|
32
|
+
get minutesTo() {
|
|
33
|
+
return this._minutesTo;
|
|
34
|
+
}
|
|
35
|
+
get seconds() {
|
|
36
|
+
return this._seconds;
|
|
37
|
+
}
|
|
38
|
+
set hoursFrom(value) {
|
|
39
|
+
if (value !== undefined && this._hoursFrom !== value) {
|
|
40
|
+
this._hoursFrom = this.roundNumber(+value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
set minutesFrom(value) {
|
|
44
|
+
if (value !== undefined && this._minutesFrom !== value) {
|
|
45
|
+
this._minutesFrom = this.roundNumber(+value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
set hoursTo(value) {
|
|
49
|
+
if (value !== undefined && this._hoursTo !== value) {
|
|
50
|
+
this._hoursTo = this.roundNumber(+value);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
set minutesTo(value) {
|
|
54
|
+
if (value !== undefined && this._minutesTo !== value) {
|
|
55
|
+
this._minutesTo = this.roundNumber(+value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
set seconds(value) {
|
|
59
|
+
if (value !== undefined && this._seconds !== value) {
|
|
60
|
+
this._seconds = this.roundNumber(+value);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
set value(val) {
|
|
64
|
+
if (val && this.val !== val) {
|
|
65
|
+
this.val = val;
|
|
66
|
+
this.pickerValue = val;
|
|
67
|
+
this.onChange(val);
|
|
68
|
+
this.onTouch(val);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
set pickerValue(val) {
|
|
72
|
+
if (val) {
|
|
73
|
+
this._pickerValue = val;
|
|
74
|
+
this.value = val;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
constructor(injector, decimalPipe) {
|
|
78
|
+
super();
|
|
79
|
+
this.injector = injector;
|
|
80
|
+
this.decimalPipe = decimalPipe;
|
|
81
|
+
this.touchUi = false;
|
|
82
|
+
this.onblur = new EventEmitter();
|
|
83
|
+
this.cancleLabel = 'Cancel';
|
|
84
|
+
this.applyLabel = 'Apply';
|
|
85
|
+
this.all = 'All';
|
|
86
|
+
this.from = 'From';
|
|
87
|
+
this.to = 'To';
|
|
88
|
+
this._hoursFrom = '12';
|
|
89
|
+
this._minutesFrom = '00';
|
|
90
|
+
this._hoursTo = '12';
|
|
91
|
+
this._minutesTo = '00';
|
|
92
|
+
this._seconds = '00';
|
|
93
|
+
this.header = EcabsDateTimeRangePickerHeaderComponent;
|
|
94
|
+
this.maxValueHours = 23;
|
|
95
|
+
this.maxValueMinutesSeconds = 59;
|
|
96
|
+
this.onChange = () => { };
|
|
97
|
+
this.onTouch = () => { };
|
|
98
|
+
}
|
|
99
|
+
ngAfterViewInit() {
|
|
100
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
101
|
+
if (ngControl) {
|
|
102
|
+
this.control = ngControl.control;
|
|
103
|
+
setTimeout(() => {
|
|
104
|
+
this.controlDate = this.control;
|
|
105
|
+
const controlDate = !!this.control.value ? this.control.value : '';
|
|
106
|
+
if (controlDate) {
|
|
107
|
+
this.setValues(controlDate);
|
|
108
|
+
}
|
|
109
|
+
}, 10);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
writeValue(value) {
|
|
113
|
+
this.value = value;
|
|
114
|
+
}
|
|
115
|
+
registerOnChange(fn) {
|
|
116
|
+
this.onChange = fn;
|
|
117
|
+
}
|
|
118
|
+
registerOnTouched(fn) {
|
|
119
|
+
this.onTouch = fn;
|
|
120
|
+
}
|
|
121
|
+
blurChange(e) {
|
|
122
|
+
this.onblur.emit(e);
|
|
123
|
+
}
|
|
124
|
+
keydownChange(e) {
|
|
125
|
+
if (e?.target.value === this.all) {
|
|
126
|
+
const val = '';
|
|
127
|
+
this.val = val;
|
|
128
|
+
this._pickerValue = val;
|
|
129
|
+
this.onChange(val);
|
|
130
|
+
this.onTouch(val);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
onApply() {
|
|
134
|
+
if (this._minutesFrom && this._hoursFrom && this._minutesTo && this._hoursTo) {
|
|
135
|
+
this.setValues(this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo);
|
|
136
|
+
this.value = this._hoursFrom + ':' + this._minutesFrom + ' - ' + this._hoursTo + ':' + this._minutesTo;
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
opened() {
|
|
141
|
+
setTimeout(() => {
|
|
142
|
+
const elements = document.getElementsByClassName('mat-calendar-content');
|
|
143
|
+
while (elements.length > 0) {
|
|
144
|
+
elements[0].parentNode.removeChild(elements[0]);
|
|
145
|
+
}
|
|
146
|
+
let cols = Array.from(document.getElementsByClassName('mat-calendar'));
|
|
147
|
+
for (let i = 0; i < cols.length; i++) {
|
|
148
|
+
cols[i].style.height = '50px';
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
roundNumber(num) {
|
|
153
|
+
return this.decimalPipe.transform(num, '2.0-0') ?? '00';
|
|
154
|
+
}
|
|
155
|
+
setValues(date) {
|
|
156
|
+
this._date = date;
|
|
157
|
+
}
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateTimeRangePickerComponent, selector: "ecabs-date-time-range-picker", inputs: { touchUi: "touchUi", cancleLabel: "cancleLabel", applyLabel: "applyLabel", all: "all", from: "from", to: "to" }, outputs: { onblur: "onblur" }, providers: [
|
|
160
|
+
{
|
|
161
|
+
provide: NG_VALUE_ACCESSOR,
|
|
162
|
+
useExisting: EcabsDateTimeRangePickerComponent,
|
|
163
|
+
multi: true,
|
|
164
|
+
},
|
|
165
|
+
DecimalPipe,
|
|
166
|
+
], usesInheritance: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i2.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i4.MatDatepickerCancel, selector: "[matDatepickerCancel], [matDateRangePickerCancel]" }, { kind: "directive", type: i4.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i8.NumberBorderDirective, selector: "[appNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i9.TimeRangeDirective, selector: "[appTimeRange]", inputs: ["isDateTimeMask", "considerSeconds", "all"] }] }); }
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'ecabs-date-time-range-picker', providers: [
|
|
171
|
+
{
|
|
172
|
+
provide: NG_VALUE_ACCESSOR,
|
|
173
|
+
useExisting: EcabsDateTimeRangePickerComponent,
|
|
174
|
+
multi: true,
|
|
175
|
+
},
|
|
176
|
+
DecimalPipe,
|
|
177
|
+
], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n appDigitsOnly\r\n appNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-picker-actions\">\r\n <button\r\n type=\"button\"\r\n mat-stroked-button\r\n class=\"w-full cancel-button\"\r\n color=\"primary\"\r\n matDatepickerCancel\r\n >\r\n {{ cancleLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"w-full ml-0 apply-button\"\r\n color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"onApply()\"\r\n >\r\n {{ applyLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n appTimeRange\r\n [all]=\"all\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"datepicker-toggle\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.datepicker-toggle{transform:translate(-1.75rem)}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.date-input{margin:0rem -.25rem 0rem .125rem}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"] }]
|
|
178
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DecimalPipe }]; }, propDecorators: { touchUi: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], onblur: [{
|
|
181
|
+
type: Output
|
|
182
|
+
}], cancleLabel: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], applyLabel: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], all: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], from: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], to: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}] } });
|
|
193
193
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sb0JBQW9CLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7Ozs7Ozs7Ozs7O0FBZXpKLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLG9CQUFvQjtJQTRCNUIsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIERlY2ltYWxQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnRcclxuICBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgdG91Y2hVaSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25ibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICBASW5wdXQoKSBjYW5jbGVMYWJlbCA9ICdDYW5jZWwnO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWwgPSAnQXBwbHknO1xyXG4gIEBJbnB1dCgpIGFsbCA9ICdBbGwnO1xyXG4gIEBJbnB1dCgpIGZyb20gPSAnRnJvbSc7XHJcbiAgQElucHV0KCkgdG8gPSAnVG8nO1xyXG5cclxuICBcclxuXHJcbiAgX2hvdXJzRnJvbSA9ICcxMic7XHJcbiAgX21pbnV0ZXNGcm9tID0gJzAwJztcclxuICBfaG91cnNUbyA9ICcxMic7XHJcbiAgX21pbnV0ZXNUbyA9ICcwMCc7XHJcbiAgX3NlY29uZHMgPSAnMDAnO1xyXG4gIF9kYXRlOiBzdHJpbmc7XHJcbiAgX3BpY2tlclZhbHVlOiBzdHJpbmc7XHJcbiAgdmFsOiBzdHJpbmc7XHJcbiAgaGVhZGVyID0gRWNhYnNEYXRlVGltZVJhbmdlUGlja2VySGVhZGVyQ29tcG9uZW50O1xyXG4gIG1heFZhbHVlSG91cnMgPSAyMztcclxuICBtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzID0gNTk7XHJcbiAgY29udHJvbERhdGU6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcGlja2VyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9waWNrZXJWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBob3Vyc0Zyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ob3Vyc0Zyb207XHJcbiAgfVxyXG5cclxuICBnZXQgbWludXRlc0Zyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGVzRnJvbTtcclxuICB9XHJcblxyXG4gIGdldCBob3Vyc1RvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faG91cnNUbztcclxuICB9XHJcblxyXG4gIGdldCBtaW51dGVzVG8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGVzVG87XHJcbiAgfVxyXG5cclxuICBnZXQgc2Vjb25kcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZHM7XHJcbiAgfVxyXG5cclxuICBzZXQgaG91cnNGcm9tKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2hvdXJzRnJvbSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5faG91cnNGcm9tID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IG1pbnV0ZXNGcm9tKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX21pbnV0ZXNGcm9tICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9taW51dGVzRnJvbSA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBob3Vyc1RvKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2hvdXJzVG8gIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2hvdXJzVG8gPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgbWludXRlc1RvKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX21pbnV0ZXNUbyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fbWludXRlc1RvID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHNlY29uZHModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fc2Vjb25kcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh2YWwgJiYgdGhpcy52YWwgIT09IHZhbCkge1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBwaWNrZXJWYWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sRGF0ZSA9IHRoaXMuY29udHJvbDtcclxuICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9ICEhdGhpcy5jb250cm9sLnZhbHVlID8gdGhpcy5jb250cm9sLnZhbHVlIDogJyc7XHJcblxyXG4gICAgICAgIGlmIChjb250cm9sRGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoY29udHJvbERhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIGJsdXJDaGFuZ2UoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAga2V5ZG93bkNoYW5nZShlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlPy50YXJnZXQudmFsdWUgPT09IHRoaXMuYWxsKSB7XHJcbiAgICAgIGNvbnN0IHZhbCA9ICcnO1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX21pbnV0ZXNGcm9tICYmIHRoaXMuX2hvdXJzRnJvbSAmJiB0aGlzLl9taW51dGVzVG8gJiYgdGhpcy5faG91cnNUbykge1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyh0aGlzLl9ob3Vyc0Zyb20gKyAnOicgKyB0aGlzLl9taW51dGVzRnJvbSArICcgLSAnICsgdGhpcy5faG91cnNUbyArICc6JyArIHRoaXMuX21pbnV0ZXNUbyk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl9ob3Vyc0Zyb20gKyAnOicgKyB0aGlzLl9taW51dGVzRnJvbSArICcgLSAnICsgdGhpcy5faG91cnNUbyArICc6JyArIHRoaXMuX21pbnV0ZXNUbztcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5lZCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ21hdC1jYWxlbmRhci1jb250ZW50Jyk7XHJcbiAgICAgIHdoaWxlIChlbGVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZWxlbWVudHNbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50c1swXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBjb2xzID0gQXJyYXkuZnJvbShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2FsZW5kYXInKSBhcyBIVE1MQ29sbGVjdGlvbk9mPEhUTUxFbGVtZW50Pik7XHJcbiAgICAgIGZvcihsZXQgaT0wOyBpPGNvbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb2xzW2ldLnN0eWxlLmhlaWdodCA9ICc1MHB4JztcclxuICAgICAgfSAgICAgIFxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZE51bWJlcihudW06IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKG51bSwgJzIuMC0wJykgPz8gJzAwJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzKGRhdGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGF0ZSA9IGRhdGU7XHJcbiAgfVxyXG59IiwiPGFwcC1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZmFrZS1pbnB1dFwiXHJcbiAgICAgIFtpZF09XCJfZGF0ZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiX2RhdGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgY29udHJvbERhdGU/LmRpc2FibGVkXCJcclxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXJcclxuICAgICAgKG9wZW5lZCk9XCJvcGVuZWQoKVwiXHJcbiAgICAgICNwaWNrZXJcclxuICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImhlYWRlclwiXHJcbiAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgZ2FwLXktNFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgZnJvbSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgZm9ybS1maWVsZF9faW5wdXQgdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcERpZ2l0c09ubHlcclxuICAgICAgICAgICAgICAgICAgYXBwTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwiaG91cnNGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhvdXJzRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwibWludXRlc0Zyb21cIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICBhcHBOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS0taW5wdXRzXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7IHRvIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICBhcHBOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJob3Vyc1RvXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhvdXJzVG9cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWRdPVwibWludXRlc1RvXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzVG9cIlxyXG4gICAgICAgICAgICAgICAgICBhcHBEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgICAgIGFwcE51bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlTWludXRlc1NlY29uZHNcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXBpY2tlci1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBjYW5jZWwtYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIG1hdERhdGVwaWNrZXJDYW5jZWxcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGNhbmNsZUxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBtbC0wIGFwcGx5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBtYXREYXRlcGlja2VyQXBwbHlcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BcHBseSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGFwcGx5TGFiZWwgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbCBkYXRlLWlucHV0XCJcclxuICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInBpY2tlclZhbHVlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGNvbnRyb2xEYXRlPy5kaXNhYmxlZFwiXHJcbiAgICAgIGFwcFRpbWVSYW5nZVxyXG4gICAgICBbYWxsXT1cImFsbFwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAgIChibHVyKT1cImJsdXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXl1cCk9XCJibHVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoa2V5ZG93bik9XCJrZXlkb3duQ2hhbmdlKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGF0ZXBpY2tlci10b2dnbGVcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiPlxyXG4gICAgICA8bWF0LWljb24+YWNjZXNzX3RpbWU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvYXBwLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import { MaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';
|
|
7
|
-
import { DigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';
|
|
8
|
-
import { NumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';
|
|
9
|
-
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
10
|
-
import { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';
|
|
11
|
-
import { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';
|
|
12
|
-
import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
|
|
13
|
-
import { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';
|
|
14
|
-
import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
|
|
15
|
-
import { TimeRangeDirective } from './time-range.directive';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
export class EcabsDatetimeRangePickerModule {
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective], imports: [CommonModule,
|
|
20
|
-
ElementWrapperModule,
|
|
21
|
-
MatIconModule,
|
|
22
|
-
MatDatepickerModule,
|
|
23
|
-
MatButtonModule,
|
|
24
|
-
FormsModule,
|
|
25
|
-
ReactiveFormsModule,
|
|
26
|
-
EcabsPickerHeaderModule,
|
|
27
|
-
EcabsButtonsModule,
|
|
28
|
-
DigitsOnlyDirectivesModule,
|
|
29
|
-
NumberBorderDirectiveModule,
|
|
30
|
-
MaskDateDirectiveModule], exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective] }); }
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, imports: [CommonModule,
|
|
32
|
-
ElementWrapperModule,
|
|
33
|
-
MatIconModule,
|
|
34
|
-
MatDatepickerModule,
|
|
35
|
-
MatButtonModule,
|
|
36
|
-
FormsModule,
|
|
37
|
-
ReactiveFormsModule,
|
|
38
|
-
EcabsPickerHeaderModule,
|
|
39
|
-
EcabsButtonsModule,
|
|
40
|
-
DigitsOnlyDirectivesModule,
|
|
41
|
-
NumberBorderDirectiveModule,
|
|
42
|
-
MaskDateDirectiveModule] }); }
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, decorators: [{
|
|
45
|
-
type: NgModule,
|
|
46
|
-
args: [{
|
|
47
|
-
declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
|
|
48
|
-
imports: [
|
|
49
|
-
CommonModule,
|
|
50
|
-
ElementWrapperModule,
|
|
51
|
-
MatIconModule,
|
|
52
|
-
MatDatepickerModule,
|
|
53
|
-
MatButtonModule,
|
|
54
|
-
FormsModule,
|
|
55
|
-
ReactiveFormsModule,
|
|
56
|
-
EcabsPickerHeaderModule,
|
|
57
|
-
EcabsButtonsModule,
|
|
58
|
-
DigitsOnlyDirectivesModule,
|
|
59
|
-
NumberBorderDirectiveModule,
|
|
60
|
-
MaskDateDirectiveModule
|
|
61
|
-
],
|
|
62
|
-
exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
|
|
63
|
-
}]
|
|
64
|
-
}] });
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { MaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';
|
|
7
|
+
import { DigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';
|
|
8
|
+
import { NumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';
|
|
9
|
+
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
10
|
+
import { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';
|
|
11
|
+
import { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';
|
|
12
|
+
import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
|
|
13
|
+
import { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';
|
|
14
|
+
import { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
|
|
15
|
+
import { TimeRangeDirective } from './time-range.directive';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
export class EcabsDatetimeRangePickerModule {
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective], imports: [CommonModule,
|
|
20
|
+
ElementWrapperModule,
|
|
21
|
+
MatIconModule,
|
|
22
|
+
MatDatepickerModule,
|
|
23
|
+
MatButtonModule,
|
|
24
|
+
FormsModule,
|
|
25
|
+
ReactiveFormsModule,
|
|
26
|
+
EcabsPickerHeaderModule,
|
|
27
|
+
EcabsButtonsModule,
|
|
28
|
+
DigitsOnlyDirectivesModule,
|
|
29
|
+
NumberBorderDirectiveModule,
|
|
30
|
+
MaskDateDirectiveModule], exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective] }); }
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, imports: [CommonModule,
|
|
32
|
+
ElementWrapperModule,
|
|
33
|
+
MatIconModule,
|
|
34
|
+
MatDatepickerModule,
|
|
35
|
+
MatButtonModule,
|
|
36
|
+
FormsModule,
|
|
37
|
+
ReactiveFormsModule,
|
|
38
|
+
EcabsPickerHeaderModule,
|
|
39
|
+
EcabsButtonsModule,
|
|
40
|
+
DigitsOnlyDirectivesModule,
|
|
41
|
+
NumberBorderDirectiveModule,
|
|
42
|
+
MaskDateDirectiveModule] }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatetimeRangePickerModule, decorators: [{
|
|
45
|
+
type: NgModule,
|
|
46
|
+
args: [{
|
|
47
|
+
declarations: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
|
|
48
|
+
imports: [
|
|
49
|
+
CommonModule,
|
|
50
|
+
ElementWrapperModule,
|
|
51
|
+
MatIconModule,
|
|
52
|
+
MatDatepickerModule,
|
|
53
|
+
MatButtonModule,
|
|
54
|
+
FormsModule,
|
|
55
|
+
ReactiveFormsModule,
|
|
56
|
+
EcabsPickerHeaderModule,
|
|
57
|
+
EcabsButtonsModule,
|
|
58
|
+
DigitsOnlyDirectivesModule,
|
|
59
|
+
NumberBorderDirectiveModule,
|
|
60
|
+
MaskDateDirectiveModule
|
|
61
|
+
],
|
|
62
|
+
exports: [EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, TimeRangeDirective],
|
|
63
|
+
}]
|
|
64
|
+
}] });
|
|
65
65
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxlQUFlLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRixPQUFPLEVBQ0wsdUNBQXVDLEVBQ3hDLE1BQU0sZ0dBQWdHLENBQUM7QUFDeEcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBcUIxRCxNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixpQkFqQjFCLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQixhQUUzRyxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLHVCQUF1QixhQUVmLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQjtnSEFFN0YsOEJBQThCLFlBZnZDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IsdUJBQXVCOzs0RkFJZCw4QkFBOEI7a0JBbEIxQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlDQUFpQyxFQUFFLHVDQUF1QyxFQUFFLGtCQUFrQixDQUFDO29CQUM5RyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUNBQWlDLEVBQUUsdUNBQXVDLEVBQUUsa0JBQWtCLENBQUM7aUJBQzFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7TWFza0RhdGVEaXJlY3RpdmVNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9kYXRlLW1hc2suZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7RGlnaXRzT25seURpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUubW9kdWxlJztcclxuaW1wb3J0IHtOdW1iZXJCb3JkZXJEaXJlY3RpdmVNb2R1bGV9IGZyb20gJy4uL2Jhc2UvZGlyZWN0aXZlcy9udW1iZXItYm9yZGVyLmRpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQge0VsZW1lbnRXcmFwcGVyTW9kdWxlfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHtFY2Fic0J1dHRvbnNNb2R1bGV9IGZyb20gJy4uL2VjYWJzLWJ1dHRvbnMvZWNhYnMtYnV0dG9ucy5tb2R1bGUnO1xyXG5pbXBvcnQge0VjYWJzUGlja2VySGVhZGVyTW9kdWxlfSBmcm9tICcuLi9lY2Ficy1waWNrZXItaGVhZGVyL2VjYWJzLXBpY2tlci1oZWFkZXIubW9kdWxlJztcclxuaW1wb3J0IHtNYXRMZWdhY3lCdXR0b25Nb2R1bGUgYXMgTWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYnV0dG9uJztcclxuaW1wb3J0IHtFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEVjYWJzRGF0ZVRpbWVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLWhlYWRlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RpbWVSYW5nZURpcmVjdGl2ZX0gZnJvbSAnLi90aW1lLXJhbmdlLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQsIEVjYWJzRGF0ZVRpbWVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudCwgVGltZVJhbmdlRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFbGVtZW50V3JhcHBlck1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRWNhYnNQaWNrZXJIZWFkZXJNb2R1bGUsXHJcbiAgICBFY2Fic0J1dHRvbnNNb2R1bGUsXHJcbiAgICBEaWdpdHNPbmx5RGlyZWN0aXZlc01vZHVsZSxcclxuICAgIE51bWJlckJvcmRlckRpcmVjdGl2ZU1vZHVsZSxcclxuICAgIE1hc2tEYXRlRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbRWNhYnNEYXRlVGltZVJhbmdlUGlja2VyQ29tcG9uZW50LCBFY2Fic0RhdGVUaW1lUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnQsIFRpbWVSYW5nZURpcmVjdGl2ZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGV0aW1lUmFuZ2VQaWNrZXJNb2R1bGUge1xyXG59XHJcbiJdfQ==
|