ecabs-components 0.0.43 → 0.0.45
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/{esm2020 → esm2022}/lib/base/directives/date-mask.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/directives/date-mask.directive.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/base/directives/digits-only.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/directives/digits-only.directive.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/base/directives/number-border.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/directives/number-border.directive.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/base/element-base.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/element-wrapper/element-wrapper.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/element-wrapper/element-wrapper.module.mjs +21 -21
- package/{esm2020 → esm2022}/lib/base/hint/hint.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/hint/hint.module.mjs +5 -5
- package/esm2022/lib/base/validation/validation.component.mjs +70 -0
- package/{esm2020 → esm2022}/lib/base/validation/validation.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-buttons/ecabs-buttons.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-buttons/ecabs-buttons.module.mjs +5 -5
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +85 -0
- package/{esm2020 → esm2022}/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +4 -4
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +85 -0
- package/{esm2020 → esm2022}/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +4 -4
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +179 -0
- package/{esm2020 → esm2022}/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +4 -4
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +193 -0
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +65 -0
- package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +45 -0
- package/{esm2020 → esm2022}/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +5 -5
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +78 -0
- package/{esm2020 → esm2022}/lib/ecabs-increment/ecabs-increment.module.mjs +5 -5
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +85 -0
- package/{esm2020 → esm2022}/lib/ecabs-input/ecabs-input.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/ecabs-loading/ecabs-loading.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-loading/ecabs-loading.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-loading/spinner/spinner.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-note/ecabs-note.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-note/ecabs-note.module.mjs +5 -5
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +104 -0
- package/{esm2020 → esm2022}/lib/ecabs-phone/ecabs-phone.module.mjs +5 -5
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +50 -0
- package/{esm2020 → esm2022}/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +5 -5
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +11 -11
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +222 -0
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
- package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +7 -7
- package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/ecabs-table/ecabs-table.module.mjs +11 -11
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/ecabs-textarea/ecabs-textarea.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +4 -4
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +312 -0
- package/{esm2020 → esm2022}/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/ecabs-components.service.mjs +4 -4
- package/esm2022/public-api.mjs +55 -0
- package/fesm2022/ecabs-components.mjs +3227 -0
- package/fesm2022/ecabs-components.mjs.map +1 -0
- package/lib/base/directives/date-mask.directive.d.ts +1 -1
- package/lib/base/directives/digits-only.directive.d.ts +1 -1
- package/lib/base/directives/number-border.directive.d.ts +1 -1
- package/lib/base/element-base.d.ts +1 -1
- package/lib/base/element-wrapper/element-wrapper.component.d.ts +1 -1
- package/lib/base/hint/hint.component.d.ts +1 -1
- package/lib/base/validation/validation.component.d.ts +1 -1
- package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +1 -1
- package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +1 -1
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +1 -1
- package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +1 -1
- package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +1 -1
- package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +1 -1
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +1 -1
- package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +1 -1
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +1 -1
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +13 -12
- package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +15 -0
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +1 -1
- package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +1 -1
- package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +1 -1
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +1 -1
- package/lib/ecabs-increment/ecabs-increment.component.d.ts +1 -1
- package/lib/ecabs-input/ecabs-input.component.d.ts +2 -1
- package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +1 -1
- package/lib/ecabs-loading/ecabs-loading.component.d.ts +1 -1
- package/lib/ecabs-loading/spinner/spinner.component.d.ts +1 -1
- package/lib/ecabs-note/ecabs-note.component.d.ts +1 -1
- package/lib/ecabs-phone/ecabs-phone.component.d.ts +1 -1
- package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +1 -1
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +1 -1
- package/lib/ecabs-select/ecabs-select.component.d.ts +1 -1
- package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +1 -1
- package/lib/ecabs-table/ecabs-table.component.d.ts +1 -1
- package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +1 -1
- package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +1 -1
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +1 -1
- package/lib/models/timepicker.models.d.ts +1 -1
- package/package.json +5 -11
- package/public-api.d.ts +1 -0
- package/esm2020/lib/base/validation/validation.component.mjs +0 -70
- package/esm2020/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +0 -85
- package/esm2020/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +0 -85
- package/esm2020/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +0 -179
- package/esm2020/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +0 -192
- package/esm2020/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +0 -64
- package/esm2020/lib/ecabs-increment/ecabs-increment.component.mjs +0 -78
- package/esm2020/lib/ecabs-input/ecabs-input.component.mjs +0 -83
- package/esm2020/lib/ecabs-phone/ecabs-phone.component.mjs +0 -104
- package/esm2020/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +0 -50
- package/esm2020/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +0 -65
- package/esm2020/lib/ecabs-select/ecabs-select.component.mjs +0 -222
- package/esm2020/lib/ecabs-select/ecabs-select.module.mjs +0 -60
- package/esm2020/lib/ecabs-textarea/ecabs-textarea.component.mjs +0 -62
- package/esm2020/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +0 -312
- package/esm2020/public-api.mjs +0 -54
- package/fesm2015/ecabs-components.mjs +0 -3199
- package/fesm2015/ecabs-components.mjs.map +0 -1
- package/fesm2020/ecabs-components.mjs +0 -3183
- package/fesm2020/ecabs-components.mjs.map +0 -1
- /package/{esm2020 → esm2022}/ecabs-components.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/base/consts/date-mask.consts.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ecabs-timepicker/config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/bread-crumb.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/timepicker.models.mjs +0 -0
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, HostListener } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
|
3
|
-
import ElementBaseComponent from '../base/element-base';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./ecabs-timepicker.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "../base/element-wrapper/element-wrapper.component";
|
|
8
|
-
import * as i4 from "./componets/ecabs-time-list-panel/ecabs-time-list-panel.component";
|
|
9
|
-
export class EcabsTimepickerComponent extends ElementBaseComponent {
|
|
10
|
-
constructor(elementRef, timepickerService, injector) {
|
|
11
|
-
super();
|
|
12
|
-
this.elementRef = elementRef;
|
|
13
|
-
this.timepickerService = timepickerService;
|
|
14
|
-
this.injector = injector;
|
|
15
|
-
this.showCloseIcon = true;
|
|
16
|
-
this.focusedFlag = false;
|
|
17
|
-
this.listPlacement = 'auto';
|
|
18
|
-
this.showDayStart = true;
|
|
19
|
-
this.showDayEnd = false;
|
|
20
|
-
this.addSecond = true;
|
|
21
|
-
this.position = {};
|
|
22
|
-
this._data = '';
|
|
23
|
-
this.listPosition = {};
|
|
24
|
-
//eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-empty-function
|
|
25
|
-
this.onChangeFn = (_) => { };
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
27
|
-
this.onTouchedFn = () => { };
|
|
28
|
-
this.placeholder = '00:00';
|
|
29
|
-
this._timePicker = this.elementRef.nativeElement;
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
this._input = this._timePicker.querySelector('input');
|
|
32
|
-
});
|
|
33
|
-
if (!this.iconClass) {
|
|
34
|
-
this.iconClass = this.timepickerService.getConfig().iconClass;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
get data() {
|
|
38
|
-
return this._data;
|
|
39
|
-
}
|
|
40
|
-
set data(value) {
|
|
41
|
-
this._data = value;
|
|
42
|
-
if (this._data.length === 5) {
|
|
43
|
-
if (this._data === '23:59') {
|
|
44
|
-
this.onChangeFn(this._data + (this.addSecond ? ':59' : ''));
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.onChangeFn(this._data + (this.addSecond ? ':00' : ''));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else if (this._data === '') {
|
|
51
|
-
this.onChangeFn(this._data);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
handleMousedown($event) {
|
|
55
|
-
const target = $event.target;
|
|
56
|
-
if (target.closest('.form-time-list') ||
|
|
57
|
-
target.closest('.timeInputWrapper') === this._timePicker.querySelector('.timeInputWrapper')) {
|
|
58
|
-
this._timePicker.querySelector('.timeInputWrapper').focus();
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (this.focusedFlag) {
|
|
62
|
-
this.close();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
ngAfterViewInit() {
|
|
66
|
-
const ngControl = this.injector.get(NgControl, null);
|
|
67
|
-
if (ngControl) {
|
|
68
|
-
this.control = ngControl.control;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
clearInput() {
|
|
72
|
-
this.data = '';
|
|
73
|
-
}
|
|
74
|
-
calcListPosition() {
|
|
75
|
-
const position = this._timePicker.querySelector('.timeInputFieldWrapper').getBoundingClientRect();
|
|
76
|
-
if (this.appendTo) {
|
|
77
|
-
this.listPosition = {
|
|
78
|
-
left: position.x,
|
|
79
|
-
top: position.top + position.height,
|
|
80
|
-
width: position.width,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
this.listPosition = {
|
|
85
|
-
left: 0,
|
|
86
|
-
top: position.height,
|
|
87
|
-
width: position.width,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
inputKeyDown(event) {
|
|
92
|
-
this.caretPositionStart = event.target.selectionStart;
|
|
93
|
-
this.caretPositionEnd = event.target.selectionEnd;
|
|
94
|
-
const key = event.key;
|
|
95
|
-
this.setCaretPosition(this._input);
|
|
96
|
-
switch (this.checkSpecialKeys(key, this.caretPositionStart, this.caretPositionEnd)) {
|
|
97
|
-
case 'stop':
|
|
98
|
-
return false;
|
|
99
|
-
case 'tab':
|
|
100
|
-
this.close();
|
|
101
|
-
return false;
|
|
102
|
-
case 'arrow':
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
if (this.checkUnUsedKeys(key)) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
const newData = this.data.slice(0, this.caretPositionStart) + key + this.data.slice(this.caretPositionStart, this.data.length);
|
|
109
|
-
if (this.checkOutOfRangeNumber(newData)) {
|
|
110
|
-
this.data = newData;
|
|
111
|
-
this.caretPositionStart++;
|
|
112
|
-
}
|
|
113
|
-
if (this.caretPositionStart === this.data.length &&
|
|
114
|
-
(this.data.length === 2 || (this.data.length === 1 && parseInt(this.data) > 2))) {
|
|
115
|
-
this.makeHourFull();
|
|
116
|
-
this.data += ':';
|
|
117
|
-
this.caretPositionStart++;
|
|
118
|
-
}
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
checkSpecialKeys(key, selectionStart, selectionEnd) {
|
|
122
|
-
if (selectionStart !== selectionEnd && key !== 'ArrowLeft' && key !== 'ArrowRight') {
|
|
123
|
-
if (!(this.data.slice(selectionStart, selectionEnd).includes(':') && selectionEnd !== this.data.length)) {
|
|
124
|
-
this.data = this.data.slice(0, selectionStart) + this.data.slice(selectionEnd, this.data.length);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (selectionStart === selectionEnd && key === 'Backspace') {
|
|
128
|
-
if (this.data.length > 0) {
|
|
129
|
-
if (this.data[selectionStart - 1] !== ':' ||
|
|
130
|
-
(this.data[selectionStart - 1] === ':' && selectionStart === this.data.length)) {
|
|
131
|
-
this.data = this.data.slice(0, selectionStart - 1) + this.data.slice(selectionEnd, this.data.length);
|
|
132
|
-
this.caretPositionStart--;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return 'stop';
|
|
136
|
-
}
|
|
137
|
-
if (key === 'Tab' || key === ' ' || key === ':') {
|
|
138
|
-
if (!this.data.includes(':') && this.data.length > 0) {
|
|
139
|
-
this.makeHourFull();
|
|
140
|
-
this.data += ':';
|
|
141
|
-
this.caretPositionStart++;
|
|
142
|
-
return 'stop';
|
|
143
|
-
}
|
|
144
|
-
if (key === 'Tab') {
|
|
145
|
-
return 'tab';
|
|
146
|
-
}
|
|
147
|
-
return 'stop';
|
|
148
|
-
}
|
|
149
|
-
if (key === 'ArrowRight') {
|
|
150
|
-
if (this.caretPositionStart < this.data.length) {
|
|
151
|
-
this.caretPositionStart++;
|
|
152
|
-
}
|
|
153
|
-
return 'arrow';
|
|
154
|
-
}
|
|
155
|
-
if (key === 'ArrowLeft') {
|
|
156
|
-
if (this.caretPositionStart > 0) {
|
|
157
|
-
this.caretPositionStart--;
|
|
158
|
-
}
|
|
159
|
-
return 'arrow';
|
|
160
|
-
}
|
|
161
|
-
if (key === 'ArrowDown' && !this.focusedFlag) {
|
|
162
|
-
this.show();
|
|
163
|
-
}
|
|
164
|
-
return 'continue';
|
|
165
|
-
}
|
|
166
|
-
checkUnUsedKeys(key) {
|
|
167
|
-
const r = new RegExp('[0-9]');
|
|
168
|
-
return !r.test(key);
|
|
169
|
-
}
|
|
170
|
-
setCaretPosition(elem) {
|
|
171
|
-
setTimeout(() => {
|
|
172
|
-
if (elem !== null) {
|
|
173
|
-
if (elem.createTextRange) {
|
|
174
|
-
const range = elem.createTextRange();
|
|
175
|
-
range.move('character', this.caretPositionStart);
|
|
176
|
-
range.select();
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
if (elem.selectionStart) {
|
|
180
|
-
elem.focus();
|
|
181
|
-
elem.setSelectionRange(this.caretPositionStart, this.caretPositionStart);
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
elem.focus();
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
checkOutOfRangeNumber(time) {
|
|
191
|
-
const hour = parseInt(time.split(':')[0], 10);
|
|
192
|
-
let minute = -1;
|
|
193
|
-
if (time.split(':').length > 1) {
|
|
194
|
-
minute = parseInt(time.split(':')[1], 10);
|
|
195
|
-
}
|
|
196
|
-
if (hour < 24 && time.split(':')[0].length < 3 && minute < 60) {
|
|
197
|
-
if (time.split(':').length > 1 && time.split(':')[1].length > 2) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
makeHourFull() {
|
|
205
|
-
const hourPart = this.data.split(':')[0];
|
|
206
|
-
const minutePart = this.data.split(':').length > 1 ? this.data.split(':')[1] : '';
|
|
207
|
-
if (hourPart.length === 1) {
|
|
208
|
-
this.data = '0' + hourPart + (minutePart ? ':' + minutePart : minutePart);
|
|
209
|
-
this.caretPositionStart++;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
makeMinuteFull() {
|
|
213
|
-
const hourPart = this.data.split(':')[0];
|
|
214
|
-
const minutePart = this.data.split(':').length > 1 ? this.data.split(':')[1] : '';
|
|
215
|
-
if (minutePart.length === 0) {
|
|
216
|
-
this.data = hourPart + ':00';
|
|
217
|
-
this.caretPositionStart += 2;
|
|
218
|
-
}
|
|
219
|
-
if (minutePart.length === 1) {
|
|
220
|
-
this.data = hourPart + ':' + minutePart + '0';
|
|
221
|
-
this.caretPositionStart++;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
fixTimeToNearest() {
|
|
225
|
-
if (this.data.length > 0) {
|
|
226
|
-
this.makeHourFull();
|
|
227
|
-
this.makeMinuteFull();
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
registerOnChange(fn) {
|
|
231
|
-
this.onChangeFn = fn;
|
|
232
|
-
}
|
|
233
|
-
registerOnTouched(fn) {
|
|
234
|
-
this.onTouchedFn = fn;
|
|
235
|
-
}
|
|
236
|
-
setDisabledState(isDisabled) {
|
|
237
|
-
this.disabled = isDisabled;
|
|
238
|
-
}
|
|
239
|
-
writeValue(obj) {
|
|
240
|
-
if (obj) {
|
|
241
|
-
obj = obj.toString();
|
|
242
|
-
let temp = '';
|
|
243
|
-
if (obj.split(':').length >= 2) {
|
|
244
|
-
temp = obj.split(':')[0] + ':' + obj.split(':')[1];
|
|
245
|
-
}
|
|
246
|
-
this._data = temp;
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
this._data = '';
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
onChange() {
|
|
253
|
-
this.onChangeFn(this.data);
|
|
254
|
-
}
|
|
255
|
-
show() {
|
|
256
|
-
this.calcListPosition();
|
|
257
|
-
this.focusedFlag = true;
|
|
258
|
-
}
|
|
259
|
-
close(val = null) {
|
|
260
|
-
if (val) {
|
|
261
|
-
this.data = val;
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
this.fixTimeToNearest();
|
|
265
|
-
}
|
|
266
|
-
this.focusedFlag = false;
|
|
267
|
-
this.control?.markAsTouched();
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
EcabsTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimepickerComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormTimePickerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
271
|
-
EcabsTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EcabsTimepickerComponent, selector: "ecabs-timepicker", inputs: { showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", listPlacement: "listPlacement", appendTo: "appendTo", min: "min", max: "max", showDayStart: "showDayStart", showDayEnd: "showDayEnd", addSecond: "addSecond" }, host: { listeners: { "document:mousedown": "handleMousedown($event)" }, properties: { "class.form-timepicker-focused": "this.focusedFlag" } }, providers: [
|
|
272
|
-
{
|
|
273
|
-
provide: NG_VALUE_ACCESSOR,
|
|
274
|
-
useExisting: EcabsTimepickerComponent,
|
|
275
|
-
multi: true,
|
|
276
|
-
},
|
|
277
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"timeInputWrapper\" [ngClass]=\"{ disabled: disabled }\">\r\n <app-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </app-element-wrapper>\r\n</div>\r\n", styles: [":host::ng-deep .timeInputWrapper app-element-wrapper .form-field{margin-bottom:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.EcabsTimeListPanelComponent, selector: "ecabs-time-list-panel", inputs: ["typedValue", "listPlacement", "listPosition", "appendTo", "min", "max", "showDayStart", "showDayEnd", "position"], outputs: ["onscroll", "closeMe"] }] });
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsTimepickerComponent, decorators: [{
|
|
279
|
-
type: Component,
|
|
280
|
-
args: [{ selector: 'ecabs-timepicker', providers: [
|
|
281
|
-
{
|
|
282
|
-
provide: NG_VALUE_ACCESSOR,
|
|
283
|
-
useExisting: EcabsTimepickerComponent,
|
|
284
|
-
multi: true,
|
|
285
|
-
},
|
|
286
|
-
], template: "<div class=\"timeInputWrapper\" [ngClass]=\"{ disabled: disabled }\">\r\n <app-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [disabled]=\"disabled\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </app-element-wrapper>\r\n</div>\r\n", styles: [":host::ng-deep .timeInputWrapper app-element-wrapper .form-field{margin-bottom:0}\n"] }]
|
|
287
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormTimePickerService }, { type: i0.Injector }]; }, propDecorators: { showCloseIcon: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], focusedFlag: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}, {
|
|
292
|
-
type: HostBinding,
|
|
293
|
-
args: ['class.form-timepicker-focused']
|
|
294
|
-
}], listPlacement: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], appendTo: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], min: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], max: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}], showDayStart: [{
|
|
303
|
-
type: Input
|
|
304
|
-
}], showDayEnd: [{
|
|
305
|
-
type: Input
|
|
306
|
-
}], addSecond: [{
|
|
307
|
-
type: Input
|
|
308
|
-
}], handleMousedown: [{
|
|
309
|
-
type: HostListener,
|
|
310
|
-
args: ['document:mousedown', ['$event']]
|
|
311
|
-
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtdGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtdGltZXBpY2tlci9lY2Ficy10aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy10aW1lcGlja2VyL2VjYWJzLXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxTQUFTLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEcsT0FBTyxvQkFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBZXhELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFvQ2hFLFlBQ1UsVUFBc0IsRUFDdEIsaUJBQXdDLEVBQ3hDLFFBQWtCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSkEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVCO1FBQ3hDLGFBQVEsR0FBUixRQUFRLENBQVU7UUF0Q25CLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzJCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BFLGtCQUFhLEdBQWtCLE1BQU0sQ0FBQztRQUl0QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFMUIsYUFBUSxHQUFpQixFQUFFLENBQUM7UUFDNUIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQXdQaEMs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bnQsIElucHV0LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBJbmplY3RvciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL2VjYWJzLXRpbWVwaWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCBFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IExpc3RQbGFjZW1lbnQsIExpc3RQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy90aW1lcGlja2VyLm1vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KCB7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy10aW1lcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICdlY2Ficy10aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzVGltZXBpY2tlckNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWNhYnNUaW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgc2hvd0Nsb3NlSWNvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCAnY2xhc3MuZm9ybS10aW1lcGlja2VyLWZvY3VzZWQnICkgZm9jdXNlZEZsYWcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBsaXN0UGxhY2VtZW50OiBMaXN0UGxhY2VtZW50ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGFwcGVuZFRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXghOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0RheVN0YXJ0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RGF5RW5kID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWRkU2Vjb25kID0gdHJ1ZTtcclxuXHJcbiAgcG9zaXRpb246IExpc3RQb3NpdGlvbiA9IHt9O1xyXG4gIF9kYXRhID0gJyc7XHJcbiAgX3RpbWVQaWNrZXI7XHJcbiAgX2lucHV0ITogYW55O1xyXG4gIGxpc3RQb3NpdGlvbjogTGlzdFBvc2l0aW9uID0ge307XHJcbiAgY2FyZXRQb3NpdGlvblN0YXJ0ITogYW55O1xyXG4gIGNhcmV0UG9zaXRpb25FbmQhOiBhbnk7XHJcblxyXG4gIGdldCBkYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcblxyXG4gIHNldCBkYXRhKCB2YWx1ZTogYW55ICkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xyXG4gICAgaWYgKCB0aGlzLl9kYXRhLmxlbmd0aCA9PT0gNSApIHtcclxuICAgICAgaWYgKCB0aGlzLl9kYXRhID09PSAnMjM6NTknICkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VGbiggdGhpcy5fZGF0YSArICggdGhpcy5hZGRTZWNvbmQgPyAnOjU5JyA6ICcnICkgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuX2RhdGEgKyAoIHRoaXMuYWRkU2Vjb25kID8gJzowMCcgOiAnJyApICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIHRoaXMuX2RhdGEgPT09ICcnICkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuX2RhdGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB0aW1lcGlja2VyU2VydmljZTogRm9ybVRpbWVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJzAwOjAwJztcclxuICAgIHRoaXMuX3RpbWVQaWNrZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHNldFRpbWVvdXQoICgpID0+IHtcclxuICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICdpbnB1dCcgKTtcclxuICAgIH0gKTtcclxuICAgIGlmICggIXRoaXMuaWNvbkNsYXNzICkge1xyXG4gICAgICB0aGlzLmljb25DbGFzcyA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0Q29uZmlnKCkuaWNvbkNsYXNzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lciggJ2RvY3VtZW50Om1vdXNlZG93bicsIFsgJyRldmVudCcgXSApXHJcbiAgaGFuZGxlTW91c2Vkb3duKCAkZXZlbnQ6IE1vdXNlRXZlbnQgKTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKFxyXG4gICAgICB0YXJnZXQuY2xvc2VzdCggJy5mb3JtLXRpbWUtbGlzdCcgKSB8fFxyXG4gICAgICB0YXJnZXQuY2xvc2VzdCggJy50aW1lSW5wdXRXcmFwcGVyJyApID09PSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICcudGltZUlucHV0V3JhcHBlcicgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuX3RpbWVQaWNrZXIucXVlcnlTZWxlY3RvciggJy50aW1lSW5wdXRXcmFwcGVyJyApLmZvY3VzKCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIHRoaXMuZm9jdXNlZEZsYWcgKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoIE5nQ29udHJvbCwgbnVsbCApIGFzIE5nQ29udHJvbDtcclxuICAgIGlmICggbmdDb250cm9sICkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcklucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhID0gJyc7XHJcbiAgfVxyXG5cclxuICBjYWxjTGlzdFBvc2l0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl90aW1lUGlja2VyLnF1ZXJ5U2VsZWN0b3IoICcudGltZUlucHV0RmllbGRXcmFwcGVyJyApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCB0aGlzLmFwcGVuZFRvICkge1xyXG4gICAgICB0aGlzLmxpc3RQb3NpdGlvbiA9IHtcclxuICAgICAgICBsZWZ0OiBwb3NpdGlvbi54LFxyXG4gICAgICAgIHRvcDogcG9zaXRpb24udG9wICsgcG9zaXRpb24uaGVpZ2h0LFxyXG4gICAgICAgIHdpZHRoOiBwb3NpdGlvbi53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdFBvc2l0aW9uID0ge1xyXG4gICAgICAgIGxlZnQ6IDAsXHJcbiAgICAgICAgdG9wOiBwb3NpdGlvbi5oZWlnaHQsXHJcbiAgICAgICAgd2lkdGg6IHBvc2l0aW9uLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRLZXlEb3duKCBldmVudDogYW55ICk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB0aGlzLmNhcmV0UG9zaXRpb25FbmQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xyXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xyXG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKCB0aGlzLl9pbnB1dCApO1xyXG4gICAgc3dpdGNoICggdGhpcy5jaGVja1NwZWNpYWxLZXlzKCBrZXksIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0LCB0aGlzLmNhcmV0UG9zaXRpb25FbmQgKSApIHtcclxuICAgICAgY2FzZSAnc3RvcCc6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgY2FzZSAndGFiJzpcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIGNhc2UgJ2Fycm93JzpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCB0aGlzLmNoZWNrVW5Vc2VkS2V5cygga2V5ICkgKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdEYXRhID1cclxuICAgICAgdGhpcy5kYXRhLnNsaWNlKCAwLCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCApICsga2V5ICsgdGhpcy5kYXRhLnNsaWNlKCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG5cclxuICAgIGlmICggdGhpcy5jaGVja091dE9mUmFuZ2VOdW1iZXIoIG5ld0RhdGEgKSApIHtcclxuICAgICAgdGhpcy5kYXRhID0gbmV3RGF0YTtcclxuICAgICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQrKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ID09PSB0aGlzLmRhdGEubGVuZ3RoICYmXHJcbiAgICAgICggdGhpcy5kYXRhLmxlbmd0aCA9PT0gMiB8fCAoIHRoaXMuZGF0YS5sZW5ndGggPT09IDEgJiYgcGFyc2VJbnQoIHRoaXMuZGF0YSApID4gMiApIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLm1ha2VIb3VyRnVsbCgpO1xyXG4gICAgICB0aGlzLmRhdGEgKz0gJzonO1xyXG4gICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrU3BlY2lhbEtleXMoIGtleTogYW55LCBzZWxlY3Rpb25TdGFydDogYW55LCBzZWxlY3Rpb25FbmQ6IGFueSApOiAnc3RvcCcgfCAnY29udGludWUnIHwgJ3RhYicgfCAnYXJyb3cnIHtcclxuICAgIGlmICggc2VsZWN0aW9uU3RhcnQgIT09IHNlbGVjdGlvbkVuZCAmJiBrZXkgIT09ICdBcnJvd0xlZnQnICYmIGtleSAhPT0gJ0Fycm93UmlnaHQnICkge1xyXG4gICAgICBpZiAoICEoIHRoaXMuZGF0YS5zbGljZSggc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCApLmluY2x1ZGVzKCAnOicgKSAmJiBzZWxlY3Rpb25FbmQgIT09IHRoaXMuZGF0YS5sZW5ndGggKSApIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuc2xpY2UoIDAsIHNlbGVjdGlvblN0YXJ0ICkgKyB0aGlzLmRhdGEuc2xpY2UoIHNlbGVjdGlvbkVuZCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIHNlbGVjdGlvblN0YXJ0ID09PSBzZWxlY3Rpb25FbmQgJiYga2V5ID09PSAnQmFja3NwYWNlJyApIHtcclxuICAgICAgaWYgKCB0aGlzLmRhdGEubGVuZ3RoID4gMCApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmRhdGFbIHNlbGVjdGlvblN0YXJ0IC0gMSBdICE9PSAnOicgfHxcclxuICAgICAgICAgICggdGhpcy5kYXRhWyBzZWxlY3Rpb25TdGFydCAtIDEgXSA9PT0gJzonICYmIHNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLmRhdGEubGVuZ3RoIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5zbGljZSggMCwgc2VsZWN0aW9uU3RhcnQgLSAxICkgKyB0aGlzLmRhdGEuc2xpY2UoIHNlbGVjdGlvbkVuZCwgdGhpcy5kYXRhLmxlbmd0aCApO1xyXG4gICAgICAgICAgdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQtLTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAnc3RvcCc7XHJcbiAgICB9XHJcbiAgICBpZiAoIGtleSA9PT0gJ1RhYicgfHwga2V5ID09PSAnICcgfHwga2V5ID09PSAnOicgKSB7XHJcbiAgICAgIGlmICggIXRoaXMuZGF0YS5pbmNsdWRlcyggJzonICkgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDAgKSB7XHJcbiAgICAgICAgdGhpcy5tYWtlSG91ckZ1bGwoKTtcclxuICAgICAgICB0aGlzLmRhdGEgKz0gJzonO1xyXG4gICAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcblxyXG4gICAgICAgIHJldHVybiAnc3RvcCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCBrZXkgPT09ICdUYWInICkge1xyXG4gICAgICAgIHJldHVybiAndGFiJztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuICdzdG9wJztcclxuICAgIH1cclxuICAgIGlmICgga2V5ID09PSAnQXJyb3dSaWdodCcgKSB7XHJcbiAgICAgIGlmICggdGhpcy5jYXJldFBvc2l0aW9uU3RhcnQgPCB0aGlzLmRhdGEubGVuZ3RoICkge1xyXG4gICAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAnYXJyb3cnO1xyXG4gICAgfVxyXG4gICAgaWYgKCBrZXkgPT09ICdBcnJvd0xlZnQnICkge1xyXG4gICAgICBpZiAoIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ID4gMCApIHtcclxuICAgICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydC0tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gJ2Fycm93JztcclxuICAgIH1cclxuICAgIGlmICgga2V5ID09PSAnQXJyb3dEb3duJyAmJiAhdGhpcy5mb2N1c2VkRmxhZyApIHtcclxuICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICdjb250aW51ZSc7XHJcbiAgfVxyXG5cclxuICBjaGVja1VuVXNlZEtleXMoIGtleTogc3RyaW5nICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgciA9IG5ldyBSZWdFeHAoICdbMC05XScgKTtcclxuXHJcbiAgICByZXR1cm4gIXIudGVzdCgga2V5ICk7XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldFBvc2l0aW9uKCBlbGVtOiBhbnkgKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgIGlmICggZWxlbSAhPT0gbnVsbCApIHtcclxuICAgICAgICBpZiAoIGVsZW0uY3JlYXRlVGV4dFJhbmdlICkge1xyXG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBlbGVtLmNyZWF0ZVRleHRSYW5nZSgpO1xyXG4gICAgICAgICAgcmFuZ2UubW92ZSggJ2NoYXJhY3RlcicsIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ICk7XHJcbiAgICAgICAgICByYW5nZS5zZWxlY3QoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCBlbGVtLnNlbGVjdGlvblN0YXJ0ICkge1xyXG4gICAgICAgICAgICBlbGVtLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIGVsZW0uc2V0U2VsZWN0aW9uUmFuZ2UoIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0LCB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxlbS5mb2N1cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tPdXRPZlJhbmdlTnVtYmVyKCB0aW1lOiBhbnkgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBob3VyID0gcGFyc2VJbnQoIHRpbWUuc3BsaXQoICc6JyApWyAwIF0sIDEwICk7XHJcbiAgICBsZXQgbWludXRlID0gLTE7XHJcbiAgICBpZiAoIHRpbWUuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgKSB7XHJcbiAgICAgIG1pbnV0ZSA9IHBhcnNlSW50KCB0aW1lLnNwbGl0KCAnOicgKVsgMSBdLCAxMCApO1xyXG4gICAgfVxyXG4gICAgaWYgKCBob3VyIDwgMjQgJiYgdGltZS5zcGxpdCggJzonIClbIDAgXS5sZW5ndGggPCAzICYmIG1pbnV0ZSA8IDYwICkge1xyXG4gICAgICBpZiAoIHRpbWUuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgJiYgdGltZS5zcGxpdCggJzonIClbIDEgXS5sZW5ndGggPiAyICkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbWFrZUhvdXJGdWxsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaG91clBhcnQgPSB0aGlzLmRhdGEuc3BsaXQoICc6JyApWyAwIF07XHJcbiAgICBjb25zdCBtaW51dGVQYXJ0ID0gdGhpcy5kYXRhLnNwbGl0KCAnOicgKS5sZW5ndGggPiAxID8gdGhpcy5kYXRhLnNwbGl0KCAnOicgKVsgMSBdIDogJyc7XHJcbiAgICBpZiAoIGhvdXJQYXJ0Lmxlbmd0aCA9PT0gMSApIHtcclxuICAgICAgdGhpcy5kYXRhID0gJzAnICsgaG91clBhcnQgKyAoIG1pbnV0ZVBhcnQgPyAnOicgKyBtaW51dGVQYXJ0IDogbWludXRlUGFydCApO1xyXG4gICAgICB0aGlzLmNhcmV0UG9zaXRpb25TdGFydCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFrZU1pbnV0ZUZ1bGwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBob3VyUGFydCA9IHRoaXMuZGF0YS5zcGxpdCggJzonIClbIDAgXTtcclxuICAgIGNvbnN0IG1pbnV0ZVBhcnQgPSB0aGlzLmRhdGEuc3BsaXQoICc6JyApLmxlbmd0aCA+IDEgPyB0aGlzLmRhdGEuc3BsaXQoICc6JyApWyAxIF0gOiAnJztcclxuICAgIGlmICggbWludXRlUGFydC5sZW5ndGggPT09IDAgKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGhvdXJQYXJ0ICsgJzowMCc7XHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0ICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoIG1pbnV0ZVBhcnQubGVuZ3RoID09PSAxICkge1xyXG4gICAgICB0aGlzLmRhdGEgPSBob3VyUGFydCArICc6JyArIG1pbnV0ZVBhcnQgKyAnMCc7XHJcbiAgICAgIHRoaXMuY2FyZXRQb3NpdGlvblN0YXJ0Kys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaXhUaW1lVG9OZWFyZXN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCB0aGlzLmRhdGEubGVuZ3RoID4gMCApIHtcclxuICAgICAgdGhpcy5tYWtlSG91ckZ1bGwoKTtcclxuICAgICAgdGhpcy5tYWtlTWludXRlRnVsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBuby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgcHVibGljIG9uQ2hhbmdlRm4gPSAoIF86IGFueSApOiB2b2lkID0+IHsgfTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgcHVibGljIG9uVG91Y2hlZEZuID0gKCk6IHZvaWQgPT4geyB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZSggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCBmbjogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoIGlzRGlzYWJsZWQ6IGJvb2xlYW4gKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKCBvYmo6IGFueSApOiB2b2lkIHtcclxuICAgIGlmICggb2JqICkge1xyXG4gICAgICBvYmogPSBvYmoudG9TdHJpbmcoKTtcclxuICAgICAgbGV0IHRlbXAgPSAnJztcclxuICAgICAgaWYgKCBvYmouc3BsaXQoICc6JyApLmxlbmd0aCA+PSAyICkge1xyXG4gICAgICAgIHRlbXAgPSBvYmouc3BsaXQoICc6JyApWyAwIF0gKyAnOicgKyBvYmouc3BsaXQoICc6JyApWyAxIF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fZGF0YSA9IHRlbXA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kYXRhID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4oIHRoaXMuZGF0YSApO1xyXG4gIH1cclxuXHJcbiAgc2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FsY0xpc3RQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5mb2N1c2VkRmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSggdmFsID0gbnVsbCApOiB2b2lkIHtcclxuICAgIGlmICggdmFsICkge1xyXG4gICAgICB0aGlzLmRhdGEgPSB2YWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpeFRpbWVUb05lYXJlc3QoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXNlZEZsYWcgPSBmYWxzZTtcclxuICAgIHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGltZUlucHV0V3JhcHBlclwiIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkIH1cIj5cclxuICA8YXBwLWVsZW1lbnQtd3JhcHBlclxyXG4gICAgW2RhdGFdPVwiZ2V0RGF0YSgpXCJcclxuICAgIFtzaG93Q2xvc2VJY29uXT1cInNob3dDbG9zZUljb25cIlxyXG4gICAgW2ZvY3VzZWRGbGFnXT1cImZvY3VzZWRGbGFnXCJcclxuICAgIChjbGVhcik9XCJjbGVhcklucHV0KClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lSW5wdXRGaWVsZFdyYXBwZXJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXRcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIChmb2N1cyk9XCJzaG93KClcIlxyXG4gICAgICAgIChjbGljayk9XCJzaG93KClcIlxyXG4gICAgICAgIChrZXlkb3duKT1cImlucHV0S2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXN1ZmZpeFwiICpuZ0lmPVwidHlwZSAhPT0gJ251bWJlcidcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtaWNvblwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxlY2Ficy10aW1lLWxpc3QtcGFuZWxcclxuICAgICAgICBbdHlwZWRWYWx1ZV09XCJkYXRhXCJcclxuICAgICAgICAqbmdJZj1cImZvY3VzZWRGbGFnXCJcclxuICAgICAgICBbc2hvd0RheVN0YXJ0XT1cInNob3dEYXlTdGFydFwiXHJcbiAgICAgICAgW3Nob3dEYXlFbmRdPVwic2hvd0RheUVuZFwiXHJcbiAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tdGltZS1saXN0XCJcclxuICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxyXG4gICAgICAgIFtsaXN0UG9zaXRpb25dPVwibGlzdFBvc2l0aW9uXCJcclxuICAgICAgICAoY2xvc2VNZSk9XCJjbG9zZSgkZXZlbnQpXCJcclxuICAgICAgPjwvZWNhYnMtdGltZS1saXN0LXBhbmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG48L2Rpdj5cclxuIl19
|
package/esm2020/public-api.mjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
export * from './lib/ecabs-loading/ecabs-loading.module';
|
|
2
|
-
export * from './lib/ecabs-loading/ecabs-loading.component';
|
|
3
|
-
export * from './lib/ecabs-loading/spinner/spinner.component';
|
|
4
|
-
export * from './lib/ecabs-buttons/ecabs-buttons.component';
|
|
5
|
-
export * from './lib/ecabs-buttons/ecabs-buttons.module';
|
|
6
|
-
export * from './lib/ecabs-input/ecabs-input.component';
|
|
7
|
-
export * from './lib/ecabs-input/ecabs-input.module';
|
|
8
|
-
export * from './lib/ecabs-select/ecabs-select.module';
|
|
9
|
-
export * from './lib/ecabs-select/ecabs-select.component';
|
|
10
|
-
export * from './lib/ecabs-textarea/ecabs-textarea.component';
|
|
11
|
-
export * from './lib/ecabs-textarea/ecabs-textarea.module';
|
|
12
|
-
export * from './lib/services/ecabs-components.service';
|
|
13
|
-
export * from './lib/base/validation/validation.component';
|
|
14
|
-
export * from './lib/base/validation/validation.module';
|
|
15
|
-
export * from './lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component';
|
|
16
|
-
export * from './lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';
|
|
17
|
-
export * from './lib/ecabs-date-picker/ecabs-date-picker.component';
|
|
18
|
-
export * from './lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component';
|
|
19
|
-
export * from './lib/ecabs-date-time-picker/ecabs-date-time-picker.component';
|
|
20
|
-
export * from './lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component';
|
|
21
|
-
export * from './lib/ecabs-date-time-picker/ecabs-date-time-picker.module';
|
|
22
|
-
export * from './lib/ecabs-date-picker/ecabs-date-picker.module';
|
|
23
|
-
export * from './lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component';
|
|
24
|
-
export * from './lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';
|
|
25
|
-
export * from './lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module';
|
|
26
|
-
export * from './lib/ecabs-increment/ecabs-increment.component';
|
|
27
|
-
export * from './lib/ecabs-increment/ecabs-increment.module';
|
|
28
|
-
export * from './lib/ecabs-phone/ecabs-phone.component';
|
|
29
|
-
export * from './lib/ecabs-phone/ecabs-phone.module';
|
|
30
|
-
export * from './lib/ecabs-radio-button-list/ecabs-radio-button-list.component';
|
|
31
|
-
export * from './lib/ecabs-radio-button-list/ecabs-radio-button-list.module';
|
|
32
|
-
export * from './lib/ecabs-timepicker/ecabs-timepicker.component';
|
|
33
|
-
export * from './lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component';
|
|
34
|
-
export * from './lib/ecabs-timepicker/ecabs-timepicker.service';
|
|
35
|
-
export * from './lib/ecabs-timepicker/ecabs-timepicker.module';
|
|
36
|
-
export * from './lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component';
|
|
37
|
-
export * from './lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module';
|
|
38
|
-
export * from './lib/ecabs-expansion-panel/ecabs-expansion-panel.component';
|
|
39
|
-
export * from './lib/ecabs-expansion-panel/ecabs-expansion-panel.module';
|
|
40
|
-
export * from './lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component';
|
|
41
|
-
export * from './lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module';
|
|
42
|
-
export * from './lib/ecabs-table/ecabs-table.component';
|
|
43
|
-
export * from './lib/ecabs-table/ecabs-table.module';
|
|
44
|
-
export * from './lib/ecabs-note/ecabs-note.component';
|
|
45
|
-
export * from './lib/ecabs-note/ecabs-note.module';
|
|
46
|
-
export * from './lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component';
|
|
47
|
-
export * from './lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module';
|
|
48
|
-
export * from './lib/ecabs-dialog-message/ecabs-dialog-message.component';
|
|
49
|
-
export * from './lib/ecabs-dialog-message/ecabs-dialog-message.module';
|
|
50
|
-
export * from './lib/ecabs-breadcrumb/ecabs-breadcrumb.component';
|
|
51
|
-
export * from './lib/ecabs-breadcrumb/ecabs-breadcrumb.module';
|
|
52
|
-
export * from './lib/ecabs-language-selector/ecabs-language-selector.component';
|
|
53
|
-
export * from './lib/ecabs-language-selector/ecabs-language-selector.module';
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsZ0dBQWdHLENBQUM7QUFDL0csY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLCtHQUErRyxDQUFDO0FBQzlILGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsaUlBQWlJLENBQUM7QUFDaEosY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDhEQUE4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtbG9hZGluZy9lY2Ficy1sb2FkaW5nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWxvYWRpbmcvZWNhYnMtbG9hZGluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1sb2FkaW5nL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1idXR0b25zL2VjYWJzLWJ1dHRvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtYnV0dG9ucy9lY2Ficy1idXR0b25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWlucHV0L2VjYWJzLWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWlucHV0L2VjYWJzLWlucHV0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLXNlbGVjdC9lY2Ficy1zZWxlY3QubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtc2VsZWN0L2VjYWJzLXNlbGVjdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy10ZXh0YXJlYS9lY2Ficy10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy10ZXh0YXJlYS9lY2Ficy10ZXh0YXJlYS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lY2Ficy1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1jaGVja2JveC10b2dnbGUvZWNhYnMtY2hlY2tib3gtdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWNoZWNrYm94LXRvZ2dsZS9lY2Ficy1jaGVja2JveC10b2dnbGUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtZGF0ZS1waWNrZXIvZWNhYnMtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtZGF0ZS1waWNrZXIvY29tcG9uZW50cy9lY2Ficy1kYXRlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWRhdGUtdGltZS1waWNrZXIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kYXRlLXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci1oZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWRhdGUtcGlja2VyL2VjYWJzLWRhdGUtcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci1oZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWluY3JlbWVudC9lY2Ficy1pbmNyZW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtaW5jcmVtZW50L2VjYWJzLWluY3JlbWVudC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1waG9uZS9lY2Ficy1waG9uZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1waG9uZS9lY2Ficy1waG9uZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1yYWRpby1idXR0b24tbGlzdC9lY2Ficy1yYWRpby1idXR0b24tbGlzdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy10aW1lcGlja2VyL2VjYWJzLXRpbWVwaWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtdGltZXBpY2tlci9jb21wb25ldHMvZWNhYnMtdGltZS1saXN0LXBhbmVsL2VjYWJzLXRpbWUtbGlzdC1wYW5lbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy10aW1lcGlja2VyL2VjYWJzLXRpbWVwaWNrZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLXRpbWVwaWNrZXIvZWNhYnMtdGltZXBpY2tlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci9lY2Ficy1lbXB0eS1wbGFjZWhvbGRlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1leHBhbnNpb24tcGFuZWwvZWNhYnMtZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWV4cGFuc2lvbi1wYW5lbC9lY2Ficy1leHBhbnNpb24tcGFuZWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtdGFibGUvZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXIvZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtdGFibGUvZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXIvZWNhYnMtdGFibGUtZmlsdGVyLXdyYXBwZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtdGFibGUvZWNhYnMtdGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtdGFibGUvZWNhYnMtdGFibGUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtbm90ZS9lY2Ficy1ub3RlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLW5vdGUvZWNhYnMtbm90ZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kaWFsb2ctY29uZmlybS9lY2Ficy1kaWFsb2ctY29uZmlybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kaWFsb2ctY29uZmlybS9lY2Ficy1kaWFsb2ctY29uZmlybS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kaWFsb2ctbWVzc2FnZS9lY2Ficy1kaWFsb2ctbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1kaWFsb2ctbWVzc2FnZS9lY2Ficy1kaWFsb2ctbWVzc2FnZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lY2Ficy1icmVhZGNydW1iL2VjYWJzLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWNhYnMtYnJlYWRjcnVtYi9lY2Ficy1icmVhZGNydW1iLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yL2VjYWJzLWxhbmd1YWdlLXNlbGVjdG9yLm1vZHVsZSc7XHJcbiJdfQ==
|