ecabs-components 0.0.44 → 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/{esm2020 → esm2022}/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/ecabs-date-time-range-picker/time-range.directive.mjs +4 -4
- 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/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/time-range.directive.d.ts +1 -1
- 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/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 -193
- 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/fesm2015/ecabs-components.mjs +0 -3241
- package/fesm2015/ecabs-components.mjs.map +0 -1
- package/fesm2020/ecabs-components.mjs +0 -3225
- 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
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,193 +0,0 @@
|
|
|
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/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
|
-
constructor(injector, decimalPipe) {
|
|
18
|
-
super();
|
|
19
|
-
this.injector = injector;
|
|
20
|
-
this.decimalPipe = decimalPipe;
|
|
21
|
-
this.touchUi = false;
|
|
22
|
-
this.onblur = new EventEmitter();
|
|
23
|
-
this.cancleLabel = 'Cancel';
|
|
24
|
-
this.applyLabel = 'Apply';
|
|
25
|
-
this.all = 'All';
|
|
26
|
-
this.from = 'From';
|
|
27
|
-
this.to = 'To';
|
|
28
|
-
this._hoursFrom = '12';
|
|
29
|
-
this._minutesFrom = '00';
|
|
30
|
-
this._hoursTo = '12';
|
|
31
|
-
this._minutesTo = '00';
|
|
32
|
-
this._seconds = '00';
|
|
33
|
-
this.header = EcabsDateTimeRangePickerHeaderComponent;
|
|
34
|
-
this.maxValueHours = 23;
|
|
35
|
-
this.maxValueMinutesSeconds = 59;
|
|
36
|
-
this.onChange = () => { };
|
|
37
|
-
this.onTouch = () => { };
|
|
38
|
-
}
|
|
39
|
-
get value() {
|
|
40
|
-
return this.val;
|
|
41
|
-
}
|
|
42
|
-
get pickerValue() {
|
|
43
|
-
return this._pickerValue;
|
|
44
|
-
}
|
|
45
|
-
get hoursFrom() {
|
|
46
|
-
return this._hoursFrom;
|
|
47
|
-
}
|
|
48
|
-
get minutesFrom() {
|
|
49
|
-
return this._minutesFrom;
|
|
50
|
-
}
|
|
51
|
-
get hoursTo() {
|
|
52
|
-
return this._hoursTo;
|
|
53
|
-
}
|
|
54
|
-
get minutesTo() {
|
|
55
|
-
return this._minutesTo;
|
|
56
|
-
}
|
|
57
|
-
get seconds() {
|
|
58
|
-
return this._seconds;
|
|
59
|
-
}
|
|
60
|
-
set hoursFrom(value) {
|
|
61
|
-
if (value !== undefined && this._hoursFrom !== value) {
|
|
62
|
-
this._hoursFrom = this.roundNumber(+value);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
set minutesFrom(value) {
|
|
66
|
-
if (value !== undefined && this._minutesFrom !== value) {
|
|
67
|
-
this._minutesFrom = this.roundNumber(+value);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
set hoursTo(value) {
|
|
71
|
-
if (value !== undefined && this._hoursTo !== value) {
|
|
72
|
-
this._hoursTo = this.roundNumber(+value);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
set minutesTo(value) {
|
|
76
|
-
if (value !== undefined && this._minutesTo !== value) {
|
|
77
|
-
this._minutesTo = this.roundNumber(+value);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
set seconds(value) {
|
|
81
|
-
if (value !== undefined && this._seconds !== value) {
|
|
82
|
-
this._seconds = this.roundNumber(+value);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
set value(val) {
|
|
86
|
-
if (val && this.val !== val) {
|
|
87
|
-
this.val = val;
|
|
88
|
-
this.pickerValue = val;
|
|
89
|
-
this.onChange(val);
|
|
90
|
-
this.onTouch(val);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
set pickerValue(val) {
|
|
94
|
-
if (val) {
|
|
95
|
-
this._pickerValue = val;
|
|
96
|
-
this.value = val;
|
|
97
|
-
}
|
|
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
|
-
}
|
|
159
|
-
EcabsDateTimeRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EcabsDateTimeRangePickerComponent, deps: [{ token: i0.Injector }, { token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
-
EcabsDateTimeRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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: [
|
|
161
|
-
{
|
|
162
|
-
provide: NG_VALUE_ACCESSOR,
|
|
163
|
-
useExisting: EcabsDateTimeRangePickerComponent,
|
|
164
|
-
multi: true,
|
|
165
|
-
},
|
|
166
|
-
DecimalPipe,
|
|
167
|
-
], 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 (opened)=\"opened()\" #picker [calendarHeaderComponent]=\"header\" [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 type=\"button\" mat-stroked-button class=\"w-full cancel-button\" color=\"primary\" matDatepickerCancel>\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 \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)}.time--inputs:after{bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}:host ::ng-deep .mat-datepicker-content .mat-calendar{height:50px!important}\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.MatButton, 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"] }] });
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", 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 (opened)=\"opened()\" #picker [calendarHeaderComponent]=\"header\" [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 type=\"button\" mat-stroked-button class=\"w-full cancel-button\" color=\"primary\" matDatepickerCancel>\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 \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)}.time--inputs:after{bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}:host ::ng-deep .mat-datepicker-content .mat-calendar{height:50px!important}\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
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXJhbmdlLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sb0JBQW9CLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7Ozs7Ozs7Ozs7O0FBZXpKLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLG9CQUFvQjtJQXNHNUIsWUFDbUIsUUFBa0IsRUFDbEIsV0FBd0I7UUFFekMsS0FBSyxFQUFFLENBQUM7UUFIUyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBdEdsQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWYsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHbEMsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFDdkIsZUFBVSxHQUFHLE9BQU8sQ0FBQztRQUNyQixRQUFHLEdBQUcsS0FBSyxDQUFD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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IEVsZW1lbnRCYXNlQ29tcG9uZW50IGZyb20gJy4uL2Jhc2UvZWxlbWVudC1iYXNlJztcclxuaW1wb3J0IHsgRWNhYnNEYXRlVGltZVJhbmdlUGlja2VySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWRhdGUtdGltZS1yYW5nZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1kYXRlLXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNEYXRlVGltZVJhbmdlUGlja2VyQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBEZWNpbWFsUGlwZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEYXRlVGltZVJhbmdlUGlja2VyQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHRvdWNoVWkgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHJcbiAgQElucHV0KCkgY2FuY2xlTGFiZWwgPSAnQ2FuY2VsJztcclxuICBASW5wdXQoKSBhcHBseUxhYmVsID0gJ0FwcGx5JztcclxuICBASW5wdXQoKSBhbGwgPSAnQWxsJztcclxuICBASW5wdXQoKSBmcm9tID0gJ0Zyb20nO1xyXG4gIEBJbnB1dCgpIHRvID0gJ1RvJztcclxuXHJcbiAgXHJcblxyXG4gIF9ob3Vyc0Zyb20gPSAnMTInO1xyXG4gIF9taW51dGVzRnJvbSA9ICcwMCc7XHJcbiAgX2hvdXJzVG8gPSAnMTInO1xyXG4gIF9taW51dGVzVG8gPSAnMDAnO1xyXG4gIF9zZWNvbmRzID0gJzAwJztcclxuICBfZGF0ZTogc3RyaW5nO1xyXG4gIF9waWNrZXJWYWx1ZTogc3RyaW5nO1xyXG4gIHZhbDogc3RyaW5nO1xyXG4gIGhlYWRlciA9IEVjYWJzRGF0ZVRpbWVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudDtcclxuICBtYXhWYWx1ZUhvdXJzID0gMjM7XHJcbiAgbWF4VmFsdWVNaW51dGVzU2Vjb25kcyA9IDU5O1xyXG4gIGNvbnRyb2xEYXRlOiBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBpY2tlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlja2VyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaG91cnNGcm9tKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faG91cnNGcm9tO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbnV0ZXNGcm9tKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWludXRlc0Zyb207XHJcbiAgfVxyXG5cclxuICBnZXQgaG91cnNUbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hvdXJzVG87XHJcbiAgfVxyXG5cclxuICBnZXQgbWludXRlc1RvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWludXRlc1RvO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlY29uZHMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWNvbmRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGhvdXJzRnJvbSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9ob3Vyc0Zyb20gIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2hvdXJzRnJvbSA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBtaW51dGVzRnJvbSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9taW51dGVzRnJvbSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fbWludXRlc0Zyb20gPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgaG91cnNUbyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9ob3Vyc1RvICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9ob3Vyc1RvID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IG1pbnV0ZXNUbyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9taW51dGVzVG8gIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX21pbnV0ZXNUbyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCBzZWNvbmRzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3NlY29uZHMgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3NlY29uZHMgPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsKSB7XHJcbiAgICBpZiAodmFsICYmIHRoaXMudmFsICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMucGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgcGlja2VyVmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGVcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udHJvbERhdGUgPSB0aGlzLmNvbnRyb2w7XHJcbiAgICAgICAgY29uc3QgY29udHJvbERhdGUgPSAhIXRoaXMuY29udHJvbC52YWx1ZSA/IHRoaXMuY29udHJvbC52YWx1ZSA6ICcnO1xyXG5cclxuICAgICAgICBpZiAoY29udHJvbERhdGUpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmFsdWVzKGNvbnRyb2xEYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBibHVyQ2hhbmdlKGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbmJsdXIuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGtleWRvd25DaGFuZ2UoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZT8udGFyZ2V0LnZhbHVlID09PSB0aGlzLmFsbCkge1xyXG4gICAgICBjb25zdCB2YWwgPSAnJztcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMuX3BpY2tlclZhbHVlID0gdmFsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BcHBseSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9taW51dGVzRnJvbSAmJiB0aGlzLl9ob3Vyc0Zyb20gJiYgdGhpcy5fbWludXRlc1RvICYmIHRoaXMuX2hvdXJzVG8pIHtcclxuICAgICAgdGhpcy5zZXRWYWx1ZXModGhpcy5faG91cnNGcm9tICsgJzonICsgdGhpcy5fbWludXRlc0Zyb20gKyAnIC0gJyArIHRoaXMuX2hvdXJzVG8gKyAnOicgKyB0aGlzLl9taW51dGVzVG8pO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5faG91cnNGcm9tICsgJzonICsgdGhpcy5fbWludXRlc0Zyb20gKyAnIC0gJyArIHRoaXMuX2hvdXJzVG8gKyAnOicgKyB0aGlzLl9taW51dGVzVG87XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuZWQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2FsZW5kYXItY29udGVudCcpO1xyXG4gICAgICB3aGlsZSAoZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGVsZW1lbnRzWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudHNbMF0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgY29scyA9IEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNhbGVuZGFyJykgYXMgSFRNTENvbGxlY3Rpb25PZjxIVE1MRWxlbWVudD4pO1xyXG4gICAgICBmb3IobGV0IGk9MDsgaTxjb2xzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29sc1tpXS5zdHlsZS5oZWlnaHQgPSAnNTBweCc7XHJcbiAgICAgIH0gICAgICBcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcm91bmROdW1iZXIobnVtOiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybShudW0sICcyLjAtMCcpID8/ICcwMCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlcyhkYXRlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RhdGUgPSBkYXRlO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmYWtlLWlucHV0XCJcclxuICAgICAgICBbaWRdPVwiX2RhdGVcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiX2RhdGVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGNvbnRyb2xEYXRlPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgIChvcGVuZWQpPVwib3BlbmVkKClcIiAgI3BpY2tlciBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCIgW3RvdWNoVWldPVwidG91Y2hVaVwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsIGdhcC15LTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7ZnJvbX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJibG9jayBmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImhvdXJzRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaG91cnNGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICBcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj46PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJtaW51dGVzRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICAgIGFwcE51bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtLWlucHV0c1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj57e3RvfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcERpZ2l0c09ubHlcclxuICAgICAgICAgICAgICAgICAgICBhcHBOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaG91cnNUb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlSG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaG91cnNUb1wiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwibWludXRlc1RvXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNUb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgICAgIGFwcE51bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtcGlja2VyLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ3LWZ1bGwgY2FuY2VsLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdERhdGVwaWNrZXJDYW5jZWw+XHJcbiAgICAgICAgICAgICAgICB7eyBjYW5jbGVMYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gIFxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWwtMCBhcHBseS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIG1hdERhdGVwaWNrZXJBcHBseVxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHkoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgYXBwbHlMYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB3LWZ1bGwgZGF0ZS1pbnB1dFwiXHJcbiAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicGlja2VyVmFsdWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGNvbnRyb2xEYXRlPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgYXBwVGltZVJhbmdlXHJcbiAgICAgICAgW2FsbF09XCJhbGxcIlxyXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiICAgXHJcbiAgICAgICAgKGJsdXIpPVwiYmx1ckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5dXApPVwiYmx1ckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJrZXlkb3duQ2hhbmdlKCRldmVudClcIiAgIFxyXG4gICAgICAvPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRhdGVwaWNrZXItdG9nZ2xlXCIgKGNsaWNrKT1cInBpY2tlci5vcGVuKClcIj5cclxuICAgICAgICA8bWF0LWljb24+YWNjZXNzX3RpbWU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYXBwLWVsZW1lbnQtd3JhcHBlcj5cclxuICBcclxuIl19
|