@impartner/design-components 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/esm2022/lib/badge/badge.component.mjs +17 -1
- package/esm2022/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.mjs +105 -0
- package/esm2022/lib/datetime-picker/components/datepicker-nav/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.mjs +30 -0
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +370 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.mjs +367 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.mjs +68 -0
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/components/index.mjs +6 -0
- package/esm2022/lib/datetime-picker/constants/datetime-picker-defaults.mjs +12 -0
- package/esm2022/lib/datetime-picker/constants/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/datetime-picker.module.mjs +22 -0
- package/esm2022/lib/datetime-picker/index.mjs +4 -0
- package/esm2022/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.mjs +40 -0
- package/esm2022/lib/datetime-picker/services/datetime-formatter/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/services/index.mjs +2 -0
- package/esm2022/lib/datetime-picker/types/datetime-picker-value.interface.mjs +2 -0
- package/esm2022/lib/datetime-picker/types/index.mjs +2 -0
- package/esm2022/lib/design-components.module.mjs +20 -7
- package/esm2022/lib/form-field/component/directives/corner-hint.directive.mjs +15 -0
- package/esm2022/lib/form-field/component/directives/error.directive.mjs +27 -0
- package/esm2022/lib/form-field/component/directives/form-root.directive.mjs +93 -0
- package/esm2022/lib/form-field/component/directives/hint.directive.mjs +25 -0
- package/esm2022/lib/form-field/component/directives/index.mjs +25 -0
- package/esm2022/lib/form-field/component/directives/label.directive.mjs +15 -0
- package/esm2022/lib/form-field/component/directives/prefix.directive.mjs +25 -0
- package/esm2022/lib/form-field/component/directives/suffix.directive.mjs +25 -0
- package/esm2022/lib/form-field/component/form-field.component.mjs +131 -0
- package/esm2022/lib/form-field/component/form-field.module.mjs +24 -0
- package/esm2022/lib/form-field/component/index.mjs +4 -0
- package/esm2022/lib/form-field/controls/checkbox/checkbox.component.mjs +14 -6
- package/esm2022/lib/form-field/controls/checkbox/checkbox.module.mjs +4 -7
- package/esm2022/lib/form-field/controls/index.mjs +2 -1
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +4 -3
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +6 -4
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +4 -3
- package/esm2022/lib/form-field/controls/radio/radio.module.mjs +4 -7
- package/esm2022/lib/form-field/controls/select/index.mjs +6 -3
- package/esm2022/lib/form-field/controls/select/interfaces/index.mjs +2 -0
- package/esm2022/lib/form-field/controls/select/interfaces/select-option.interface.mjs +2 -0
- package/esm2022/lib/form-field/controls/select/option/index.mjs +2 -2
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +33 -128
- package/esm2022/lib/form-field/controls/select/option-display/index.mjs +2 -0
- package/esm2022/lib/form-field/controls/select/option-display/select-option-display.component.mjs +162 -0
- package/esm2022/lib/form-field/controls/select/option-group/index.mjs +2 -0
- package/esm2022/lib/form-field/controls/select/option-group/select-option-group.component.mjs +35 -0
- package/esm2022/lib/form-field/controls/select/option-parent.mjs +2 -1
- package/esm2022/lib/form-field/controls/select/select.component.mjs +348 -148
- package/esm2022/lib/form-field/controls/select/select.module.mjs +20 -13
- package/esm2022/lib/form-field/controls/select/value-tags-display/index.mjs +2 -0
- package/esm2022/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.mjs +91 -0
- package/esm2022/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +3 -3
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +19 -3
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.module.mjs +4 -6
- package/esm2022/lib/form-field/controls/tag-select/index.mjs +2 -0
- package/esm2022/lib/form-field/controls/tag-select/tag-select.component.mjs +146 -0
- package/esm2022/lib/form-field/impdc-forms.mjs +2 -3
- package/esm2022/lib/form-field/impdc-forms.module.mjs +32 -47
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +1 -1
- package/esm2022/lib/icon/icon.component.mjs +12 -5
- package/esm2022/lib/index.mjs +3 -1
- package/esm2022/lib/pagination/pagination.component.mjs +6 -6
- package/esm2022/lib/select-icon/select-icon.component.mjs +6 -6
- package/esm2022/lib/select-icon/select-icon.module.mjs +5 -1
- package/esm2022/lib/table/containers/table.component.mjs +3 -3
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +1 -1
- package/esm2022/lib/tag/index.mjs +2 -0
- package/esm2022/lib/tag/tag.component.mjs +104 -0
- package/esm2022/lib/text-highlight/text-highlight.component.mjs +52 -37
- package/esm2022/lib/text-highlight/text-highlight.module.mjs +4 -6
- package/fesm2022/impartner-design-components.mjs +5620 -3983
- package/fesm2022/impartner-design-components.mjs.map +1 -1
- package/lib/badge/badge.component.d.ts +15 -1
- package/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.d.ts +31 -0
- package/lib/datetime-picker/components/datepicker-nav/index.d.ts +1 -0
- package/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.d.ts +14 -0
- package/lib/datetime-picker/components/datepicker-template-host/index.d.ts +1 -0
- package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +157 -0
- package/lib/datetime-picker/components/datetime-picker/index.d.ts +1 -0
- package/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.d.ts +160 -0
- package/lib/datetime-picker/components/datetime-picker-input/index.d.ts +1 -0
- package/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.d.ts +24 -0
- package/lib/datetime-picker/components/datetime-picker-input-footer/index.d.ts +1 -0
- package/lib/datetime-picker/components/index.d.ts +5 -0
- package/lib/datetime-picker/constants/datetime-picker-defaults.d.ts +4 -0
- package/lib/datetime-picker/constants/index.d.ts +1 -0
- package/lib/datetime-picker/datetime-picker.module.d.ts +8 -0
- package/lib/datetime-picker/index.d.ts +4 -0
- package/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.d.ts +20 -0
- package/lib/datetime-picker/services/datetime-formatter/index.d.ts +1 -0
- package/lib/datetime-picker/services/index.d.ts +1 -0
- package/lib/datetime-picker/types/datetime-picker-value.interface.d.ts +5 -0
- package/lib/datetime-picker/types/index.d.ts +1 -0
- package/lib/design-components.module.d.ts +14 -12
- package/lib/form-field/{directives → component/directives}/corner-hint.directive.d.ts +1 -1
- package/lib/form-field/{directives → component/directives}/error.directive.d.ts +1 -1
- package/lib/form-field/{directives → component/directives}/form-root.directive.d.ts +2 -2
- package/lib/form-field/{directives → component/directives}/hint.directive.d.ts +1 -1
- package/lib/form-field/component/directives/index.d.ts +15 -0
- package/lib/form-field/{directives → component/directives}/label.directive.d.ts +1 -1
- package/lib/form-field/{directives → component/directives}/prefix.directive.d.ts +1 -1
- package/lib/form-field/{directives → component/directives}/suffix.directive.d.ts +1 -1
- package/lib/form-field/{form-field.component.d.ts → component/form-field.component.d.ts} +3 -5
- package/lib/form-field/component/form-field.module.d.ts +14 -0
- package/lib/form-field/component/index.d.ts +3 -0
- package/lib/form-field/controls/checkbox/checkbox.component.d.ts +6 -2
- package/lib/form-field/controls/checkbox/checkbox.module.d.ts +1 -3
- package/lib/form-field/controls/index.d.ts +1 -0
- package/lib/form-field/controls/input/input.directive.d.ts +2 -2
- package/lib/form-field/controls/radio/radio-button/radio-button.component.d.ts +1 -1
- package/lib/form-field/controls/radio/radio-group/radio-group.directive.d.ts +2 -2
- package/lib/form-field/controls/radio/radio.module.d.ts +1 -3
- package/lib/form-field/controls/select/index.d.ts +6 -2
- package/lib/form-field/controls/select/interfaces/index.d.ts +1 -0
- package/lib/form-field/controls/select/interfaces/select-option.interface.d.ts +6 -0
- package/lib/form-field/controls/select/option/index.d.ts +1 -1
- package/lib/form-field/controls/select/option/select-option.component.d.ts +10 -49
- package/lib/form-field/controls/select/option-display/index.d.ts +1 -0
- package/lib/form-field/controls/select/option-display/select-option-display.component.d.ts +64 -0
- package/lib/form-field/controls/select/option-group/index.d.ts +1 -0
- package/lib/form-field/controls/select/option-group/select-option-group.component.d.ts +11 -0
- package/lib/form-field/controls/select/option-parent.d.ts +12 -1
- package/lib/form-field/controls/select/select.component.d.ts +113 -51
- package/lib/form-field/controls/select/select.module.d.ts +5 -6
- package/lib/form-field/controls/select/value-tags-display/index.d.ts +1 -0
- package/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.d.ts +46 -0
- package/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.d.ts +1 -1
- package/lib/form-field/controls/shared/toggle/toggle.component.d.ts +4 -1
- package/lib/form-field/controls/shared/toggle/toggle.module.d.ts +1 -2
- package/lib/form-field/controls/tag-select/index.d.ts +1 -0
- package/lib/form-field/controls/tag-select/tag-select.component.d.ts +43 -0
- package/lib/form-field/impdc-forms.d.ts +1 -2
- package/lib/form-field/impdc-forms.module.d.ts +8 -14
- package/lib/form-field/shared/error-state.mixin.d.ts +4 -4
- package/lib/icon/icon.component.d.ts +5 -3
- package/lib/index.d.ts +2 -0
- package/lib/select-icon/select-icon.module.d.ts +4 -3
- package/lib/table/interfaces/table-row-action.interface.d.ts +1 -1
- package/lib/tag/index.d.ts +1 -0
- package/lib/tag/tag.component.d.ts +54 -0
- package/lib/text-highlight/text-highlight.component.d.ts +12 -6
- package/lib/text-highlight/text-highlight.module.d.ts +1 -2
- package/package.json +2 -2
- package/esm2022/lib/form-field/directives/corner-hint.directive.mjs +0 -14
- package/esm2022/lib/form-field/directives/error.directive.mjs +0 -26
- package/esm2022/lib/form-field/directives/form-root.directive.mjs +0 -91
- package/esm2022/lib/form-field/directives/hint.directive.mjs +0 -24
- package/esm2022/lib/form-field/directives/index.mjs +0 -8
- package/esm2022/lib/form-field/directives/label.directive.mjs +0 -14
- package/esm2022/lib/form-field/directives/prefix.directive.mjs +0 -24
- package/esm2022/lib/form-field/directives/suffix.directive.mjs +0 -24
- package/esm2022/lib/form-field/form-field.component.mjs +0 -132
- package/lib/form-field/directives/index.d.ts +0 -7
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, Inject, Input, Optional, Output, Self, ViewChild, booleanAttribute, inject } from '@angular/core';
|
|
3
|
+
import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { NgbDateAdapter, NgbDropdownModule, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { nanoid } from 'nanoid';
|
|
7
|
+
import { Subject } from 'rxjs';
|
|
8
|
+
import { IMPDC_FORM_ROOT, ImpdcFormFieldControl, mixinDisabled, mixinErrorState, mixinTabIndex } from '../../../form-field';
|
|
9
|
+
import { ImpdcDatetimeFormatter } from '../../services';
|
|
10
|
+
import { DatetimePickerComponent } from '../datetime-picker/datetime-picker.component';
|
|
11
|
+
import { DatetimePickerInputFooterComponent } from '../datetime-picker-input-footer';
|
|
12
|
+
import { DEFAULT_MAX_DATE, DEFAULT_MIN_DATE } from '../../constants';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "../../../form-field";
|
|
15
|
+
import * as i2 from "@angular/forms";
|
|
16
|
+
import * as i3 from "@angular/common";
|
|
17
|
+
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
18
|
+
export const DEFAULT_POPUP_BUTTON_LABELS = {
|
|
19
|
+
cancelLabel: 'Cancel',
|
|
20
|
+
clearLabel: 'Clear',
|
|
21
|
+
saveLabel: 'Save'
|
|
22
|
+
};
|
|
23
|
+
const _DatetimePickerInputComponentBase = mixinTabIndex(mixinDisabled(mixinErrorState(class {
|
|
24
|
+
constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
25
|
+
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
26
|
+
this._formRoot = _formRoot;
|
|
27
|
+
this._parentForm = _parentForm;
|
|
28
|
+
this._parentFormGroup = _parentFormGroup;
|
|
29
|
+
this.ngControl = ngControl;
|
|
30
|
+
this.stateChanges = new Subject();
|
|
31
|
+
}
|
|
32
|
+
})));
|
|
33
|
+
/**
|
|
34
|
+
* A control for selecting date or datetime via an interactive dropdown control.
|
|
35
|
+
*
|
|
36
|
+
* Implements [ControlValueAccessor](https://angular.io/api/forms/ControlValueAccessor) to support two-way binding with
|
|
37
|
+
* Angular forms via usage of the \`[(ngModel)]\`, \`[formControl]\`, and \`[formControlName]\` directives.
|
|
38
|
+
*
|
|
39
|
+
* The date and time controls inside this component leverage the value adapter patterns and services of NG-Bootstrap's
|
|
40
|
+
* [Datepicker](https://ng-bootstrap.github.io/#/components/datepicker/overview#date-model) and
|
|
41
|
+
* [Timepicker](https://ng-bootstrap.github.io/#/components/timepicker/examples#adapter) components when working with input values.
|
|
42
|
+
* This means that `date` values will be [NgbDateStruct](https://ng-bootstrap.github.io/#/components/datepicker/api#NgbDateStruct)
|
|
43
|
+
* objects and `time` values will be [NgbTimeStruct](https://ng-bootstrap.github.io/#/components/timepicker/api#NgbTimeStruct) objects
|
|
44
|
+
* by default, and the [NgbDateAdapter](https://ng-bootstrap.github.io/#/components/datepicker/api#NgbDateAdapter) and
|
|
45
|
+
* [NgbTimeAdapter](https://ng-bootstrap.github.io/#/components/timepicker/api#NgbTimeAdapter) services will be used to handle them respectively.
|
|
46
|
+
* If usage of alternative date and time models is desired, consult NG-Bootstrap's documentation for directions.
|
|
47
|
+
*/
|
|
48
|
+
export class DatetimePickerInputComponent extends _DatetimePickerInputComponentBase {
|
|
49
|
+
/**
|
|
50
|
+
* The earliest allowable date for display or selection.
|
|
51
|
+
*
|
|
52
|
+
* @default { year: 1900, month: 1, day: 1 }
|
|
53
|
+
*/
|
|
54
|
+
get minDate() {
|
|
55
|
+
return { ...this._minDate };
|
|
56
|
+
}
|
|
57
|
+
set minDate(value) {
|
|
58
|
+
this._minDate = value || DEFAULT_MIN_DATE;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The latest allowable date for display or selection.
|
|
62
|
+
*
|
|
63
|
+
* @default { year: 2099, month: 12, day: 31 }
|
|
64
|
+
*/
|
|
65
|
+
get maxDate() {
|
|
66
|
+
return { ...this._maxDate };
|
|
67
|
+
}
|
|
68
|
+
set maxDate(value) {
|
|
69
|
+
this._maxDate = value || DEFAULT_MAX_DATE;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Object dictating the labels used for the buttons displayed in the footer of the datetime picker popup.
|
|
73
|
+
*
|
|
74
|
+
* @default { cancelLabel: "Cancel", clearLabel: "Clear", saveLabel: "Save" }
|
|
75
|
+
*/
|
|
76
|
+
get popupButtonLabels() {
|
|
77
|
+
return this._popupButtonLabels;
|
|
78
|
+
}
|
|
79
|
+
set popupButtonLabels(value) {
|
|
80
|
+
this._popupButtonLabels = {
|
|
81
|
+
...DEFAULT_POPUP_BUTTON_LABELS,
|
|
82
|
+
...value
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The placeholder text that will be displayed when no selection has been made.
|
|
87
|
+
*
|
|
88
|
+
* @default YYYY-MM-DD hh:mm
|
|
89
|
+
*/
|
|
90
|
+
get placeholder() {
|
|
91
|
+
return this._placeholder;
|
|
92
|
+
}
|
|
93
|
+
set placeholder(value) {
|
|
94
|
+
this._placeholder = value;
|
|
95
|
+
this.stateChanges.next();
|
|
96
|
+
}
|
|
97
|
+
constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
98
|
+
super(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl);
|
|
99
|
+
this._changeDetector = inject(ChangeDetectorRef);
|
|
100
|
+
this._destroyRef = inject(DestroyRef);
|
|
101
|
+
this._ngbDateAdapter = inject((NgbDateAdapter));
|
|
102
|
+
this._ngbTimeAdapter = inject((NgbTimeAdapter));
|
|
103
|
+
this._datetimeFormatter = inject(ImpdcDatetimeFormatter);
|
|
104
|
+
this._uid = `impdc-datetime-picker-input-${nanoid()}`;
|
|
105
|
+
this._dropdownOpen = false;
|
|
106
|
+
this.datetimePickerControl = new FormControl(null);
|
|
107
|
+
this.cvaOnChange = (_) => { };
|
|
108
|
+
this.cvaOnTouched = () => { };
|
|
109
|
+
this._minDate = DEFAULT_MIN_DATE;
|
|
110
|
+
this._maxDate = DEFAULT_MAX_DATE;
|
|
111
|
+
/**
|
|
112
|
+
* Set whether to display controls for selecting a time value in addition to the date.
|
|
113
|
+
*/
|
|
114
|
+
this.withTime = false;
|
|
115
|
+
/**
|
|
116
|
+
* Label to be displayed with time controls to allow the user to input 24-hour or meridian-based (AM, PM) time.
|
|
117
|
+
*/
|
|
118
|
+
this.meridianToggleLabel = 'Use 24-hour format';
|
|
119
|
+
this._popupButtonLabels = DEFAULT_POPUP_BUTTON_LABELS;
|
|
120
|
+
this._placeholder = '';
|
|
121
|
+
/**
|
|
122
|
+
* Events fire when raw value of picker input changes. Mainly exists to handle
|
|
123
|
+
* two-way binding of `value` input property.
|
|
124
|
+
* @ignore
|
|
125
|
+
*/
|
|
126
|
+
this.valueChange = new EventEmitter();
|
|
127
|
+
this._focused = false;
|
|
128
|
+
this.controlType = 'impdc-datetime-picker-input';
|
|
129
|
+
this.supportsAffixes = true;
|
|
130
|
+
/* Internals */
|
|
131
|
+
this.displayedValue = '';
|
|
132
|
+
if (this.ngControl) {
|
|
133
|
+
this.ngControl.valueAccessor = this;
|
|
134
|
+
}
|
|
135
|
+
this.id = this.id;
|
|
136
|
+
}
|
|
137
|
+
/** @ignore */
|
|
138
|
+
get empty() {
|
|
139
|
+
return !this.value;
|
|
140
|
+
}
|
|
141
|
+
/** @ignore */
|
|
142
|
+
focus(options) {
|
|
143
|
+
this._toggleButtonRef.nativeElement.focus(options);
|
|
144
|
+
}
|
|
145
|
+
/* Lifecycle Hooks */
|
|
146
|
+
/** @ignore */
|
|
147
|
+
ngDoCheck() {
|
|
148
|
+
const ngControl = this.ngControl;
|
|
149
|
+
if (!ngControl) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (this._previousControl !== ngControl.control) {
|
|
153
|
+
if (this._previousControl !== undefined &&
|
|
154
|
+
ngControl.disabled !== null &&
|
|
155
|
+
ngControl.disabled !== this.disabled) {
|
|
156
|
+
this.disabled = ngControl?.disabled;
|
|
157
|
+
}
|
|
158
|
+
this._previousControl = ngControl.control;
|
|
159
|
+
}
|
|
160
|
+
this.updateErrorState();
|
|
161
|
+
}
|
|
162
|
+
/** @ignore */
|
|
163
|
+
ngOnChanges(changes) {
|
|
164
|
+
// Managing disabled state is handled via the `mixinDisabled` mixin/generator, but we still need to signal
|
|
165
|
+
// to the parent form field so it can run change detection when disabled state is changed.
|
|
166
|
+
if (changes['disabled']) {
|
|
167
|
+
this.stateChanges.next();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** @ignore */
|
|
171
|
+
ngOnDestroy() {
|
|
172
|
+
this.stateChanges.complete();
|
|
173
|
+
}
|
|
174
|
+
/** @ignore */
|
|
175
|
+
ngOnInit() {
|
|
176
|
+
this.datetimePickerControl.valueChanges
|
|
177
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
178
|
+
.subscribe(v => {
|
|
179
|
+
this.cvaOnChange(v);
|
|
180
|
+
this.valueChange.emit(v);
|
|
181
|
+
this._updateDisplayedValue(v);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/* ControlValueAccessor */
|
|
185
|
+
/** @ignore */
|
|
186
|
+
writeValue(obj) {
|
|
187
|
+
this.datetimePickerControl.setValue(obj, { emitEvent: false });
|
|
188
|
+
this._changeDetector.markForCheck();
|
|
189
|
+
}
|
|
190
|
+
/** @ignore */
|
|
191
|
+
registerOnChange(fn) {
|
|
192
|
+
this.cvaOnChange = fn;
|
|
193
|
+
}
|
|
194
|
+
/** @ignore */
|
|
195
|
+
registerOnTouched(fn) {
|
|
196
|
+
this.cvaOnTouched = fn;
|
|
197
|
+
}
|
|
198
|
+
/** @ignore */
|
|
199
|
+
setDisabledState(isDisabled) {
|
|
200
|
+
this.disabled = isDisabled;
|
|
201
|
+
if (isDisabled) {
|
|
202
|
+
this.datetimePickerControl.disable();
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.datetimePickerControl.enable();
|
|
206
|
+
}
|
|
207
|
+
this._changeDetector.markForCheck();
|
|
208
|
+
}
|
|
209
|
+
/* ImpdcFormFieldControl */
|
|
210
|
+
get value() {
|
|
211
|
+
return this.datetimePickerControl.value;
|
|
212
|
+
}
|
|
213
|
+
set value(value) {
|
|
214
|
+
if (value !== this.datetimePickerControl.value) {
|
|
215
|
+
this.datetimePickerControl.setValue(value);
|
|
216
|
+
this.stateChanges.next();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
get id() {
|
|
220
|
+
return this._id;
|
|
221
|
+
}
|
|
222
|
+
set id(value) {
|
|
223
|
+
this._id = value || this._uid;
|
|
224
|
+
this.stateChanges.next();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Used to set requiredness of control in a template-based manner;
|
|
228
|
+
* not necessary when using the Angular reactive forms API and `required` validator.
|
|
229
|
+
*
|
|
230
|
+
* @default false
|
|
231
|
+
*/
|
|
232
|
+
get required() {
|
|
233
|
+
return (this._required ??
|
|
234
|
+
this.ngControl?.control?.hasValidator(Validators.required) ??
|
|
235
|
+
false);
|
|
236
|
+
}
|
|
237
|
+
set required(value) {
|
|
238
|
+
this._required = value;
|
|
239
|
+
this.stateChanges.next();
|
|
240
|
+
}
|
|
241
|
+
get focused() {
|
|
242
|
+
return this._focused || this._dropdownOpen;
|
|
243
|
+
}
|
|
244
|
+
get placeholderText() {
|
|
245
|
+
return (this.placeholder?.trim() || `YYYY-MM-DD${this.withTime ? ' hh:mm' : ''}`);
|
|
246
|
+
}
|
|
247
|
+
updateValue(newValue) {
|
|
248
|
+
this.datetimePickerControl.setValue(newValue);
|
|
249
|
+
}
|
|
250
|
+
handleOpenChange(isOpen) {
|
|
251
|
+
this._dropdownOpen = isOpen;
|
|
252
|
+
if (isOpen) {
|
|
253
|
+
this._onFocus();
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
this._onBlur();
|
|
257
|
+
}
|
|
258
|
+
this.stateChanges.next();
|
|
259
|
+
}
|
|
260
|
+
_onFocus() {
|
|
261
|
+
if (!this.disabled) {
|
|
262
|
+
this._focused = true;
|
|
263
|
+
this.stateChanges.next();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
_onBlur() {
|
|
267
|
+
this._focused = false;
|
|
268
|
+
if (!this.disabled && !this._dropdownOpen) {
|
|
269
|
+
this.cvaOnTouched();
|
|
270
|
+
this._changeDetector.markForCheck();
|
|
271
|
+
this.stateChanges.next();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
_updateDisplayedValue(datetimePickerValue) {
|
|
275
|
+
let newValue = '';
|
|
276
|
+
if (datetimePickerValue) {
|
|
277
|
+
const convertedDateValue = this._ngbDateAdapter.fromModel(datetimePickerValue.date);
|
|
278
|
+
if (convertedDateValue) {
|
|
279
|
+
newValue = this._datetimeFormatter.format(convertedDateValue, {
|
|
280
|
+
value: this.withTime
|
|
281
|
+
? this._ngbTimeAdapter.fromModel(datetimePickerValue.time)
|
|
282
|
+
: null,
|
|
283
|
+
withSeconds: false
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
this.displayedValue = newValue;
|
|
288
|
+
}
|
|
289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerInputComponent, deps: [{ token: i1.ErrorStateMatcher }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
290
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.1", type: DatetimePickerInputComponent, isStandalone: true, selector: "impdc-datetime-picker-input", inputs: { disabled: "disabled", tabIndex: "tabIndex", markDateDisabled: "markDateDisabled", minDate: "minDate", maxDate: "maxDate", withTime: "withTime", meridianToggleLabel: "meridianToggleLabel", popupButtonLabels: "popupButtonLabels", placeholder: "placeholder", errorStateMatcher: "errorStateMatcher", value: "value", id: "id", required: ["required", "required", booleanAttribute] }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focus": "_onFocus(); focus()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.form-control": "true", "class.is-invalid": "errorState", "class.impdc-form-field-control": "true", "class.impdc-datetime-picker-input--required": "required", "class.impdc-datetime-picker-input--disabled": "disabled", "class.impdc-datetime-picker-input--invalid": "errorState", "class.impdc-datetime-picker-input--empty": "empty" } }, providers: [
|
|
291
|
+
{
|
|
292
|
+
provide: ImpdcFormFieldControl,
|
|
293
|
+
useExisting: DatetimePickerInputComponent
|
|
294
|
+
}
|
|
295
|
+
], viewQueries: [{ propertyName: "_toggleButtonRef", first: true, predicate: ["toggleButton"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n ngbDropdown\n #ngbDropdown=\"ngbDropdown\"\n autoClose=\"outside\"\n container=\"body\"\n dropdownClass=\"impartner-hex\"\n placement=\"bottom bottom-start bottom-end top top-start top-end\"\n (openChange)=\"handleOpenChange($event)\"\n class=\"h-100 w-100\">\n <button\n #toggleButton\n class=\"impdc-datetime-picker--toggle btn border-0 h-100 text-start\"\n type=\"button\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n (focus)=\"_onFocus()\"\n ngbDropdownToggle>\n @if (!displayedValue) {\n <span\n class=\"impdc-datetime-picker--text impdc-datetime-picker--placeholder\"\n >{{ placeholderText }}</span\n >\n } @else {\n <span\n class=\"impdc-datetime-picker--text impdc-datetime-picker--value-text\"\n >{{ displayedValue }}</span\n >\n }\n </button>\n <div\n ngbDropdownMenu\n class=\"impdc-datetime-picker--dropdown w-100 bg-white overflow-y-visible text-gray-600\"\n tabindex=\"-1\">\n <ng-container *ngIf=\"ngbDropdown.isOpen()\">\n <impdc-datetime-picker\n #picker\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [markDateDisabled]=\"markDateDisabled\"\n [withTime]=\"withTime\"\n [meridianToggleLabel]=\"meridianToggleLabel\"\n [timeLayout]=\"{ layout: 'stacked', border: true }\" />\n <div\n class=\"border-gray-200 border-top d-flex flex-column gap-4 mt-2 p-4 w-100\">\n <impdc-datetime-picker-input-footer\n [datetimePicker]=\"picker\"\n [initialValue]=\"datetimePickerControl.value\"\n [cancelLabel]=\"popupButtonLabels.cancelLabel\"\n [clearLabel]=\"popupButtonLabels.clearLabel\"\n [saveLabel]=\"popupButtonLabels.saveLabel\"\n (datetimeSelected)=\"updateValue($event)\"\n (closeRequested)=\"ngbDropdown.close()\" />\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{--impartner-hex-form-select-bg-img: none;padding:0!important;position:relative}:host.impdc-datetime-picker--disabled{background-color:var(--impd-color-gray-100)}.impdc-datetime-picker--toggle{font-weight:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.impdc-datetime-picker--toggle :host-context(.is-invalid){padding-right:3rem}.impdc-datetime-picker--toggle:disabled{cursor:default}.impdc-datetime-picker--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.impdc-datetime-picker--placeholder{color:var(--impd-color-gray-400)}.impdc-datetime-picker--dropdown{max-height:unset}button[ngbDropdownToggle].dropdown-toggle:after{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: DatetimePickerComponent, selector: "impdc-datetime-picker", inputs: ["disabled", "tabIndex", "markDateDisabled", "minDate", "maxDate", "timeLayout", "meridianToggleLabel", "withTime", "errorStateMatcher", "value", "id", "required"], outputs: ["valueChange", "blur"] }, { kind: "component", type: DatetimePickerInputFooterComponent, selector: "impdc-datetime-picker-input-footer", inputs: ["datetimePicker", "initialValue", "cancelLabel", "clearLabel", "saveLabel"], outputs: ["datetimeSelected", "closeRequested"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
296
|
+
}
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerInputComponent, decorators: [{
|
|
298
|
+
type: Component,
|
|
299
|
+
args: [{ selector: 'impdc-datetime-picker-input', standalone: true, imports: [
|
|
300
|
+
CommonModule,
|
|
301
|
+
ReactiveFormsModule,
|
|
302
|
+
DatetimePickerComponent,
|
|
303
|
+
DatetimePickerInputFooterComponent,
|
|
304
|
+
NgbDropdownModule
|
|
305
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disabled', 'tabIndex'], host: {
|
|
306
|
+
'[attr.id]': 'id',
|
|
307
|
+
'[attr.tabindex]': 'tabIndex',
|
|
308
|
+
'[attr.aria-required]': 'required.toString()',
|
|
309
|
+
'[attr.aria-disabled]': 'disabled.toString()',
|
|
310
|
+
'[attr.aria-invalid]': 'errorState',
|
|
311
|
+
'[class.form-control]': 'true',
|
|
312
|
+
'[class.is-invalid]': 'errorState',
|
|
313
|
+
'[class.impdc-form-field-control]': 'true',
|
|
314
|
+
'[class.impdc-datetime-picker-input--required]': 'required',
|
|
315
|
+
'[class.impdc-datetime-picker-input--disabled]': 'disabled',
|
|
316
|
+
'[class.impdc-datetime-picker-input--invalid]': 'errorState',
|
|
317
|
+
'[class.impdc-datetime-picker-input--empty]': 'empty',
|
|
318
|
+
'(focus)': '_onFocus(); focus()'
|
|
319
|
+
}, providers: [
|
|
320
|
+
{
|
|
321
|
+
provide: ImpdcFormFieldControl,
|
|
322
|
+
useExisting: DatetimePickerInputComponent
|
|
323
|
+
}
|
|
324
|
+
], template: "<div\n ngbDropdown\n #ngbDropdown=\"ngbDropdown\"\n autoClose=\"outside\"\n container=\"body\"\n dropdownClass=\"impartner-hex\"\n placement=\"bottom bottom-start bottom-end top top-start top-end\"\n (openChange)=\"handleOpenChange($event)\"\n class=\"h-100 w-100\">\n <button\n #toggleButton\n class=\"impdc-datetime-picker--toggle btn border-0 h-100 text-start\"\n type=\"button\"\n role=\"combobox\"\n [disabled]=\"disabled\"\n (focus)=\"_onFocus()\"\n ngbDropdownToggle>\n @if (!displayedValue) {\n <span\n class=\"impdc-datetime-picker--text impdc-datetime-picker--placeholder\"\n >{{ placeholderText }}</span\n >\n } @else {\n <span\n class=\"impdc-datetime-picker--text impdc-datetime-picker--value-text\"\n >{{ displayedValue }}</span\n >\n }\n </button>\n <div\n ngbDropdownMenu\n class=\"impdc-datetime-picker--dropdown w-100 bg-white overflow-y-visible text-gray-600\"\n tabindex=\"-1\">\n <ng-container *ngIf=\"ngbDropdown.isOpen()\">\n <impdc-datetime-picker\n #picker\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [markDateDisabled]=\"markDateDisabled\"\n [withTime]=\"withTime\"\n [meridianToggleLabel]=\"meridianToggleLabel\"\n [timeLayout]=\"{ layout: 'stacked', border: true }\" />\n <div\n class=\"border-gray-200 border-top d-flex flex-column gap-4 mt-2 p-4 w-100\">\n <impdc-datetime-picker-input-footer\n [datetimePicker]=\"picker\"\n [initialValue]=\"datetimePickerControl.value\"\n [cancelLabel]=\"popupButtonLabels.cancelLabel\"\n [clearLabel]=\"popupButtonLabels.clearLabel\"\n [saveLabel]=\"popupButtonLabels.saveLabel\"\n (datetimeSelected)=\"updateValue($event)\"\n (closeRequested)=\"ngbDropdown.close()\" />\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{--impartner-hex-form-select-bg-img: none;padding:0!important;position:relative}:host.impdc-datetime-picker--disabled{background-color:var(--impd-color-gray-100)}.impdc-datetime-picker--toggle{font-weight:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.impdc-datetime-picker--toggle :host-context(.is-invalid){padding-right:3rem}.impdc-datetime-picker--toggle:disabled{cursor:default}.impdc-datetime-picker--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.impdc-datetime-picker--placeholder{color:var(--impd-color-gray-400)}.impdc-datetime-picker--dropdown{max-height:unset}button[ngbDropdownToggle].dropdown-toggle:after{display:none}\n"] }]
|
|
325
|
+
}], ctorParameters: () => [{ type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
326
|
+
type: Optional
|
|
327
|
+
}, {
|
|
328
|
+
type: Inject,
|
|
329
|
+
args: [IMPDC_FORM_ROOT]
|
|
330
|
+
}] }, { type: i2.NgForm, decorators: [{
|
|
331
|
+
type: Optional
|
|
332
|
+
}] }, { type: i2.FormGroupDirective, decorators: [{
|
|
333
|
+
type: Optional
|
|
334
|
+
}] }, { type: i2.NgControl, decorators: [{
|
|
335
|
+
type: Self
|
|
336
|
+
}, {
|
|
337
|
+
type: Optional
|
|
338
|
+
}] }], propDecorators: { _toggleButtonRef: [{
|
|
339
|
+
type: ViewChild,
|
|
340
|
+
args: ['toggleButton', { static: true, read: ElementRef }]
|
|
341
|
+
}], markDateDisabled: [{
|
|
342
|
+
type: Input
|
|
343
|
+
}], minDate: [{
|
|
344
|
+
type: Input
|
|
345
|
+
}], maxDate: [{
|
|
346
|
+
type: Input
|
|
347
|
+
}], withTime: [{
|
|
348
|
+
type: Input
|
|
349
|
+
}], meridianToggleLabel: [{
|
|
350
|
+
type: Input
|
|
351
|
+
}], popupButtonLabels: [{
|
|
352
|
+
type: Input
|
|
353
|
+
}], placeholder: [{
|
|
354
|
+
type: Input
|
|
355
|
+
}], errorStateMatcher: [{
|
|
356
|
+
type: Input
|
|
357
|
+
}], valueChange: [{
|
|
358
|
+
type: Output
|
|
359
|
+
}], value: [{
|
|
360
|
+
type: Input
|
|
361
|
+
}], id: [{
|
|
362
|
+
type: Input
|
|
363
|
+
}], required: [{
|
|
364
|
+
type: Input,
|
|
365
|
+
args: [{ transform: booleanAttribute }]
|
|
366
|
+
}] } });
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyLWlucHV0L2RhdGV0aW1lLXBpY2tlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci1pbnB1dC9kYXRldGltZS1waWNrZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBRVYsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUVKLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxXQUFXLEVBSVgsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxjQUFjLEVBRWQsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBSUwsZUFB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QUFlOzswQkFDbEMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQUksUUFBUTt5Q0E1R1QsZ0JBQWdCO3NCQUR6QixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFXdEQsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVlLLE9BQU87c0JBRGpCLEtBQUs7Z0JBZUssT0FBTztzQkFEakIsS0FBSztnQkFhQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsbUJBQW1CO3NCQUR6QixLQUFLO2dCQVNLLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFvQkssV0FBVztzQkFEckIsS0FBSztnQkFXVSxpQkFBaUI7c0JBRGhDLEtBQUs7Z0JBU1UsV0FBVztzQkFEMUIsTUFBTTtnQkEwSEksS0FBSztzQkFEZixLQUFLO2dCQVlLLEVBQUU7c0JBRFosS0FBSztnQkFpQkssUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElEYXRldGltZVBpY2tlclZhbHVlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgTmdiRGF0ZUFkYXB0ZXIsXG4gIE5nYkRhdGVTdHJ1Y3QsXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxuICBOZ2JUaW1lQWRhcHRlclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSU1QRENfRk9STV9ST09ULFxuICBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gIEltcGRjRm9ybVJvb3QsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEltcGRjRGF0ZXRpbWVGb3JtYXR0ZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGV0aW1lUGlja2VySW5wdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyJztcbmltcG9ydCB7IERFRkFVTFRfTUFYX0RBVEUsIERFRkFVTFRfTUlOX0RBVEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRldGltZVBpY2tlclBvcHVwQnV0dG9uTGFiZWxzIHtcbiAgcmVhZG9ubHkgY2FuY2VsTGFiZWw6IHN0cmluZztcbiAgcmVhZG9ubHkgY2xlYXJMYWJlbDogc3RyaW5nO1xuICByZWFkb25seSBzYXZlTGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9QVVBfQlVUVE9OX0xBQkVMUzogSURhdGV0aW1lUGlja2VyUG9wdXBCdXR0b25MYWJlbHMgPSB7XG4gIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgY2xlYXJMYWJlbDogJ0NsZWFyJyxcbiAgc2F2ZUxhYmVsOiAnU2F2ZSdcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IF9EYXRldGltZVBpY2tlcklucHV0Q29tcG9uZW50QmFzZSA9IG1peGluVGFiSW5kZXgoXG4gIG1peGluRGlzYWJsZWQoXG4gICAgbWl4aW5FcnJvclN0YXRlKFxuICAgICAgY2xhc3Mge1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICAgICAgcHVibGljIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgICAgICAgKSB7fVxuICAgICAgfVxuICAgIClcbiAgKVxuKTtcblxuLyoqXG4gKiBBIGNvbnRyb2wgZm9yIHNlbGVjdGluZyBkYXRlIG9yIGRhdGV0aW1lIHZpYSBhbiBpbnRlcmFjdGl2ZSBkcm9wZG93biBjb250cm9sLlxuICpcbiAqIEltcGxlbWVudHMgW0NvbnRyb2xWYWx1ZUFjY2Vzc29yXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL0NvbnRyb2xWYWx1ZUFjY2Vzc29yKSB0byBzdXBwb3J0IHR3by13YXkgYmluZGluZyB3aXRoXG4gKiBBbmd1bGFyIGZvcm1zIHZpYSB1c2FnZSBvZiB0aGUgXFxgWyhuZ01vZGVsKV1cXGAsIFxcYFtmb3JtQ29udHJvbF1cXGAsIGFuZCBcXGBbZm9ybUNvbnRyb2xOYW1lXVxcYCBkaXJlY3RpdmVzLlxuICpcbiAqIFRoZSBkYXRlIGFuZCB0aW1lIGNvbnRyb2xzIGluc2lkZSB0aGlzIGNvbXBvbmVudCBsZXZlcmFnZSB0aGUgdmFsdWUgYWRhcHRlciBwYXR0ZXJucyBhbmQgc2VydmljZXMgb2YgTkctQm9vdHN0cmFwJ3NcbiAqIFtEYXRlcGlja2VyXShodHRwczovL25nLWJvb3RzdHJhcC5naXRodWIuaW8vIy9jb21wb25lbnRzL2RhdGVwaWNrZXIvb3ZlcnZpZXcjZGF0ZS1tb2RlbCkgYW5kXG4gKiBbVGltZXBpY2tlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy90aW1lcGlja2VyL2V4YW1wbGVzI2FkYXB0ZXIpIGNvbXBvbmVudHMgd2hlbiB3b3JraW5nIHdpdGggaW5wdXQgdmFsdWVzLlxuICogVGhpcyBtZWFucyB0aGF0IGBkYXRlYCB2YWx1ZXMgd2lsbCBiZSBbTmdiRGF0ZVN0cnVjdF0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL2FwaSNOZ2JEYXRlU3RydWN0KVxuICogb2JqZWN0cyBhbmQgYHRpbWVgIHZhbHVlcyB3aWxsIGJlIFtOZ2JUaW1lU3RydWN0XShodHRwczovL25nLWJvb3RzdHJhcC5naXRodWIuaW8vIy9jb21wb25lbnRzL3RpbWVwaWNrZXIvYXBpI05nYlRpbWVTdHJ1Y3QpIG9iamVjdHNcbiAqIGJ5IGRlZmF1bHQsIGFuZCB0aGUgW05nYkRhdGVBZGFwdGVyXShodHRwczovL25nLWJvb3RzdHJhcC5naXRodWIuaW8vIy9jb21wb25lbnRzL2RhdGVwaWNrZXIvYXBpI05nYkRhdGVBZGFwdGVyKSBhbmRcbiAqIFtOZ2JUaW1lQWRhcHRlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy90aW1lcGlja2VyL2FwaSNOZ2JUaW1lQWRhcHRlcikgc2VydmljZXMgd2lsbCBiZSB1c2VkIHRvIGhhbmRsZSB0aGVtIHJlc3BlY3RpdmVseS5cbiAqIElmIHVzYWdlIG9mIGFsdGVybmF0aXZlIGRhdGUgYW5kIHRpbWUgbW9kZWxzIGlzIGRlc2lyZWQsIGNvbnN1bHQgTkctQm9vdHN0cmFwJ3MgZG9jdW1lbnRhdGlvbiBmb3IgZGlyZWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZGF0ZXRpbWUtcGlja2VyLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERhdGV0aW1lUGlja2VyQ29tcG9uZW50LFxuICAgIERhdGV0aW1lUGlja2VySW5wdXRGb290ZXJDb21wb25lbnQsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5pcy1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmltcGRjLWZvcm0tZmllbGQtY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1kYXRldGltZS1waWNrZXItaW5wdXQtLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1kYXRldGltZS1waWNrZXItaW5wdXQtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1kYXRldGltZS1waWNrZXItaW5wdXQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZGF0ZXRpbWUtcGlja2VyLWlucHV0LS1lbXB0eV0nOiAnZW1wdHknLFxuICAgICcoZm9jdXMpJzogJ19vbkZvY3VzKCk7IGZvY3VzKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEltcGRjRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBEYXRldGltZVBpY2tlcklucHV0Q29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUGlja2VySW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfRGF0ZXRpbWVQaWNrZXJJbnB1dENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50c1xuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIERvQ2hlY2ssXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGw+LFxuICAgIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICAgIElIYXNFcnJvclN0YXRlXG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdiRGF0ZUFkYXB0ZXIgPSBpbmplY3QoTmdiRGF0ZUFkYXB0ZXI8YW55Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nYlRpbWVBZGFwdGVyID0gaW5qZWN0KE5nYlRpbWVBZGFwdGVyPGFueT4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRldGltZUZvcm1hdHRlciA9IGluamVjdChJbXBkY0RhdGV0aW1lRm9ybWF0dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkID0gYGltcGRjLWRhdGV0aW1lLXBpY2tlci1pbnB1dC0ke25hbm9pZCgpfWA7XG4gIHByaXZhdGUgX3ByZXZpb3VzQ29udHJvbD86IEFic3RyYWN0Q29udHJvbCB8IG51bGw7XG4gIHByaXZhdGUgX2Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRldGltZVBpY2tlckNvbnRyb2wgPVxuICAgIG5ldyBGb3JtQ29udHJvbDxJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxhbnksIGFueT4gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGN2YU9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIHByb3RlY3RlZCBjdmFPblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBAVmlld0NoaWxkKCd0b2dnbGVCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgX3RvZ2dsZUJ1dHRvblJlZiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGV2YWx1YXRlZCB0byBkZWNpZGUgaWYgYSBnaXZlbiBkYXRlIGlzIGRpc2FibGVkXG4gICAqIGluIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0ZSBBbiBbYE5nYkRhdGVgXShodHRwczovL25nLWJvb3RzdHJhcC5naXRodWIuaW8vIy9jb21wb25lbnRzL2RhdGVwaWNrZXIvYXBpI05nYkRhdGUpIHZhbHVlIGRlc2NyaWJpbmcgdGhlIHNpbmd1bGFyIGRhdGUgYmVpbmcgZXZhbHVhdGVkLlxuICAgKiBAcGFyYW0gY3VycmVudCBUaGUgbW9udGggYW5kIHllYXIgc2VsZWN0ZWQgZm9yIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFya0RhdGVEaXNhYmxlZD86IChcbiAgICBkYXRlOiBOZ2JEYXRlU3RydWN0LFxuICAgIGN1cnJlbnQ/OiB7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9XG4gICkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGVhcmxpZXN0IGFsbG93YWJsZSBkYXRlIGZvciBkaXNwbGF5IG9yIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgeyB5ZWFyOiAxOTAwLCBtb250aDogMSwgZGF5OiAxIH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluRGF0ZSgpOiBOZ2JEYXRlU3RydWN0IHtcbiAgICByZXR1cm4geyAuLi50aGlzLl9taW5EYXRlIH07XG4gIH1cbiAgcHVibGljIHNldCBtaW5EYXRlKHZhbHVlOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCkge1xuICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZSB8fCBERUZBVUxUX01JTl9EQVRFO1xuICB9XG4gIHByaXZhdGUgX21pbkRhdGU6IE5nYkRhdGVTdHJ1Y3QgPSBERUZBVUxUX01JTl9EQVRFO1xuXG4gIC8qKlxuICAgKiBUaGUgbGF0ZXN0IGFsbG93YWJsZSBkYXRlIGZvciBkaXNwbGF5IG9yIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgeyB5ZWFyOiAyMDk5LCBtb250aDogMTIsIGRheTogMzEgfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtYXhEYXRlKCk6IE5nYkRhdGVTdHJ1Y3Qge1xuICAgIHJldHVybiB7IC4uLnRoaXMuX21heERhdGUgfTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heERhdGUodmFsdWU6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XG4gICAgdGhpcy5fbWF4RGF0ZSA9IHZhbHVlIHx8IERFRkFVTFRfTUFYX0RBVEU7XG4gIH1cbiAgcHJpdmF0ZSBfbWF4RGF0ZTogTmdiRGF0ZVN0cnVjdCA9IERFRkFVTFRfTUFYX0RBVEU7XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRvIGRpc3BsYXkgY29udHJvbHMgZm9yIHNlbGVjdGluZyBhIHRpbWUgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgd2l0aFRpbWUgPSBmYWxzZTtcblxuICAvKipcbiAgICogTGFiZWwgdG8gYmUgZGlzcGxheWVkIHdpdGggdGltZSBjb250cm9scyB0byBhbGxvdyB0aGUgdXNlciB0byBpbnB1dCAyNC1ob3VyIG9yIG1lcmlkaWFuLWJhc2VkIChBTSwgUE0pIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVyaWRpYW5Ub2dnbGVMYWJlbDogc3RyaW5nID0gJ1VzZSAyNC1ob3VyIGZvcm1hdCc7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBkaWN0YXRpbmcgdGhlIGxhYmVscyB1c2VkIGZvciB0aGUgYnV0dG9ucyBkaXNwbGF5ZWQgaW4gdGhlIGZvb3RlciBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyIHBvcHVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7IGNhbmNlbExhYmVsOiBcIkNhbmNlbFwiLCBjbGVhckxhYmVsOiBcIkNsZWFyXCIsIHNhdmVMYWJlbDogXCJTYXZlXCIgfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwb3B1cEJ1dHRvbkxhYmVscygpOiBJRGF0ZXRpbWVQaWNrZXJQb3B1cEJ1dHRvbkxhYmVscyB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcHVwQnV0dG9uTGFiZWxzO1xuICB9XG4gIHB1YmxpYyBzZXQgcG9wdXBCdXR0b25MYWJlbHMoXG4gICAgdmFsdWU6IFBhcnRpYWw8SURhdGV0aW1lUGlja2VyUG9wdXBCdXR0b25MYWJlbHM+XG4gICkge1xuICAgIHRoaXMuX3BvcHVwQnV0dG9uTGFiZWxzID0ge1xuICAgICAgLi4uREVGQVVMVF9QT1BVUF9CVVRUT05fTEFCRUxTLFxuICAgICAgLi4udmFsdWVcbiAgICB9O1xuICB9XG4gIHByaXZhdGUgX3BvcHVwQnV0dG9uTGFiZWxzID0gREVGQVVMVF9QT1BVUF9CVVRUT05fTEFCRUxTO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2Vob2xkZXIgdGV4dCB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gbm8gc2VsZWN0aW9uIGhhcyBiZWVuIG1hZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFlZWVktTU0tREQgaGg6bW1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIgPSAnJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZXJyb3JTdGF0ZU1hdGNoZXIhOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICAvKipcbiAgICogRXZlbnRzIGZpcmUgd2hlbiByYXcgdmFsdWUgb2YgcGlja2VyIGlucHV0IGNoYW5nZXMuIE1haW5seSBleGlzdHMgdG8gaGFuZGxlXG4gICAqIHR3by13YXkgYmluZGluZyBvZiBgdmFsdWVgIGlucHV0IHByb3BlcnR5LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SURhdGV0aW1lUGlja2VyVmFsdWU8XG4gICAgYW55LFxuICAgIGFueVxuICA+IHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGw+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChJTVBEQ19GT1JNX1JPT1QpIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICBAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX3RvZ2dsZUJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyogTGlmZWN5Y2xlIEhvb2tzICovXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLm5nQ29udHJvbDtcblxuICAgIGlmICghbmdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3ByZXZpb3VzQ29udHJvbCAhPT0gbmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fcHJldmlvdXNDb250cm9sICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgbmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsICYmXG4gICAgICAgIG5nQ29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5kaXNhYmxlZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBuZ0NvbnRyb2w/LmRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9wcmV2aW91c0NvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbDtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gTWFuYWdpbmcgZGlzYWJsZWQgc3RhdGUgaXMgaGFuZGxlZCB2aWEgdGhlIGBtaXhpbkRpc2FibGVkYCBtaXhpbi9nZW5lcmF0b3IsIGJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHNpZ25hbFxuICAgIC8vIHRvIHRoZSBwYXJlbnQgZm9ybSBmaWVsZCBzbyBpdCBjYW4gcnVuIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBkaXNhYmxlZCBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kYXRldGltZVBpY2tlckNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICB0aGlzLmN2YU9uQ2hhbmdlKHYpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgICAgIHRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlKHYpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5kYXRldGltZVBpY2tlckNvbnRyb2wuc2V0VmFsdWUob2JqLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmN2YU9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmRhdGV0aW1lUGlja2VyQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXJDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyogSW1wZGNGb3JtRmllbGRDb250cm9sICovXG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxhbnksIGFueT4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kYXRldGltZVBpY2tlckNvbnRyb2wudmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5kYXRldGltZVBpY2tlckNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXJDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2lkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNldCByZXF1aXJlZG5lc3Mgb2YgY29udHJvbCBpbiBhIHRlbXBsYXRlLWJhc2VkIG1hbm5lcjtcbiAgICogbm90IG5lY2Vzc2FyeSB3aGVuIHVzaW5nIHRoZSBBbmd1bGFyIHJlYWN0aXZlIGZvcm1zIEFQSSBhbmQgYHJlcXVpcmVkYCB2YWxpZGF0b3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkIHx8IHRoaXMuX2Ryb3Bkb3duT3BlbjtcbiAgfVxuICBwcm90ZWN0ZWQgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1kYXRldGltZS1waWNrZXItaW5wdXQnO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNBZmZpeGVzOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiBJbnRlcm5hbHMgKi9cblxuICBwcm90ZWN0ZWQgZGlzcGxheWVkVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBnZXQgcGxhY2Vob2xkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucGxhY2Vob2xkZXI/LnRyaW0oKSB8fCBgWVlZWS1NTS1ERCR7dGhpcy53aXRoVGltZSA/ICcgaGg6bW0nIDogJyd9YFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUobmV3VmFsdWU6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGV0aW1lUGlja2VyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9kcm9wZG93bk9wZW4gPSBpc09wZW47XG5cbiAgICBpZiAoaXNPcGVuKSB7XG4gICAgICB0aGlzLl9vbkZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29uQmx1cigpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5fZHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLmN2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlzcGxheWVkVmFsdWUoXG4gICAgZGF0ZXRpbWVQaWNrZXJWYWx1ZTogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbFxuICApOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWUgPSAnJztcbiAgICBpZiAoZGF0ZXRpbWVQaWNrZXJWYWx1ZSkge1xuICAgICAgY29uc3QgY29udmVydGVkRGF0ZVZhbHVlID0gdGhpcy5fbmdiRGF0ZUFkYXB0ZXIuZnJvbU1vZGVsKFxuICAgICAgICBkYXRldGltZVBpY2tlclZhbHVlLmRhdGVcbiAgICAgICk7XG5cbiAgICAgIGlmIChjb252ZXJ0ZWREYXRlVmFsdWUpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9kYXRldGltZUZvcm1hdHRlci5mb3JtYXQoY29udmVydGVkRGF0ZVZhbHVlLCB7XG4gICAgICAgICAgdmFsdWU6IHRoaXMud2l0aFRpbWVcbiAgICAgICAgICAgID8gdGhpcy5fbmdiVGltZUFkYXB0ZXIuZnJvbU1vZGVsKGRhdGV0aW1lUGlja2VyVmFsdWUudGltZSlcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICB3aXRoU2Vjb25kczogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5ZWRWYWx1ZSA9IG5ld1ZhbHVlO1xuICB9XG59XG4iLCI8ZGl2XG4gIG5nYkRyb3Bkb3duXG4gICNuZ2JEcm9wZG93bj1cIm5nYkRyb3Bkb3duXCJcbiAgYXV0b0Nsb3NlPVwib3V0c2lkZVwiXG4gIGNvbnRhaW5lcj1cImJvZHlcIlxuICBkcm9wZG93bkNsYXNzPVwiaW1wYXJ0bmVyLWhleFwiXG4gIHBsYWNlbWVudD1cImJvdHRvbSBib3R0b20tc3RhcnQgYm90dG9tLWVuZCB0b3AgdG9wLXN0YXJ0IHRvcC1lbmRcIlxuICAob3BlbkNoYW5nZSk9XCJoYW5kbGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICBjbGFzcz1cImgtMTAwIHctMTAwXCI+XG4gIDxidXR0b25cbiAgICAjdG9nZ2xlQnV0dG9uXG4gICAgY2xhc3M9XCJpbXBkYy1kYXRldGltZS1waWNrZXItLXRvZ2dsZSBidG4gYm9yZGVyLTAgaC0xMDAgdGV4dC1zdGFydFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCJcbiAgICBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICBAaWYgKCFkaXNwbGF5ZWRWYWx1ZSkge1xuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImltcGRjLWRhdGV0aW1lLXBpY2tlci0tdGV4dCBpbXBkYy1kYXRldGltZS1waWNrZXItLXBsYWNlaG9sZGVyXCJcbiAgICAgID57eyBwbGFjZWhvbGRlclRleHQgfX08L3NwYW5cbiAgICA+XG4gICAgfSBAZWxzZSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXRpbWUtcGlja2VyLS10ZXh0IGltcGRjLWRhdGV0aW1lLXBpY2tlci0tdmFsdWUtdGV4dFwiXG4gICAgICA+e3sgZGlzcGxheWVkVmFsdWUgfX08L3NwYW5cbiAgICA+XG4gICAgfVxuICA8L2J1dHRvbj5cbiAgPGRpdlxuICAgIG5nYkRyb3Bkb3duTWVudVxuICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXRpbWUtcGlja2VyLS1kcm9wZG93biB3LTEwMCBiZy13aGl0ZSBvdmVyZmxvdy15LXZpc2libGUgdGV4dC1ncmF5LTYwMFwiXG4gICAgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZ2JEcm9wZG93bi5pc09wZW4oKVwiPlxuICAgICAgPGltcGRjLWRhdGV0aW1lLXBpY2tlclxuICAgICAgICAjcGlja2VyXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21hcmtEYXRlRGlzYWJsZWRdPVwibWFya0RhdGVEaXNhYmxlZFwiXG4gICAgICAgIFt3aXRoVGltZV09XCJ3aXRoVGltZVwiXG4gICAgICAgIFttZXJpZGlhblRvZ2dsZUxhYmVsXT1cIm1lcmlkaWFuVG9nZ2xlTGFiZWxcIlxuICAgICAgICBbdGltZUxheW91dF09XCJ7IGxheW91dDogJ3N0YWNrZWQnLCBib3JkZXI6IHRydWUgfVwiIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYm9yZGVyLWdyYXktMjAwIGJvcmRlci10b3AgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IG10LTIgcC00IHctMTAwXCI+XG4gICAgICAgIDxpbXBkYy1kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyXG4gICAgICAgICAgW2RhdGV0aW1lUGlja2VyXT1cInBpY2tlclwiXG4gICAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJkYXRldGltZVBpY2tlckNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgIFtjYW5jZWxMYWJlbF09XCJwb3B1cEJ1dHRvbkxhYmVscy5jYW5jZWxMYWJlbFwiXG4gICAgICAgICAgW2NsZWFyTGFiZWxdPVwicG9wdXBCdXR0b25MYWJlbHMuY2xlYXJMYWJlbFwiXG4gICAgICAgICAgW3NhdmVMYWJlbF09XCJwb3B1cEJ1dHRvbkxhYmVscy5zYXZlTGFiZWxcIlxuICAgICAgICAgIChkYXRldGltZVNlbGVjdGVkKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVJlcXVlc3RlZCk9XCJuZ2JEcm9wZG93bi5jbG9zZSgpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './datetime-picker-input.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci1pbnB1dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRldGltZS1waWNrZXItaW5wdXQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { FormControl } from '@angular/forms';
|
|
5
|
+
import { ButtonModule } from '../../../button';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../button/button.component";
|
|
8
|
+
export class DatetimePickerInputFooterComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this._cd = inject(ChangeDetectorRef);
|
|
11
|
+
this._destroyRef = inject(DestroyRef);
|
|
12
|
+
this.datetimePickerFormControl = new FormControl(null);
|
|
13
|
+
this.initialValue = null;
|
|
14
|
+
this.cancelLabel = 'Cancel';
|
|
15
|
+
this.clearLabel = 'Clear';
|
|
16
|
+
this.saveLabel = 'Save';
|
|
17
|
+
this.datetimeSelected = new EventEmitter();
|
|
18
|
+
this.closeRequested = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.datetimePickerFormControl.valueChanges
|
|
22
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
23
|
+
.subscribe(v => this.datetimePicker.writeValue(v));
|
|
24
|
+
this.datetimePickerFormControl.reset(this.initialValue);
|
|
25
|
+
this.datetimePicker.registerOnChange((value) => {
|
|
26
|
+
this.datetimePickerFormControl.setValue(value, { emitEvent: false });
|
|
27
|
+
this._cd.markForCheck();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
allowSave() {
|
|
31
|
+
const currentValue = this.datetimePickerFormControl.value;
|
|
32
|
+
return (!!currentValue?.date &&
|
|
33
|
+
(!this.datetimePicker.withTime || !!currentValue.time));
|
|
34
|
+
}
|
|
35
|
+
clearAndClose() {
|
|
36
|
+
this.datetimePickerFormControl.reset(null);
|
|
37
|
+
this.saveAndClose();
|
|
38
|
+
}
|
|
39
|
+
saveAndClose() {
|
|
40
|
+
this.datetimeSelected.emit(this.datetimePickerFormControl.value);
|
|
41
|
+
this.closePicker();
|
|
42
|
+
}
|
|
43
|
+
closePicker() {
|
|
44
|
+
this.closeRequested.emit();
|
|
45
|
+
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerInputFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DatetimePickerInputFooterComponent, isStandalone: true, selector: "impdc-datetime-picker-input-footer", inputs: { datetimePicker: "datetimePicker", initialValue: "initialValue", cancelLabel: "cancelLabel", clearLabel: "clearLabel", saveLabel: "saveLabel" }, outputs: { datetimeSelected: "datetimeSelected", closeRequested: "closeRequested" }, ngImport: i0, template: "<div class=\"d-flex gap-3\">\n <button class=\"btn btn-link me-auto\" type=\"button\" (click)=\"clearAndClose()\">\n {{ clearLabel }}\n </button>\n <button impdcButton theme=\"secondary\" (click)=\"closePicker()\">\n {{ cancelLabel }}\n </button>\n <button\n impdcButton\n theme=\"primary\"\n [disabled]=\"!allowSave()\"\n (click)=\"saveAndClose()\">\n {{ saveLabel }}\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerInputFooterComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'impdc-datetime-picker-input-footer', standalone: true, imports: [CommonModule, ButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex gap-3\">\n <button class=\"btn btn-link me-auto\" type=\"button\" (click)=\"clearAndClose()\">\n {{ clearLabel }}\n </button>\n <button impdcButton theme=\"secondary\" (click)=\"closePicker()\">\n {{ cancelLabel }}\n </button>\n <button\n impdcButton\n theme=\"primary\"\n [disabled]=\"!allowSave()\"\n (click)=\"saveAndClose()\">\n {{ saveLabel }}\n </button>\n</div>\n" }]
|
|
52
|
+
}], propDecorators: { datetimePicker: [{
|
|
53
|
+
type: Input,
|
|
54
|
+
args: [{ required: true }]
|
|
55
|
+
}], initialValue: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], cancelLabel: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], clearLabel: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], saveLabel: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], datetimeSelected: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}], closeRequested: [{
|
|
66
|
+
type: Output
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci1pbnB1dC1mb290ZXIvZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci1pbnB1dC1mb290ZXIvZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWS9DLE1BQU0sT0FBTyxrQ0FBa0M7SUFSL0M7UUFTbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLDhCQUF5QixHQUMxQyxJQUFJLFdBQVcsQ0FBd0MsSUFBSSxDQUFDLENBQUM7UUFNeEQsaUJBQVksR0FBMEMsSUFBSSxDQUFDO1FBRzNELGdCQUFXLEdBQVcsUUFBUSxDQUFDO1FBRy9CLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFHN0IsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUdsQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFHeEMsQ0FBQztRQUdJLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXFDM0Q7SUFuQ1EsUUFBUTtRQUNiLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZO2FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUNsQyxDQUFDLEtBQW9ELEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sU0FBUztRQUNkLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFFMUQsT0FBTyxDQUNMLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSTtZQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBaEVVLGtDQUFrQztrR0FBbEMsa0NBQWtDLDZVQzFCL0MsbWFBZUEseURETVksWUFBWSw4QkFBRSxZQUFZOzsyRkFLekIsa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNFLG9DQUFvQyxjQUNsQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVN4QyxjQUFjO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlVLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFPUyxjQUFjO3NCQUQ3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9idXR0b24nO1xuaW1wb3J0IHsgSURhdGV0aW1lUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3Rlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRldGltZVBpY2tlcklucHV0Rm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZXRpbWVQaWNrZXJGb3JtQ29udHJvbCA9XG4gICAgbmV3IEZvcm1Db250cm9sPElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGw+KG51bGwpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBkYXRldGltZVBpY2tlciE6IERhdGV0aW1lUGlja2VyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbml0aWFsVmFsdWU6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYW5jZWxMYWJlbDogc3RyaW5nID0gJ0NhbmNlbCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNsZWFyTGFiZWw6IHN0cmluZyA9ICdDbGVhcic7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNhdmVMYWJlbDogc3RyaW5nID0gJ1NhdmUnO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZXRpbWVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGV0aW1lUGlja2VyVmFsdWU8XG4gICAgYW55LFxuICAgIGFueVxuICA+IHwgbnVsbD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGNsb3NlUmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHYgPT4gdGhpcy5kYXRldGltZVBpY2tlci53cml0ZVZhbHVlKHYpKTtcbiAgICB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybUNvbnRyb2wucmVzZXQodGhpcy5pbml0aWFsVmFsdWUpO1xuICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXIucmVnaXN0ZXJPbkNoYW5nZShcbiAgICAgICh2YWx1ZTogSURhdGV0aW1lUGlja2VyVmFsdWU8dW5rbm93biwgdW5rbm93bj4gfCBudWxsKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFsbG93U2F2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgISFjdXJyZW50VmFsdWU/LmRhdGUgJiZcbiAgICAgICghdGhpcy5kYXRldGltZVBpY2tlci53aXRoVGltZSB8fCAhIWN1cnJlbnRWYWx1ZS50aW1lKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbmRDbG9zZSgpIHtcbiAgICB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybUNvbnRyb2wucmVzZXQobnVsbCk7XG4gICAgdGhpcy5zYXZlQW5kQ2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQW5kQ2xvc2UoKSB7XG4gICAgdGhpcy5kYXRldGltZVNlbGVjdGVkLmVtaXQodGhpcy5kYXRldGltZVBpY2tlckZvcm1Db250cm9sLnZhbHVlKTtcbiAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQaWNrZXIoKSB7XG4gICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTNcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGluayBtZS1hdXRvXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFuZENsb3NlKClcIj5cbiAgICB7eyBjbGVhckxhYmVsIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIGltcGRjQnV0dG9uIHRoZW1lPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNsb3NlUGlja2VyKClcIj5cbiAgICB7eyBjYW5jZWxMYWJlbCB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGltcGRjQnV0dG9uXG4gICAgdGhlbWU9XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiIWFsbG93U2F2ZSgpXCJcbiAgICAoY2xpY2spPVwic2F2ZUFuZENsb3NlKClcIj5cbiAgICB7eyBzYXZlTGFiZWwgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './datetime-picker-input-footer.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci1pbnB1dC1mb290ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLWlucHV0LWZvb3Rlci5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './datepicker-nav';
|
|
2
|
+
export * from './datepicker-template-host';
|
|
3
|
+
export * from './datetime-picker';
|
|
4
|
+
export * from './datetime-picker-input-footer';
|
|
5
|
+
export * from './datetime-picker-input';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlci1uYXYnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyLXRlbXBsYXRlLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRldGltZS1waWNrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLWlucHV0JztcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const DEFAULT_USE_MERIDIAN_LABEL = 'Use 24-hour format';
|
|
2
|
+
export const DEFAULT_MIN_DATE = {
|
|
3
|
+
year: 1900,
|
|
4
|
+
month: 1,
|
|
5
|
+
day: 1
|
|
6
|
+
};
|
|
7
|
+
export const DEFAULT_MAX_DATE = {
|
|
8
|
+
year: 2099,
|
|
9
|
+
month: 12,
|
|
10
|
+
day: 31
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9kYXRldGltZS1waWNrZXIvY29uc3RhbnRzL2RhdGV0aW1lLXBpY2tlci1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxvQkFBb0IsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBa0I7SUFDN0MsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsQ0FBQztJQUNSLEdBQUcsRUFBRSxDQUFDO0NBQ0UsQ0FBQztBQUNYLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFrQjtJQUM3QyxJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxFQUFFO0lBQ1QsR0FBRyxFQUFFLEVBQUU7Q0FDQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFX01FUklESUFOX0xBQkVMID0gJ1VzZSAyNC1ob3VyIGZvcm1hdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NSU5fREFURTogTmdiRGF0ZVN0cnVjdCA9IHtcbiAgeWVhcjogMTkwMCxcbiAgbW9udGg6IDEsXG4gIGRheTogMVxufSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9EQVRFOiBOZ2JEYXRlU3RydWN0ID0ge1xuICB5ZWFyOiAyMDk5LFxuICBtb250aDogMTIsXG4gIGRheTogMzFcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './datetime-picker-defaults';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLWRlZmF1bHRzJztcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DatetimePickerComponent, DatetimePickerInputComponent } from './components';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const DATETIME_PICKER_DIRECTIVES = [
|
|
5
|
+
DatetimePickerComponent,
|
|
6
|
+
DatetimePickerInputComponent
|
|
7
|
+
];
|
|
8
|
+
export class DatetimePickerModule {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerModule, imports: [DatetimePickerComponent,
|
|
11
|
+
DatetimePickerInputComponent], exports: [DatetimePickerComponent,
|
|
12
|
+
DatetimePickerInputComponent] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerModule, imports: [DATETIME_PICKER_DIRECTIVES] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
imports: DATETIME_PICKER_DIRECTIVES,
|
|
19
|
+
exports: DATETIME_PICKER_DIRECTIVES
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM3QixNQUFNLGNBQWMsQ0FBQzs7QUFFdEIsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyx1QkFBdUI7SUFDdkIsNEJBQTRCO0NBQzdCLENBQUM7QUFNRixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQVIvQix1QkFBdUI7WUFDdkIsNEJBQTRCLGFBRDVCLHVCQUF1QjtZQUN2Qiw0QkFBNEI7K0dBT2pCLG9CQUFvQixZQUh0QiwwQkFBMEI7OzJGQUd4QixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsT0FBTyxFQUFFLDBCQUEwQjtpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsXG4gIERhdGV0aW1lUGlja2VySW5wdXRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcblxuY29uc3QgREFURVRJTUVfUElDS0VSX0RJUkVDVElWRVMgPSBbXG4gIERhdGV0aW1lUGlja2VyQ29tcG9uZW50LFxuICBEYXRldGltZVBpY2tlcklucHV0Q29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBEQVRFVElNRV9QSUNLRVJfRElSRUNUSVZFUyxcbiAgZXhwb3J0czogREFURVRJTUVfUElDS0VSX0RJUkVDVElWRVNcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVQaWNrZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { IMPDC_DATETIME_PICKER_FORMATTER_FACTORY, ImpdcDatetimeFormatter, ImpdcDatetimeISOFormatter } from './services';
|
|
2
|
+
export { DatepickerNavComponent, DatetimePickerInputFooterComponent, DatepickerTemplateHostComponent, DatetimePickerComponent, DatetimePickerInputComponent } from './components';
|
|
3
|
+
export * from './datetime-picker.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUNBQXVDLEVBQ3ZDLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDMUIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDN0IsTUFBTSxjQUFjLENBQUM7QUFDdEIsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElEYXRldGltZVBpY2tlclZhbHVlIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQge1xuICBJTVBEQ19EQVRFVElNRV9QSUNLRVJfRk9STUFUVEVSX0ZBQ1RPUlksXG4gIEltcGRjRGF0ZXRpbWVGb3JtYXR0ZXIsXG4gIEltcGRjRGF0ZXRpbWVJU09Gb3JtYXR0ZXJcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5leHBvcnQge1xuICBEYXRlcGlja2VyTmF2Q29tcG9uZW50LFxuICBEYXRldGltZVBpY2tlcklucHV0Rm9vdGVyQ29tcG9uZW50LFxuICBEYXRlcGlja2VyVGVtcGxhdGVIb3N0Q29tcG9uZW50LFxuICBEYXRldGltZVBpY2tlckNvbXBvbmVudCxcbiAgRGF0ZXRpbWVQaWNrZXJJbnB1dENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRldGltZS1waWNrZXIubW9kdWxlJztcbiJdfQ==
|