adb-shared 2.0.34 → 2.0.35
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/lib/components/date-picker/adb-date-picker.directive.mjs +33 -9
- package/fesm2015/adb-shared.mjs +32 -8
- package/fesm2015/adb-shared.mjs.map +1 -1
- package/fesm2020/adb-shared.mjs +32 -8
- package/fesm2020/adb-shared.mjs.map +1 -1
- package/lib/components/date-picker/adb-date-picker.directive.d.ts +5 -1
- package/package.json +1 -1
|
@@ -18,6 +18,7 @@ export class AdbDatePickerDirective {
|
|
|
18
18
|
this.subscriptions = new Subscription();
|
|
19
19
|
this.format = 'yyyy-MM-dd';
|
|
20
20
|
this.settings = null;
|
|
21
|
+
this.pickOnly = true;
|
|
21
22
|
//ControlValueAccessor
|
|
22
23
|
this.onChange = () => { };
|
|
23
24
|
this.onTouched = () => { };
|
|
@@ -35,6 +36,7 @@ export class AdbDatePickerDirective {
|
|
|
35
36
|
this.id = this.getId();
|
|
36
37
|
viewRef.instance.id = this.id;
|
|
37
38
|
viewRef.instance.selectDate.subscribe((date) => {
|
|
39
|
+
this.elementRef.nativeElement.classList.remove('ng-invalid');
|
|
38
40
|
this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
|
|
39
41
|
this.onChange(date);
|
|
40
42
|
this.initialDate = date;
|
|
@@ -45,22 +47,32 @@ export class AdbDatePickerDirective {
|
|
|
45
47
|
});
|
|
46
48
|
this.adbDatePickerService.viewRef = viewRef;
|
|
47
49
|
}
|
|
50
|
+
onKeyup(event) {
|
|
51
|
+
const date = AdbDatePickerDirective.tryParse(event.target.value, this.format);
|
|
52
|
+
if (date) {
|
|
53
|
+
this.onChange(date);
|
|
54
|
+
this.initialDate = date;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
48
57
|
onHide() {
|
|
49
58
|
this.adbDatePickerService.viewRef = null;
|
|
50
59
|
this.viewContainerRef.detach();
|
|
51
60
|
this.viewContainerRef.clear();
|
|
52
61
|
}
|
|
62
|
+
onBlur() {
|
|
63
|
+
const date = AdbDatePickerDirective.tryParse(this.elementRef.nativeElement.value, this.format);
|
|
64
|
+
if (!date) {
|
|
65
|
+
this.elementRef.nativeElement.classList.add('ng-invalid');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.elementRef.nativeElement.classList.remove('ng-invalid');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
53
71
|
handleKeyboardEvent(event) {
|
|
54
72
|
if (event.key === 'Tab') {
|
|
55
73
|
this.onHide();
|
|
56
74
|
}
|
|
57
|
-
else if (
|
|
58
|
-
this.initialDate = null;
|
|
59
|
-
this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);
|
|
60
|
-
this.onChange();
|
|
61
|
-
this.onHide();
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
75
|
+
else if (this.pickOnly) {
|
|
64
76
|
event.preventDefault();
|
|
65
77
|
}
|
|
66
78
|
}
|
|
@@ -117,12 +129,16 @@ export class AdbDatePickerDirective {
|
|
|
117
129
|
return null;
|
|
118
130
|
}
|
|
119
131
|
}
|
|
132
|
+
static tryParse(dateString, format) {
|
|
133
|
+
const parsed = parseISO(dateString);
|
|
134
|
+
return isValid(parsed) && dateString?.length === 10 ? parsed : null;
|
|
135
|
+
}
|
|
120
136
|
getId() {
|
|
121
137
|
return '' + Math.floor(Math.random() * Date.now());
|
|
122
138
|
}
|
|
123
139
|
}
|
|
124
140
|
/** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.AdbDatePickerService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
125
|
-
/** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings" }, host: { listeners: { "click": "onClick()", "keyup.esc": "onHide()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
|
|
141
|
+
/** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "blur": "onBlur()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
|
|
126
142
|
provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
|
|
127
143
|
multi: true
|
|
128
144
|
}], ngImport: i0 });
|
|
@@ -144,12 +160,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
144
160
|
type: Input
|
|
145
161
|
}], settings: [{
|
|
146
162
|
type: Input
|
|
163
|
+
}], pickOnly: [{
|
|
164
|
+
type: Input
|
|
147
165
|
}], onClick: [{
|
|
148
166
|
type: HostListener,
|
|
149
167
|
args: ['click']
|
|
168
|
+
}], onKeyup: [{
|
|
169
|
+
type: HostListener,
|
|
170
|
+
args: ['keyup', ['$event']]
|
|
150
171
|
}], onHide: [{
|
|
151
172
|
type: HostListener,
|
|
152
173
|
args: ['keyup.esc']
|
|
174
|
+
}], onBlur: [{
|
|
175
|
+
type: HostListener,
|
|
176
|
+
args: ['blur']
|
|
153
177
|
}], handleKeyboardEvent: [{
|
|
154
178
|
type: HostListener,
|
|
155
179
|
args: ['keydown', ['$event']]
|
|
@@ -157,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
157
181
|
type: HostListener,
|
|
158
182
|
args: ['document:click', ['$event.target']]
|
|
159
183
|
}] } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0QsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUF3QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFVckUsTUFBTSxPQUFPLHNCQUFzQjtJQVMvQixZQUNZLGdCQUFrQyxFQUNsQyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixvQkFBMEMsRUFDM0MsU0FBMkI7UUFKMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWJULGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsWUFBWSxDQUFDO1FBRXRCLGFBQVEsR0FBeUQsSUFBSSxDQUFDO1FBaUYvRSxzQkFBc0I7UUFDdEIsYUFBUSxHQUFRLEdBQUcs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QUMsT0FBTztnQkF3QnJCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxXQUFXO2dCQVF6QixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCbkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBpc1ZhbGlkLCBwYXJzZSwgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWRiRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuL2FkYi1kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQWRiRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogYGlucHV0W2FkYkRhdGVwaWNrZXJdYCxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJEYXRlUGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBIb3N0QmluZGluZygnYXV0b2NvbXBsZXRlJykgYXV0b2NvbXBsZXRlID0gJ29mZic7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcbiAgICBASW5wdXQoKSB0b0xlZnQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzZXR0aW5nczogeyBtYXhEYXRlPzogRGF0ZSB8IHN0cmluZywgbWluRGF0ZT86IERhdGUgfCBzdHJpbmcgfSA9IG51bGw7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgaW5pdGlhbERhdGU6IERhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEYXRlUGlja2VyU2VydmljZTogQWRiRGF0ZVBpY2tlclNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8QWRiRGF0ZVBpY2tlckNvbXBvbmVudD4oQWRiRGF0ZVBpY2tlckNvbXBvbmVudCk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS50b0xlZnQgPSB0aGlzLnRvTGVmdDtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLmluaXRpYWxEYXRlID0gdGhpcy5pbml0aWFsRGF0ZTtcclxuICAgICAgICB0aGlzLmlkID0gdGhpcy5nZXRJZCgpO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2UuaWQgPSB0aGlzLmlkO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2Uuc2VsZWN0RGF0ZS5zdWJzY3JpYmUoKGRhdGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0RGF0ZShkYXRlLCB0aGlzLmZvcm1hdCwgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5oaWRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmID0gdmlld1JlZjtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnKVxyXG4gICAgb25IaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gICAgb25DaGVja091dFNpZGVDbGljayh0YXJnZXQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWY/Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gICAgICAgIGlmIChuYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChuYXRpdmVFbGVtZW50LmlkID09PSB0aGlzLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2FkYmRhdGVwaWNrZXInKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKHRoaXMuaW5pdGlhbERhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWQocGFyc2VJU08odmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSVNPKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcnICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSlcclxuICAgIH1cclxufSJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEUsTUFBTSxlQUFlLENBQUM7QUFDOUssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxPQUFPLEVBQVMsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFVckUsTUFBTSxPQUFPLHNCQUFzQjtJQVUvQixZQUNZLGdCQUFrQyxFQUNsQyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixvQkFBMEMsRUFDM0MsU0FBMkI7UUFKMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWRULGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsWUFBWSxDQUFDO1FBRXRCLGFBQVEsR0FBeUQsSUFBSSxDQUFDO1FBQ3RFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUErRnpCLHNC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QWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNWYWxpZCwgcGFyc2UsIHBhcnNlSVNPIH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBpbnB1dFthZGJEYXRlcGlja2VyXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpIGF1dG9jb21wbGV0ZSA9ICdvZmYnO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgQElucHV0KCkgZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgQElucHV0KCkgdG9MZWZ0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2V0dGluZ3M6IHsgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmcsIG1pbkRhdGU/OiBEYXRlIHwgc3RyaW5nIH0gPSBudWxsO1xyXG4gICAgQElucHV0KCkgcGlja09ubHkgPSB0cnVlO1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGluaXRpYWxEYXRlOiBEYXRlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgYWRiRGF0ZVBpY2tlclNlcnZpY2U6IEFkYkRhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gICAgb25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFkYkRhdGVQaWNrZXJDb21wb25lbnQ+KEFkYkRhdGVQaWNrZXJDb21wb25lbnQpO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2Uuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xyXG4gICAgICAgIHZpZXdSZWYuaW5zdGFuY2UudG9MZWZ0ID0gdGhpcy50b0xlZnQ7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5pbml0aWFsRGF0ZSA9IHRoaXMuaW5pdGlhbERhdGU7XHJcbiAgICAgICAgdGhpcy5pZCA9IHRoaXMuZ2V0SWQoKTtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLmlkID0gdGhpcy5pZDtcclxuICAgICAgICB2aWV3UmVmLmluc3RhbmNlLnNlbGVjdERhdGUuc3Vic2NyaWJlKChkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ25nLWludmFsaWQnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0RGF0ZShkYXRlLCB0aGlzLmZvcm1hdCwgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmlld1JlZi5pbnN0YW5jZS5oaWRlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS52aWV3UmVmID0gdmlld1JlZjtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUudHJ5UGFyc2UoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBkYXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnKVxyXG4gICAgb25IaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uudmlld1JlZiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxyXG4gICAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnRyeVBhcnNlKCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIGlmICghZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCduZy1pbnZhbGlkJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbmctaW52YWxpZCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBpY2tPbmx5KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gICAgb25DaGVja091dFNpZGVDbGljayh0YXJnZXQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnZpZXdSZWY/Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA/PyBudWxsO1xyXG4gICAgICAgIGlmIChuYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChuYXRpdmVFbGVtZW50LmlkID09PSB0aGlzLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2FkYmRhdGVwaWNrZXInKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKHRoaXMuaW5pdGlhbERhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWQocGFyc2VJU08odmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSVNPKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdHJ5UGFyc2UoZGF0ZVN0cmluZzogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHBhcnNlZCkgJiYgZGF0ZVN0cmluZz8ubGVuZ3RoID09PSAxMCA/IHBhcnNlZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpXHJcbiAgICB9XHJcbn0iXX0=
|
package/fesm2015/adb-shared.mjs
CHANGED
|
@@ -502,6 +502,7 @@ class AdbDatePickerDirective {
|
|
|
502
502
|
this.subscriptions = new Subscription();
|
|
503
503
|
this.format = 'yyyy-MM-dd';
|
|
504
504
|
this.settings = null;
|
|
505
|
+
this.pickOnly = true;
|
|
505
506
|
//ControlValueAccessor
|
|
506
507
|
this.onChange = () => { };
|
|
507
508
|
this.onTouched = () => { };
|
|
@@ -519,6 +520,7 @@ class AdbDatePickerDirective {
|
|
|
519
520
|
this.id = this.getId();
|
|
520
521
|
viewRef.instance.id = this.id;
|
|
521
522
|
viewRef.instance.selectDate.subscribe((date) => {
|
|
523
|
+
this.elementRef.nativeElement.classList.remove('ng-invalid');
|
|
522
524
|
this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
|
|
523
525
|
this.onChange(date);
|
|
524
526
|
this.initialDate = date;
|
|
@@ -529,22 +531,32 @@ class AdbDatePickerDirective {
|
|
|
529
531
|
});
|
|
530
532
|
this.adbDatePickerService.viewRef = viewRef;
|
|
531
533
|
}
|
|
534
|
+
onKeyup(event) {
|
|
535
|
+
const date = AdbDatePickerDirective.tryParse(event.target.value, this.format);
|
|
536
|
+
if (date) {
|
|
537
|
+
this.onChange(date);
|
|
538
|
+
this.initialDate = date;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
532
541
|
onHide() {
|
|
533
542
|
this.adbDatePickerService.viewRef = null;
|
|
534
543
|
this.viewContainerRef.detach();
|
|
535
544
|
this.viewContainerRef.clear();
|
|
536
545
|
}
|
|
546
|
+
onBlur() {
|
|
547
|
+
const date = AdbDatePickerDirective.tryParse(this.elementRef.nativeElement.value, this.format);
|
|
548
|
+
if (!date) {
|
|
549
|
+
this.elementRef.nativeElement.classList.add('ng-invalid');
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
this.elementRef.nativeElement.classList.remove('ng-invalid');
|
|
553
|
+
}
|
|
554
|
+
}
|
|
537
555
|
handleKeyboardEvent(event) {
|
|
538
556
|
if (event.key === 'Tab') {
|
|
539
557
|
this.onHide();
|
|
540
558
|
}
|
|
541
|
-
else if (
|
|
542
|
-
this.initialDate = null;
|
|
543
|
-
this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);
|
|
544
|
-
this.onChange();
|
|
545
|
-
this.onHide();
|
|
546
|
-
}
|
|
547
|
-
else {
|
|
559
|
+
else if (this.pickOnly) {
|
|
548
560
|
event.preventDefault();
|
|
549
561
|
}
|
|
550
562
|
}
|
|
@@ -602,12 +614,16 @@ class AdbDatePickerDirective {
|
|
|
602
614
|
return null;
|
|
603
615
|
}
|
|
604
616
|
}
|
|
617
|
+
static tryParse(dateString, format) {
|
|
618
|
+
const parsed = parseISO(dateString);
|
|
619
|
+
return isValid(parsed) && (dateString === null || dateString === void 0 ? void 0 : dateString.length) === 10 ? parsed : null;
|
|
620
|
+
}
|
|
605
621
|
getId() {
|
|
606
622
|
return '' + Math.floor(Math.random() * Date.now());
|
|
607
623
|
}
|
|
608
624
|
}
|
|
609
625
|
/** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
610
|
-
/** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings" }, host: { listeners: { "click": "onClick()", "keyup.esc": "onHide()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
|
|
626
|
+
/** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "blur": "onBlur()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
|
|
611
627
|
provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
|
|
612
628
|
multi: true
|
|
613
629
|
}], ngImport: i0 });
|
|
@@ -629,12 +645,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
629
645
|
type: Input
|
|
630
646
|
}], settings: [{
|
|
631
647
|
type: Input
|
|
648
|
+
}], pickOnly: [{
|
|
649
|
+
type: Input
|
|
632
650
|
}], onClick: [{
|
|
633
651
|
type: HostListener,
|
|
634
652
|
args: ['click']
|
|
653
|
+
}], onKeyup: [{
|
|
654
|
+
type: HostListener,
|
|
655
|
+
args: ['keyup', ['$event']]
|
|
635
656
|
}], onHide: [{
|
|
636
657
|
type: HostListener,
|
|
637
658
|
args: ['keyup.esc']
|
|
659
|
+
}], onBlur: [{
|
|
660
|
+
type: HostListener,
|
|
661
|
+
args: ['blur']
|
|
638
662
|
}], handleKeyboardEvent: [{
|
|
639
663
|
type: HostListener,
|
|
640
664
|
args: ['keydown', ['$event']]
|