ng-tailwind 2.24.310 → 2.24.314
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 +24 -24
- package/animations/ngt-angular-animations.d.ts +5 -5
- package/base/ngt-base-ng-model.d.ts +32 -32
- package/bundles/ng-tailwind.umd.js +7318 -7271
- package/bundles/ng-tailwind.umd.js.map +1 -1
- package/components/ngt-action/ngt-action.component.d.ts +13 -13
- package/components/ngt-action/ngt-action.module.d.ts +2 -2
- package/components/ngt-button/ngt-button.component.d.ts +22 -22
- package/components/ngt-button/ngt-button.module.d.ts +2 -2
- package/components/ngt-checkbox/ngt-checkbox.component.d.ts +41 -41
- package/components/ngt-checkbox/ngt-checkbox.module.d.ts +2 -2
- package/components/ngt-content/ngt-content.component.d.ts +9 -9
- package/components/ngt-content/ngt-content.module.d.ts +2 -2
- package/components/ngt-datatable/ngt-datatable.component.d.ts +112 -112
- package/components/ngt-datatable/ngt-datatable.module.d.ts +2 -2
- package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +11 -11
- package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +11 -11
- package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +24 -24
- package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +47 -47
- package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +19 -19
- package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +10 -10
- package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +17 -17
- package/components/ngt-date/ngt-date.component.d.ts +71 -71
- package/components/ngt-date/ngt-date.module.d.ts +2 -2
- package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +5 -5
- package/components/ngt-dropdown/ngt-dropdown.component.d.ts +42 -42
- package/components/ngt-dropdown/ngt-dropdown.module.d.ts +2 -2
- package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +11 -11
- package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +12 -12
- package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -21
- package/components/ngt-dropzone/ngt-dropzone.component.d.ts +103 -103
- package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -2
- package/components/ngt-floating-button/ngt-floating-button.component.d.ts +32 -32
- package/components/ngt-floating-button/ngt-floating-button.module.d.ts +2 -2
- package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +7 -7
- package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +2 -2
- package/components/ngt-form/ngt-form.component.d.ts +52 -52
- package/components/ngt-form/ngt-form.module.d.ts +2 -2
- package/components/ngt-header-nav/ngt-header-nav.component.d.ts +11 -11
- package/components/ngt-header-nav/ngt-header-nav.module.d.ts +2 -2
- package/components/ngt-helper/ngt-helper.component.d.ts +15 -10
- package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
- package/components/ngt-input/ngt-input.component.d.ts +92 -92
- package/components/ngt-input/ngt-input.module.d.ts +2 -2
- package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +2 -2
- package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +2 -2
- package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +12 -12
- package/components/ngt-modal/ngt-modal.component.d.ts +19 -19
- package/components/ngt-modal/ngt-modal.module.d.ts +2 -2
- package/components/ngt-multi-select/ngt-multi-select.component.d.ts +97 -97
- package/components/ngt-multi-select/ngt-multi-select.module.d.ts +2 -2
- package/components/ngt-pagination/ngt-pagination.component.d.ts +40 -40
- package/components/ngt-pagination/ngt-pagination.module.d.ts +2 -2
- package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
- package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
- package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
- package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
- package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
- package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
- package/components/ngt-radio-button/ngt-radio-button.component.d.ts +27 -27
- package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
- package/components/ngt-section/ngt-section.component.d.ts +23 -23
- package/components/ngt-section/ngt-section.module.d.ts +2 -2
- package/components/ngt-select/ngt-select.component.d.ts +122 -122
- package/components/ngt-select/ngt-select.directive.d.ts +13 -13
- package/components/ngt-select/ngt-select.module.d.ts +2 -2
- package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
- package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
- package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
- package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
- package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
- package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
- package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
- package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
- package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
- package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
- package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
- package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
- package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
- package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
- package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -63
- package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
- package/enums/size.enum.d.ts +8 -8
- package/esm2015/animations/ngt-angular-animations.js +34 -34
- package/esm2015/base/ngt-base-ng-model.js +90 -90
- package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
- package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
- package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
- package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
- package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +137 -137
- package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
- package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
- package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
- package/esm2015/components/ngt-datatable/ngt-datatable.component.js +400 -400
- package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
- package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -60
- package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
- package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +102 -102
- package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +192 -192
- package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
- package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -58
- package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
- package/esm2015/components/ngt-date/ngt-date.component.js +354 -352
- package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
- package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
- package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +165 -165
- package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
- package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +47 -47
- package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +46 -45
- package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
- package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +411 -411
- package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
- package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
- package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
- package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
- package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
- package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
- package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
- package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
- package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
- package/esm2015/components/ngt-helper/ngt-helper.component.js +44 -24
- package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
- package/esm2015/components/ngt-input/ngt-input.component.js +610 -608
- package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
- package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
- package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
- package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
- package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
- package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
- package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +392 -392
- package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
- package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
- package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
- package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +32 -32
- package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
- package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -45
- package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
- package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
- package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
- package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +97 -97
- package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +18 -18
- package/esm2015/components/ngt-section/ngt-section.component.js +98 -98
- package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
- package/esm2015/components/ngt-select/ngt-select.component.js +467 -465
- package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
- package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
- package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
- package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
- package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
- package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
- package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
- package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
- package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
- package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
- package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
- package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
- package/esm2015/components/ngt-textarea/ngt-textarea.component.js +211 -209
- package/esm2015/components/ngt-textarea/ngt-textarea.module.js +24 -24
- package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
- package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
- package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -220
- package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
- package/esm2015/enums/size.enum.js +11 -11
- package/esm2015/helpers/enum/enum.js +7 -7
- package/esm2015/helpers/form/form.js +14 -14
- package/esm2015/helpers/routing/route.js +11 -11
- package/esm2015/helpers/uuid.js +10 -10
- package/esm2015/ng-tailwind.js +10 -10
- package/esm2015/public-api.js +117 -117
- package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
- package/esm2015/services/http/ngt-http-form.service.js +3 -3
- package/esm2015/services/http/ngt-http-resource.service.js +3 -3
- package/esm2015/services/http/ngt-http-validation.service.js +4 -4
- package/esm2015/services/http/ngt-http.service.js +3 -3
- package/esm2015/services/http/ngt-translate.service.js +3 -3
- package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -266
- package/fesm2015/ng-tailwind.js +6404 -6365
- package/fesm2015/ng-tailwind.js.map +1 -1
- package/helpers/enum/enum.d.ts +1 -1
- package/helpers/form/form.d.ts +4 -4
- package/helpers/routing/route.d.ts +2 -2
- package/helpers/uuid.d.ts +1 -1
- package/ng-tailwind.d.ts +10 -10
- package/ng-tailwind.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +80 -80
- package/services/http/ngt-attachment-http.service.d.ts +10 -10
- package/services/http/ngt-http-form.service.d.ts +5 -5
- package/services/http/ngt-http-resource.service.d.ts +12 -12
- package/services/http/ngt-http-validation.service.d.ts +10 -10
- package/services/http/ngt-http.service.d.ts +27 -27
- package/services/http/ngt-translate.service.d.ts +27 -27
- package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -93
|
@@ -1,352 +1,354 @@
|
|
|
1
|
-
import { Component, Host, Injector, Input, Optional, Self, SkipSelf, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { ControlContainer, NgForm, Validators } from '@angular/forms';
|
|
3
|
-
import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
|
|
4
|
-
import { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';
|
|
5
|
-
import { getEnumFromString } from '../../helpers/enum/enum';
|
|
6
|
-
import { uuid } from '../../helpers/uuid';
|
|
7
|
-
import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
|
|
8
|
-
import { NgtFormComponent } from '../ngt-form/ngt-form.component';
|
|
9
|
-
const Brazil = require("flatpickr/dist/l10n/pt.js").default.pt;
|
|
10
|
-
const US = require("flatpickr/dist/l10n/default.js").default;
|
|
11
|
-
let moment = require('moment');
|
|
12
|
-
export class NgtDateComponent extends NgtBaseNgModel {
|
|
13
|
-
constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent) {
|
|
14
|
-
super();
|
|
15
|
-
this.injector = injector;
|
|
16
|
-
this.ngtStylizableDirective = ngtStylizableDirective;
|
|
17
|
-
this.formContainer = formContainer;
|
|
18
|
-
this.ngtFormComponent = ngtFormComponent;
|
|
19
|
-
// Visual
|
|
20
|
-
this.label = "";
|
|
21
|
-
this.placeholder = "";
|
|
22
|
-
this.helpTextColor = 'text-green-500';
|
|
23
|
-
this.shining = false;
|
|
24
|
-
this.dateFormat = 'd/m/Y H:i';
|
|
25
|
-
this.dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';
|
|
26
|
-
this.isDisabled = false;
|
|
27
|
-
this.isReadonly = false;
|
|
28
|
-
this.time_24hr = true;
|
|
29
|
-
this.enableTime = true;
|
|
30
|
-
this.noCalendar = false;
|
|
31
|
-
this.minuteIncrement = 1;
|
|
32
|
-
this.allowInput = false;
|
|
33
|
-
this.allowClear = true;
|
|
34
|
-
// Validation
|
|
35
|
-
this.isRequired = false;
|
|
36
|
-
this.componentReady = false;
|
|
37
|
-
this.nativeName = uuid();
|
|
38
|
-
this.inputProperties = {};
|
|
39
|
-
this.subscriptions = [];
|
|
40
|
-
if (this.ngtFormComponent) {
|
|
41
|
-
this.shining = this.ngtFormComponent.isShining();
|
|
42
|
-
this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
|
|
43
|
-
this.shining = shining;
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
if (this.ngtStylizableDirective) {
|
|
47
|
-
this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.ngtStyle = new NgtStylizableService();
|
|
51
|
-
}
|
|
52
|
-
this.ngtStyle.load(this.injector, 'NgtDate', {
|
|
53
|
-
h: 'h-12',
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:baseline;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:baseline;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:1px solid #c53030!important;border-radius:.25rem}.border-error,.border-normal{background-color:unset!important}.border-normal{border:1px solid #cbd5e0!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa;min-height:40px}"]
|
|
308
|
-
|
|
309
|
-
];
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
{ type:
|
|
314
|
-
{ type:
|
|
315
|
-
]
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
(
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLElBQUksRUFFSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDL0QsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQzdELElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQWMvQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQTRDaEQsWUFDWSxRQUFrQixFQUNFLHNCQUE4QyxFQUVuRSxhQUErQixFQUU5QixnQkFB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UyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtvQkFHbkQsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7eUJBQ0wsS0FBSztnQ0FDTCxLQUFLO21CQUdMLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLO21CQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7OEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFHTCxLQUFLOztBQTJVVixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLGtDQUFpQixDQUFBO0lBQ2pCLDBCQUFTLENBQUE7QUFDYixDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLGdDQUFpQixDQUFBO0lBQ2pCLDhCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxhdHBpY2tyT3B0aW9ucywgTmcyRmxhdHBpY2tyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWZsYXRwaWNrcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmd0QmFzZU5nTW9kZWwsIE5ndE1ha2VQcm92aWRlciB9IGZyb20gJy4uLy4uL2Jhc2Uvbmd0LWJhc2UtbmctbW9kZWwnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IGdldEVudW1Gcm9tU3RyaW5nIH0gZnJvbSAnLi4vLi4vaGVscGVycy9lbnVtL2VudW0nO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdXVpZCc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XG5cbmNvbnN0IEJyYXppbCA9IHJlcXVpcmUoXCJmbGF0cGlja3IvZGlzdC9sMTBuL3B0LmpzXCIpLmRlZmF1bHQucHQ7XG5jb25zdCBVUyA9IHJlcXVpcmUoXCJmbGF0cGlja3IvZGlzdC9sMTBuL2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbmxldCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtZGF0ZS5jb21wb25lbnQuY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndERhdGVDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RGF0ZUNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoXCJuZzJGbGF0cGlja3JDb21wb25lbnRcIiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIG5nMkZsYXRwaWNrckNvbXBvbmVudDogTmcyRmxhdHBpY2tyQ29tcG9uZW50O1xuXG4gICAgLy8gVmlzdWFsXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0Q29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTUwMCc7XG4gICAgQElucHV0KCkgcHVibGljIHNoaW5pbmcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nID0gJ2QvbS9ZIEg6aSc7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGVGb3JtYXROZ01vZGVsID0gJ1lZWVktTU0tREQgSEg6bW06MDAnO1xuXG4gICAgLy8gQmVoYXZpb3JcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzUmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZTogTmd0RGF0ZU1vZGU7XG4gICAgQElucHV0KCkgcHVibGljIHRpbWVfMjRocjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVRpbWU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub0NhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIG1pbnV0ZUluY3JlbWVudDogbnVtYmVyID0gMTtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2NhbGU6IE5ndERhdGVMb2NhbGU7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q2xlYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5EYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG1heERhdGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdERhdGU6IHN0cmluZztcblxuICAgIC8vIFZhbGlkYXRpb25cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgZGF0ZUNvbmZpZzogRmxhdHBpY2tyT3B0aW9ucztcbiAgICBwdWJsaWMgbmF0aXZlVmFsdWU6IGFueTtcbiAgICBwdWJsaWMgY29tcG9uZW50UmVhZHkgPSBmYWxzZTtcbiAgICBwdWJsaWMgbmF0aXZlTmFtZSA9IHV1aWQoKTtcbiAgICBwdWJsaWMgaW5wdXRQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGh0bWxUeXBlPzogc3RyaW5nO1xuICAgICAgICBsZW5ndGg/OiBudW1iZXI7XG4gICAgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RGb3JtQ29tcG9uZW50OiBOZ3RGb3JtQ29tcG9uZW50XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gdGhpcy5uZ3RGb3JtQ29tcG9uZW50LmlzU2hpbmluZygpO1xuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndEZvcm1Db21wb25lbnQub25TaGluaW5nQ2hhbmdlLnN1YnNjcmliZSgoc2hpbmluZzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSBzaGluaW5nO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3REYXRlJywge1xuICAgICAgICAgICAgaDogJ2gtMTInLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9ucygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZ2V0RW51bUZyb21TdHJpbmcoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSwgTmd0RGF0ZU1vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubG9jYWxlKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMubG9jYWxlLmN1cnJlbnRWYWx1ZSwgTmd0RGF0ZUxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGF0ZUNvbmZpZyA9IHtcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMuZ2V0RGF0ZU1vZGUoKSxcbiAgICAgICAgICAgIG1pbnV0ZUluY3JlbWVudDogdGhpcy5taW51dGVJbmNyZW1lbnQsXG4gICAgICAgICAgICBtaW5EYXRlOiB0aGlzLm1pbkRhdGUsXG4gICAgICAgICAgICBtYXhEYXRlOiB0aGlzLm1heERhdGUsXG4gICAgICAgICAgICB0aW1lXzI0aHI6IHRoaXMudGltZV8yNGhyLFxuICAgICAgICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgbm9DYWxlbmRhcjogdGhpcy5ub0NhbGVuZGFyLFxuICAgICAgICAgICAgYWxsb3dJbnB1dDogdGhpcy5hbGxvd0lucHV0LFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmdldExvY2FsZSgpLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChzZWxlY3RlZERhdGVzLCBkYXRlU3RyLCBpbnN0YW5jZSkgPT4gdGhpcy5vbk5hdGl2ZUNoYW5nZShzZWxlY3RlZERhdGVzLCBpbnN0YW5jZSwgdHJ1ZSksXG4gICAgICAgICAgICBvbkNsb3NlOiAoc2VsZWN0ZWREYXRlcywgZGF0ZVN0ciwgaW5zdGFuY2UpID0+IHRoaXMub25OYXRpdmVDaGFuZ2Uoc2VsZWN0ZWREYXRlcywgaW5zdGFuY2UsIGZhbHNlKSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBlbGVtZW50IG11c3QgYmUgaW5zaWRlIGEgPGZvcm0gI2Zvcm09J25nRm9ybSc+IHRhZyFcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBlbGVtZW50IG11c3QgY29udGFpbiBhIG5hbWUgYXR0cmlidXRlIVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRDb21wb25lbnQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnN0IGZsYXRwaWNrckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdmbGF0cGlja3ItY2FsZW5kYXInKTtcblxuICAgICAgICBpZiAoZmxhdHBpY2tyRWxlbWVudD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBmbGF0cGlja3JFbGVtZW50W2ZsYXRwaWNrckVsZW1lbnQubGVuZ3RoIC0gMV0ucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFySW5wdXQoY2xlYXJJbnN0YW5jZSA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudCAmJiBjbGVhckluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5zZXREYXRlRnJvbUlucHV0KCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWFkeSkge1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICFPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9IHRoaXMubmF0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFZhbHVlID0gbW9tZW50KHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKCh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSB8fCAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJiB2YWx1ZS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RWYWx1ZSA9IG1vbWVudCh2YWx1ZVswXSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RWYWx1ZSA9IGZpcnN0VmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlY29uZFZhbHVlID0gbW9tZW50KHZhbHVlWzFdKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RWYWx1ZS5pc1ZhbGlkKCkgJiYgc2Vjb25kVmFsdWUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDxhbnk+dGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyKS5zZXREYXRlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFZhbHVlLmZvcm1hdCh0aGlzLmdldE1vbWVudERhdGVGb3JtYXQoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kVmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgXSwgdHJ1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpcnN0VmFsdWUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICg8YW55PnRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50LmZsYXRwaWNrcikuc2V0RGF0ZShmaXJzdFZhbHVlLmZvcm1hdCh0aGlzLmdldE1vbWVudERhdGVGb3JtYXQoKSksIHRydWUsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50LnNldERhdGVGcm9tSW5wdXQoJycpO1xuICAgICAgICAgICAgdGhpcy5jbGVhcklucHV0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25OYXRpdmVDaGFuZ2UodmFsdWU6IGFueSwgaW5zdGFuY2U6IGFueSwgdHJpZ2dlckNsb3NlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICFPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSkge1xuICAgICAgICAgICAgaWYgKHRyaWdnZXJDbG9zZSkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT0gTmd0RGF0ZU1vZGUuUkFOR0UpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBbXTtcblxuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gbW9tZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5wdXNoKGVsZW1lbnQuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdE5nTW9kZWwpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVswXSkge1xuICAgICAgICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWVbMF0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXROZ01vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9IHRoaXMubmF0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdGl2ZVZhbHVlKCkge1xuICAgICAgICBsZXQgbmF0aXZlVmFsdWU6IGFueSA9IHRoaXMubmF0aXZlVmFsdWU7XG5cbiAgICAgICAgaWYgKG5hdGl2ZVZhbHVlICYmIG5hdGl2ZVZhbHVlLmZvcm1hdCkge1xuICAgICAgICAgICAgbmF0aXZlVmFsdWUgPSBuYXRpdmVWYWx1ZS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1hdHRlZE5hdGl2ZVZhbHVlKCkge1xuICAgICAgICBsZXQgbmF0aXZlVmFsdWU6IGFueSA9IHRoaXMubmF0aXZlVmFsdWU7XG5cbiAgICAgICAgaWYgKG5hdGl2ZVZhbHVlICYmIEFycmF5LmlzQXJyYXkobmF0aXZlVmFsdWUpKSB7XG4gICAgICAgICAgICBsZXQgZm9ybWF0dGVkTmF0aXZlVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgICAgICAgICBuYXRpdmVWYWx1ZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBtb21lbnQoZWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtYXQgJiYgIXRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWROYXRpdmVWYWx1ZSArPSBlbGVtZW50LmZvcm1hdCgnREQvTU0vWVlZWScpICsgJyAnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtYXQgJiYgdGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZE5hdGl2ZVZhbHVlICs9IGVsZW1lbnQuZm9ybWF0KCdERC9NTS9ZWVlZIEhIOm1tOjAwJykgKyAnICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWROYXRpdmVWYWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChuYXRpdmVWYWx1ZSkge1xuICAgICAgICAgICAgbmF0aXZlVmFsdWUgPSBtb21lbnQobmF0aXZlVmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAobmF0aXZlVmFsdWUuZm9ybWF0ICYmICF0aGlzLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWUuZm9ybWF0KCdERC9NTS9ZWVlZJykgKyAnICc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hdGl2ZVZhbHVlLmZvcm1hdCAmJiB0aGlzLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWUuZm9ybWF0KCdERC9NTS9ZWVlZIEhIOm1tOjAwJykgKyAnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbD8uZXJyb3JzICYmICh0aGlzLmZvcm1Db250cm9sPy5kaXJ0eSB8fCAodGhpcy5mb3JtQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRhaW5lclsnc3VibWl0dGVkJ10pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRDb21wb25lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250YWluZXIgJiYgdGhpcy5mb3JtQ29udGFpbmVyLmNvbnRyb2wgJiYgKHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Db250YWluZXIuY29udHJvbC5nZXQodGhpcy5uYW1lKSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh0aGlzLmRlZmF1bHREYXRlKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbnMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRhdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN5bmNWYWxpZGF0b3JzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgc3luY1ZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHN5bmNWYWxpZGF0b3JzKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvY2FsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2NhbGUgPT0gTmd0RGF0ZUxvY2FsZS5CUkFaSUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQnJhemlsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFVTO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZU1vZGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT0gTmd0RGF0ZU1vZGUuUkFOR0UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhbmdlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnc2luZ2xlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vbWVudERhdGVGb3JtYXQoKSB7XG4gICAgICAgIGxldCBkYXRlRm9ybWF0ID0gJyc7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGVGb3JtYXQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXRlRm9ybWF0LmNoYXJBdChpKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdERCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdNTSc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdNTU0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdZJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnWVlZWSc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJy8nOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICcvJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJy0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICc6JzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnOic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0gnOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdISCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2knOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdtbSc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdzcyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVGb3JtYXQuY2hhckF0KGkpICE9ICcuJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSB0aGlzLmRhdGVGb3JtYXQuY2hhckF0KGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdCA/IGRhdGVGb3JtYXQgOiAnREQvTU0vWVlZWSBISDptbTowMCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBOZ3REYXRlTG9jYWxlIHtcbiAgICBCUkFaSUwgPSAnQlJBWklMJyxcbiAgICBVUyA9ICdVUydcbn1cblxuZXhwb3J0IGVudW0gTmd0RGF0ZU1vZGUge1xuICAgIFNJTkdMRSA9ICdTSU5HTEUnLFxuICAgIFJBTkdFID0gJ1JBTkdFJ1xufVxuIl19
|
|
1
|
+
import { Component, Host, Injector, Input, Optional, Self, SkipSelf, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { ControlContainer, NgForm, Validators } from '@angular/forms';
|
|
3
|
+
import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
|
|
4
|
+
import { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';
|
|
5
|
+
import { getEnumFromString } from '../../helpers/enum/enum';
|
|
6
|
+
import { uuid } from '../../helpers/uuid';
|
|
7
|
+
import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
|
|
8
|
+
import { NgtFormComponent } from '../ngt-form/ngt-form.component';
|
|
9
|
+
const Brazil = require("flatpickr/dist/l10n/pt.js").default.pt;
|
|
10
|
+
const US = require("flatpickr/dist/l10n/default.js").default;
|
|
11
|
+
let moment = require('moment');
|
|
12
|
+
export class NgtDateComponent extends NgtBaseNgModel {
|
|
13
|
+
constructor(injector, ngtStylizableDirective, formContainer, ngtFormComponent) {
|
|
14
|
+
super();
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
this.ngtStylizableDirective = ngtStylizableDirective;
|
|
17
|
+
this.formContainer = formContainer;
|
|
18
|
+
this.ngtFormComponent = ngtFormComponent;
|
|
19
|
+
// Visual
|
|
20
|
+
this.label = "";
|
|
21
|
+
this.placeholder = "dd/mm/yyyy";
|
|
22
|
+
this.helpTextColor = 'text-green-500';
|
|
23
|
+
this.shining = false;
|
|
24
|
+
this.dateFormat = 'd/m/Y H:i';
|
|
25
|
+
this.dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';
|
|
26
|
+
this.isDisabled = false;
|
|
27
|
+
this.isReadonly = false;
|
|
28
|
+
this.time_24hr = true;
|
|
29
|
+
this.enableTime = true;
|
|
30
|
+
this.noCalendar = false;
|
|
31
|
+
this.minuteIncrement = 1;
|
|
32
|
+
this.allowInput = false;
|
|
33
|
+
this.allowClear = true;
|
|
34
|
+
// Validation
|
|
35
|
+
this.isRequired = false;
|
|
36
|
+
this.componentReady = false;
|
|
37
|
+
this.nativeName = uuid();
|
|
38
|
+
this.inputProperties = {};
|
|
39
|
+
this.subscriptions = [];
|
|
40
|
+
if (this.ngtFormComponent) {
|
|
41
|
+
this.shining = this.ngtFormComponent.isShining();
|
|
42
|
+
this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
|
|
43
|
+
this.shining = shining;
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
if (this.ngtStylizableDirective) {
|
|
47
|
+
this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.ngtStyle = new NgtStylizableService();
|
|
51
|
+
}
|
|
52
|
+
this.ngtStyle.load(this.injector, 'NgtDate', {
|
|
53
|
+
h: 'h-12',
|
|
54
|
+
text: 'text-sm',
|
|
55
|
+
fontCase: '',
|
|
56
|
+
color: {
|
|
57
|
+
text: 'text-gray-800'
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
ngOnChanges(changes) {
|
|
62
|
+
if (changes.isRequired) {
|
|
63
|
+
this.updateValidations();
|
|
64
|
+
}
|
|
65
|
+
if (changes.mode) {
|
|
66
|
+
this.mode = getEnumFromString(changes.mode.currentValue, NgtDateMode);
|
|
67
|
+
}
|
|
68
|
+
if (changes.locale) {
|
|
69
|
+
this.locale = getEnumFromString(changes.locale.currentValue, NgtDateLocale);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
ngOnInit() {
|
|
73
|
+
this.dateConfig = {
|
|
74
|
+
dateFormat: this.dateFormat,
|
|
75
|
+
mode: this.getDateMode(),
|
|
76
|
+
minuteIncrement: this.minuteIncrement,
|
|
77
|
+
minDate: this.minDate,
|
|
78
|
+
maxDate: this.maxDate,
|
|
79
|
+
time_24hr: this.time_24hr,
|
|
80
|
+
enableTime: this.enableTime,
|
|
81
|
+
noCalendar: this.noCalendar,
|
|
82
|
+
allowInput: this.allowInput,
|
|
83
|
+
locale: this.getLocale(),
|
|
84
|
+
onChange: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, true),
|
|
85
|
+
onClose: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, false),
|
|
86
|
+
};
|
|
87
|
+
if (!this.formContainer) {
|
|
88
|
+
console.error("The element must be inside a <form #form='ngForm'> tag!");
|
|
89
|
+
}
|
|
90
|
+
if (!this.name) {
|
|
91
|
+
console.error("The element must contain a name attribute!");
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
this.componentReady = true;
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
this.initComponent();
|
|
98
|
+
});
|
|
99
|
+
}, 500);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
ngOnDestroy() {
|
|
103
|
+
const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');
|
|
104
|
+
if (flatpickrElement === null || flatpickrElement === void 0 ? void 0 : flatpickrElement.length) {
|
|
105
|
+
flatpickrElement[flatpickrElement.length - 1].remove();
|
|
106
|
+
}
|
|
107
|
+
this.destroySubscriptions();
|
|
108
|
+
}
|
|
109
|
+
clearInput(clearInstance = false) {
|
|
110
|
+
this.value = '';
|
|
111
|
+
this.nativeValue = '';
|
|
112
|
+
if (this.ng2FlatpickrComponent && clearInstance) {
|
|
113
|
+
this.ng2FlatpickrComponent.setDateFromInput('');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
change(value) {
|
|
117
|
+
if (this.componentReady) {
|
|
118
|
+
this.onValueChangeEvent.emit(this.value);
|
|
119
|
+
}
|
|
120
|
+
if (!value || (value instanceof Object && !Object.keys(value).length)) {
|
|
121
|
+
return this.clearInput();
|
|
122
|
+
}
|
|
123
|
+
if (value && value != this.nativeValue) {
|
|
124
|
+
let firstValue = moment(value);
|
|
125
|
+
if ((value instanceof Object && Object.keys(value).length) || (value instanceof Array && value.length)) {
|
|
126
|
+
firstValue = moment(value[0]);
|
|
127
|
+
if (value.length == 2) {
|
|
128
|
+
firstValue = firstValue;
|
|
129
|
+
let secondValue = moment(value[1]);
|
|
130
|
+
if (firstValue.isValid() && secondValue.isValid()) {
|
|
131
|
+
return this.ng2FlatpickrComponent.flatpickr.setDate([
|
|
132
|
+
firstValue.format(this.getMomentDateFormat()),
|
|
133
|
+
secondValue.format(this.getMomentDateFormat())
|
|
134
|
+
], true, this.dateFormat);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (firstValue.isValid()) {
|
|
139
|
+
return this.ng2FlatpickrComponent.flatpickr.setDate(firstValue.format(this.getMomentDateFormat()), true, this.dateFormat);
|
|
140
|
+
}
|
|
141
|
+
this.ng2FlatpickrComponent.setDateFromInput('');
|
|
142
|
+
this.clearInput();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
onNativeChange(value, instance, triggerClose) {
|
|
146
|
+
if (!value || (value instanceof Object && !Object.keys(value).length)) {
|
|
147
|
+
if (triggerClose) {
|
|
148
|
+
instance.close();
|
|
149
|
+
}
|
|
150
|
+
return this.clearInput();
|
|
151
|
+
}
|
|
152
|
+
if (this.mode == NgtDateMode.RANGE) {
|
|
153
|
+
this.nativeValue = [];
|
|
154
|
+
value.forEach(element => {
|
|
155
|
+
element = moment(element);
|
|
156
|
+
if (element && element.isValid()) {
|
|
157
|
+
this.nativeValue.push(element.format(this.dateFormatNgModel));
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
else if (value[0]) {
|
|
162
|
+
value = moment(value[0]);
|
|
163
|
+
if (value && value.isValid()) {
|
|
164
|
+
this.nativeValue = value.format(this.dateFormatNgModel);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (this.value != this.nativeValue) {
|
|
168
|
+
this.value = this.nativeValue;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
getNativeValue() {
|
|
172
|
+
let nativeValue = this.nativeValue;
|
|
173
|
+
if (nativeValue && nativeValue.format) {
|
|
174
|
+
nativeValue = nativeValue.format(this.dateFormatNgModel);
|
|
175
|
+
}
|
|
176
|
+
return nativeValue;
|
|
177
|
+
}
|
|
178
|
+
getFormattedNativeValue() {
|
|
179
|
+
let nativeValue = this.nativeValue;
|
|
180
|
+
if (nativeValue && Array.isArray(nativeValue)) {
|
|
181
|
+
let formattedNativeValue = '';
|
|
182
|
+
nativeValue.forEach(element => {
|
|
183
|
+
element = moment(element);
|
|
184
|
+
if (element.format && !this.enableTime) {
|
|
185
|
+
formattedNativeValue += element.format('DD/MM/YYYY') + ' ';
|
|
186
|
+
}
|
|
187
|
+
else if (element.format && this.enableTime) {
|
|
188
|
+
formattedNativeValue += element.format('DD/MM/YYYY HH:mm:00') + ' ';
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
return formattedNativeValue;
|
|
192
|
+
}
|
|
193
|
+
else if (nativeValue) {
|
|
194
|
+
nativeValue = moment(nativeValue);
|
|
195
|
+
if (nativeValue.format && !this.enableTime) {
|
|
196
|
+
return nativeValue.format('DD/MM/YYYY') + ' ';
|
|
197
|
+
}
|
|
198
|
+
else if (nativeValue.format && this.enableTime) {
|
|
199
|
+
return nativeValue.format('DD/MM/YYYY HH:mm:00') + ' ';
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return this.placeholder;
|
|
203
|
+
}
|
|
204
|
+
hasErrors() {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
return ((_a = this.formControl) === null || _a === void 0 ? void 0 : _a.errors) && (((_b = this.formControl) === null || _b === void 0 ? void 0 : _b.dirty) || (this.formContainer && this.formContainer['submitted']));
|
|
207
|
+
}
|
|
208
|
+
initComponent() {
|
|
209
|
+
if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {
|
|
210
|
+
if (this.defaultDate) {
|
|
211
|
+
this.value = moment(this.defaultDate).format(this.dateFormatNgModel);
|
|
212
|
+
}
|
|
213
|
+
this.updateValidations();
|
|
214
|
+
if (this.value) {
|
|
215
|
+
this.formControl.markAsDirty();
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
this.formControl.markAsPristine();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
updateValidations() {
|
|
223
|
+
if (!this.formControl) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
let syncValidators = [];
|
|
227
|
+
if (this.isRequired) {
|
|
228
|
+
syncValidators.push(Validators.required);
|
|
229
|
+
}
|
|
230
|
+
setTimeout(() => {
|
|
231
|
+
this.formControl.setValidators(syncValidators);
|
|
232
|
+
this.formControl.updateValueAndValidity();
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
getLocale() {
|
|
236
|
+
if (this.locale) {
|
|
237
|
+
if (this.locale == NgtDateLocale.BRAZIL) {
|
|
238
|
+
return Brazil;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return US;
|
|
242
|
+
}
|
|
243
|
+
getDateMode() {
|
|
244
|
+
if (this.mode) {
|
|
245
|
+
if (this.mode == NgtDateMode.RANGE) {
|
|
246
|
+
return 'range';
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return 'single';
|
|
250
|
+
}
|
|
251
|
+
getMomentDateFormat() {
|
|
252
|
+
let dateFormat = '';
|
|
253
|
+
for (let i = 0; i < this.dateFormat.length; i++) {
|
|
254
|
+
switch (this.dateFormat.charAt(i)) {
|
|
255
|
+
case 'd':
|
|
256
|
+
dateFormat += 'DD';
|
|
257
|
+
break;
|
|
258
|
+
case 'm':
|
|
259
|
+
dateFormat += 'MM';
|
|
260
|
+
break;
|
|
261
|
+
case 'M':
|
|
262
|
+
dateFormat += 'MMM';
|
|
263
|
+
break;
|
|
264
|
+
case 'Y':
|
|
265
|
+
dateFormat += 'YYYY';
|
|
266
|
+
break;
|
|
267
|
+
case '/':
|
|
268
|
+
dateFormat += '/';
|
|
269
|
+
break;
|
|
270
|
+
case '-':
|
|
271
|
+
dateFormat += '-';
|
|
272
|
+
break;
|
|
273
|
+
case ':':
|
|
274
|
+
dateFormat += ':';
|
|
275
|
+
break;
|
|
276
|
+
case 'H':
|
|
277
|
+
dateFormat += 'HH';
|
|
278
|
+
break;
|
|
279
|
+
case 'i':
|
|
280
|
+
dateFormat += 'mm';
|
|
281
|
+
break;
|
|
282
|
+
case 's':
|
|
283
|
+
dateFormat += 'ss';
|
|
284
|
+
break;
|
|
285
|
+
default:
|
|
286
|
+
if (this.dateFormat.charAt(i) != '.') {
|
|
287
|
+
dateFormat += this.dateFormat.charAt(i);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return dateFormat ? dateFormat : 'DD/MM/YYYY HH:mm:00';
|
|
292
|
+
}
|
|
293
|
+
destroySubscriptions() {
|
|
294
|
+
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
295
|
+
this.subscriptions = [];
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
NgtDateComponent.decorators = [
|
|
299
|
+
{ type: Component, args: [{
|
|
300
|
+
selector: 'ngt-date',
|
|
301
|
+
template: "<label class=\"{{ shining ? '' : 'block' }} mb-2 {{ngtStyle.compile(['text', 'fontCase'])}} flex\" *ngIf=\"label\" [hidden]='shining'>\r\n {{ label }}:\r\n\r\n <span class=\"text-red-500 font-bold text-md ml-1\" *ngIf=\"isRequired\">*</span>\r\n\r\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\r\n {{ helpText }}\r\n </ngt-helper>\r\n</label>\r\n\r\n<div class=\"relative\" [hidden]='shining || isDisabled'>\r\n <div\r\n class=\"overflow-hidden {{ ngtStyle.compile(['h', 'color.text']) }} {{ hasErrors() ? 'border-error' : 'border-normal' }}\">\r\n <ng2-flatpickr class=\"block h-full\" [config]='dateConfig' disabled='true'\r\n placeholder=\"{{ placeholder }}\" #ng2FlatpickrComponent>\r\n </ng2-flatpickr>\r\n\r\n <div *ngIf=\"allowClear && value\" class=\"flex absolute right-0 top-0 w-auto cursor-pointer mt-4 mr-2\"\r\n (click)='clearInput(true)'>\r\n <svg class=\"fill-current self-center text-red-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M19.1 17.2l-5.3-5.3 5.3-5.3-1.8-1.8-5.3 5.4-5.3-5.3-1.8 1.7 5.3 5.3-5.3 5.3L6.7 19l5.3-5.3 5.3 5.3 1.8-1.8z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf='shining'>\r\n <div class=\"flex\">\r\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf='isDisabled'>\r\n <div class=\"disabledDiv w-full px-4 py-3 rounded appearance-none block border border-gray-400\">\r\n {{ getFormattedNativeValue() }}\r\n </div>\r\n</ng-container>\r\n\r\n<input *ngIf='componentReady' type=\"hidden\" [ngModel]=\"value\" [name]=\"name\" [value]=\"value\">\r\n\r\n<ng-content></ng-content>\r\n<ngt-validation [control]=\"formControl\" [container]=\"formContainer\"></ngt-validation>\r\n",
|
|
302
|
+
encapsulation: ViewEncapsulation.None,
|
|
303
|
+
providers: [
|
|
304
|
+
NgtMakeProvider(NgtDateComponent),
|
|
305
|
+
],
|
|
306
|
+
viewProviders: [
|
|
307
|
+
{ provide: ControlContainer, useExisting: NgForm }
|
|
308
|
+
],
|
|
309
|
+
styles: [".flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\"\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:baseline;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:baseline;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.border-error{border:1px solid #c53030!important;border-radius:.25rem}.border-error,.border-normal{background-color:unset!important}.border-normal{border:1px solid #cbd5e0!important;border-radius:.25rem}.ng2-flatpickr-input:focus{outline:none}.ng2-flatpickr-input{border:0;width:100%;height:100%;padding-left:.8rem}.ng2-flatpickr-input-container{height:100%!important}.disabledDiv{background-color:#fafafa;min-height:40px}"]
|
|
310
|
+
},] }
|
|
311
|
+
];
|
|
312
|
+
NgtDateComponent.ctorParameters = () => [
|
|
313
|
+
{ type: Injector },
|
|
314
|
+
{ type: NgtStylizableDirective, decorators: [{ type: Self }, { type: Optional }] },
|
|
315
|
+
{ type: ControlContainer, decorators: [{ type: Optional }, { type: Host }] },
|
|
316
|
+
{ type: NgtFormComponent, decorators: [{ type: Optional }, { type: SkipSelf }] }
|
|
317
|
+
];
|
|
318
|
+
NgtDateComponent.propDecorators = {
|
|
319
|
+
ng2FlatpickrComponent: [{ type: ViewChild, args: ["ng2FlatpickrComponent", { static: true },] }],
|
|
320
|
+
label: [{ type: Input }],
|
|
321
|
+
placeholder: [{ type: Input }],
|
|
322
|
+
helpTitle: [{ type: Input }],
|
|
323
|
+
helpText: [{ type: Input }],
|
|
324
|
+
helpTextColor: [{ type: Input }],
|
|
325
|
+
shining: [{ type: Input }],
|
|
326
|
+
dateFormat: [{ type: Input }],
|
|
327
|
+
dateFormatNgModel: [{ type: Input }],
|
|
328
|
+
name: [{ type: Input }],
|
|
329
|
+
isDisabled: [{ type: Input }],
|
|
330
|
+
isReadonly: [{ type: Input }],
|
|
331
|
+
mode: [{ type: Input }],
|
|
332
|
+
time_24hr: [{ type: Input }],
|
|
333
|
+
enableTime: [{ type: Input }],
|
|
334
|
+
noCalendar: [{ type: Input }],
|
|
335
|
+
minuteIncrement: [{ type: Input }],
|
|
336
|
+
allowInput: [{ type: Input }],
|
|
337
|
+
locale: [{ type: Input }],
|
|
338
|
+
allowClear: [{ type: Input }],
|
|
339
|
+
minDate: [{ type: Input }],
|
|
340
|
+
maxDate: [{ type: Input }],
|
|
341
|
+
defaultDate: [{ type: Input }],
|
|
342
|
+
isRequired: [{ type: Input }]
|
|
343
|
+
};
|
|
344
|
+
export var NgtDateLocale;
|
|
345
|
+
(function (NgtDateLocale) {
|
|
346
|
+
NgtDateLocale["BRAZIL"] = "BRAZIL";
|
|
347
|
+
NgtDateLocale["US"] = "US";
|
|
348
|
+
})(NgtDateLocale || (NgtDateLocale = {}));
|
|
349
|
+
export var NgtDateMode;
|
|
350
|
+
(function (NgtDateMode) {
|
|
351
|
+
NgtDateMode["SINGLE"] = "SINGLE";
|
|
352
|
+
NgtDateMode["RANGE"] = "RANGE";
|
|
353
|
+
})(NgtDateMode || (NgtDateMode = {}));
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLElBQUksRUFFSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDL0QsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQzdELElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQWMvQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQTRDaEQsWUFDWSxRQUFrQixFQUNFLHNCQUE4QyxFQUVuRSxhQUErQixFQUU5QixnQkFB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QWdCLHVCQW1FaEIsUUFBUSxZQUFJLFFBQVE7OztvQ0FoRHhCLFNBQVMsU0FBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7b0JBR25ELEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzttQkFHTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzttQkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzhCQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBR0wsS0FBSzs7QUE2VVYsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixrQ0FBaUIsQ0FBQTtJQUNqQiwwQkFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgU2VsZixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZsYXRwaWNrck9wdGlvbnMsIE5nMkZsYXRwaWNrckNvbXBvbmVudCB9IGZyb20gJ25nMi1mbGF0cGlja3InO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcclxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XHJcbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V1aWQnO1xyXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50JztcclxuXHJcbmNvbnN0IEJyYXppbCA9IHJlcXVpcmUoXCJmbGF0cGlja3IvZGlzdC9sMTBuL3B0LmpzXCIpLmRlZmF1bHQucHQ7XHJcbmNvbnN0IFVTID0gcmVxdWlyZShcImZsYXRwaWNrci9kaXN0L2wxMG4vZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xyXG5sZXQgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LWRhdGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25ndC1kYXRlLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBOZ3RNYWtlUHJvdmlkZXIoTmd0RGF0ZUNvbXBvbmVudCksXHJcbiAgICBdLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3REYXRlQ29tcG9uZW50IGV4dGVuZHMgTmd0QmFzZU5nTW9kZWwgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKFwibmcyRmxhdHBpY2tyQ29tcG9uZW50XCIsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBuZzJGbGF0cGlja3JDb21wb25lbnQ6IE5nMkZsYXRwaWNrckNvbXBvbmVudDtcclxuXHJcbiAgICAvLyBWaXN1YWxcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gXCJcIjtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJkZC9tbS95eXl5XCI7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dENvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi01MDAnO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNoaW5pbmcgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnZC9tL1kgSDppJztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRlRm9ybWF0TmdNb2RlbCA9ICdZWVlZLU1NLUREIEhIOm1tOjAwJztcclxuXHJcbiAgICAvLyBCZWhhdmlvclxyXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGU6IE5ndERhdGVNb2RlO1xyXG4gICAgQElucHV0KCkgcHVibGljIHRpbWVfMjRocjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlVGltZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbm9DYWxlbmRhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1pbnV0ZUluY3JlbWVudDogbnVtYmVyID0gMTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhbGxvd0lucHV0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9jYWxlOiBOZ3REYXRlTG9jYWxlO1xyXG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q2xlYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1pbkRhdGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdERhdGU6IHN0cmluZztcclxuXHJcbiAgICAvLyBWYWxpZGF0aW9uXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBuZ3RTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XHJcbiAgICBwdWJsaWMgZGF0ZUNvbmZpZzogRmxhdHBpY2tyT3B0aW9ucztcclxuICAgIHB1YmxpYyBuYXRpdmVWYWx1ZTogYW55O1xyXG4gICAgcHVibGljIGNvbXBvbmVudFJlYWR5ID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbmF0aXZlTmFtZSA9IHV1aWQoKTtcclxuICAgIHB1YmxpYyBpbnB1dFByb3BlcnRpZXM6IHtcclxuICAgICAgICBodG1sVHlwZT86IHN0cmluZztcclxuICAgICAgICBsZW5ndGg/OiBudW1iZXI7XHJcbiAgICB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KClcclxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxyXG4gICAgICAgIHByaXZhdGUgbmd0Rm9ybUNvbXBvbmVudDogTmd0Rm9ybUNvbXBvbmVudFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybUNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSB0aGlzLm5ndEZvcm1Db21wb25lbnQuaXNTaGluaW5nKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMubmd0Rm9ybUNvbXBvbmVudC5vblNoaW5pbmdDaGFuZ2Uuc3Vic2NyaWJlKChzaGluaW5nOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gc2hpbmluZztcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndERhdGUnLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTEyJyxcclxuICAgICAgICAgICAgdGV4dDogJ3RleHQtc20nLFxyXG4gICAgICAgICAgICBmb250Q2FzZTogJycsXHJcbiAgICAgICAgICAgIGNvbG9yOiB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5tb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMubW9kZS5jdXJyZW50VmFsdWUsIE5ndERhdGVNb2RlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmxvY2FsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMubG9jYWxlLmN1cnJlbnRWYWx1ZSwgTmd0RGF0ZUxvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRhdGVDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcclxuICAgICAgICAgICAgbW9kZTogdGhpcy5nZXREYXRlTW9kZSgpLFxyXG4gICAgICAgICAgICBtaW51dGVJbmNyZW1lbnQ6IHRoaXMubWludXRlSW5jcmVtZW50LFxyXG4gICAgICAgICAgICBtaW5EYXRlOiB0aGlzLm1pbkRhdGUsXHJcbiAgICAgICAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcclxuICAgICAgICAgICAgdGltZV8yNGhyOiB0aGlzLnRpbWVfMjRocixcclxuICAgICAgICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxyXG4gICAgICAgICAgICBub0NhbGVuZGFyOiB0aGlzLm5vQ2FsZW5kYXIsXHJcbiAgICAgICAgICAgIGFsbG93SW5wdXQ6IHRoaXMuYWxsb3dJbnB1dCxcclxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmdldExvY2FsZSgpLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB0aGlzLm9uTmF0aXZlQ2hhbmdlKHNlbGVjdGVkRGF0ZXMsIGluc3RhbmNlLCB0cnVlKSxcclxuICAgICAgICAgICAgb25DbG9zZTogKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB0aGlzLm9uTmF0aXZlQ2hhbmdlKHNlbGVjdGVkRGF0ZXMsIGluc3RhbmNlLCBmYWxzZSksXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Db250YWluZXIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBlbGVtZW50IG11c3QgYmUgaW5zaWRlIGEgPGZvcm0gI2Zvcm09J25nRm9ybSc+IHRhZyFcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmFtZSBhdHRyaWJ1dGUhXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRDb21wb25lbnQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgY29uc3QgZmxhdHBpY2tyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZsYXRwaWNrci1jYWxlbmRhcicpO1xyXG5cclxuICAgICAgICBpZiAoZmxhdHBpY2tyRWxlbWVudD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGZsYXRwaWNrckVsZW1lbnRbZmxhdHBpY2tyRWxlbWVudC5sZW5ndGggLSAxXS5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJJbnB1dChjbGVhckluc3RhbmNlID0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQgJiYgY2xlYXJJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5zZXREYXRlRnJvbUlucHV0KCcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVhZHkpIHtcclxuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICFPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT0gdGhpcy5uYXRpdmVWYWx1ZSkge1xyXG4gICAgICAgICAgICBsZXQgZmlyc3RWYWx1ZSA9IG1vbWVudCh2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCkpIHtcclxuICAgICAgICAgICAgICAgIGZpcnN0VmFsdWUgPSBtb21lbnQodmFsdWVbMF0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0VmFsdWUgPSBmaXJzdFZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25kVmFsdWUgPSBtb21lbnQodmFsdWVbMV0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RWYWx1ZS5pc1ZhbGlkKCkgJiYgc2Vjb25kVmFsdWUuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoPGFueT50aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3IpLnNldERhdGUoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RWYWx1ZS5mb3JtYXQodGhpcy5nZXRNb21lbnREYXRlRm9ybWF0KCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kVmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLCB0cnVlLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpcnN0VmFsdWUuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKDxhbnk+dGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyKS5zZXREYXRlKGZpcnN0VmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKSwgdHJ1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuc2V0RGF0ZUZyb21JbnB1dCgnJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25OYXRpdmVDaGFuZ2UodmFsdWU6IGFueSwgaW5zdGFuY2U6IGFueSwgdHJpZ2dlckNsb3NlOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyQ2xvc2UpIHtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFySW5wdXQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT0gTmd0RGF0ZU1vZGUuUkFOR0UpIHtcclxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBtb21lbnQoZWxlbWVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnB1c2goZWxlbWVudC5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlWzBdKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KHZhbHVlWzBdKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9IHRoaXMubmF0aXZlVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubmF0aXZlVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXROYXRpdmVWYWx1ZSgpIHtcclxuICAgICAgICBsZXQgbmF0aXZlVmFsdWU6IGFueSA9IHRoaXMubmF0aXZlVmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChuYXRpdmVWYWx1ZSAmJiBuYXRpdmVWYWx1ZS5mb3JtYXQpIHtcclxuICAgICAgICAgICAgbmF0aXZlVmFsdWUgPSBuYXRpdmVWYWx1ZS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEZvcm1hdHRlZE5hdGl2ZVZhbHVlKCkge1xyXG4gICAgICAgIGxldCBuYXRpdmVWYWx1ZTogYW55ID0gdGhpcy5uYXRpdmVWYWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKG5hdGl2ZVZhbHVlICYmIEFycmF5LmlzQXJyYXkobmF0aXZlVmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWROYXRpdmVWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgICAgICBuYXRpdmVWYWx1ZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudCA9IG1vbWVudChlbGVtZW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtYXQgJiYgIXRoaXMuZW5hYmxlVGltZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZE5hdGl2ZVZhbHVlICs9IGVsZW1lbnQuZm9ybWF0KCdERC9NTS9ZWVlZJykgKyAnICc7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybWF0ICYmIHRoaXMuZW5hYmxlVGltZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZE5hdGl2ZVZhbHVlICs9IGVsZW1lbnQuZm9ybWF0KCdERC9NTS9ZWVlZIEhIOm1tOjAwJykgKyAnICc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZE5hdGl2ZVZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmF0aXZlVmFsdWUpIHtcclxuICAgICAgICAgICAgbmF0aXZlVmFsdWUgPSBtb21lbnQobmF0aXZlVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKG5hdGl2ZVZhbHVlLmZvcm1hdCAmJiAhdGhpcy5lbmFibGVUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWUuZm9ybWF0KCdERC9NTS9ZWVlZJykgKyAnICc7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmF0aXZlVmFsdWUuZm9ybWF0ICYmIHRoaXMuZW5hYmxlVGltZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbTowMCcpICsgJyAnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sPy5lcnJvcnMgJiYgKHRoaXMuZm9ybUNvbnRyb2w/LmRpcnR5IHx8ICh0aGlzLmZvcm1Db250YWluZXIgJiYgdGhpcy5mb3JtQ29udGFpbmVyWydzdWJtaXR0ZWQnXSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENvbXBvbmVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sICYmICh0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMubmFtZSkpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbW9tZW50KHRoaXMuZGVmYXVsdERhdGUpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXROZ01vZGVsKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9ucygpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25zKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc3luY1ZhbGlkYXRvcnMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgICBzeW5jVmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TG9jYWxlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvY2FsZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2NhbGUgPT0gTmd0RGF0ZUxvY2FsZS5CUkFaSUwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBCcmF6aWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBVUztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGVNb2RlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PSBOZ3REYXRlTW9kZS5SQU5HRSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYW5nZSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAnc2luZ2xlJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE1vbWVudERhdGVGb3JtYXQoKSB7XHJcbiAgICAgICAgbGV0IGRhdGVGb3JtYXQgPSAnJztcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGVGb3JtYXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRhdGVGb3JtYXQuY2hhckF0KGkpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdERCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdNTSc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdNTU0nO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnWSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnWVlZWSc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICcvJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICcvJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJy0nOlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJy0nO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnOic6XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnOic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdIJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdISCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdpJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdtbSc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICdzcyc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVGb3JtYXQuY2hhckF0KGkpICE9ICcuJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9IHRoaXMuZGF0ZUZvcm1hdC5jaGFyQXQoaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdCA/IGRhdGVGb3JtYXQgOiAnREQvTU0vWVlZWSBISDptbTowMCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBOZ3REYXRlTG9jYWxlIHtcclxuICAgIEJSQVpJTCA9ICdCUkFaSUwnLFxyXG4gICAgVVMgPSAnVVMnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE5ndERhdGVNb2RlIHtcclxuICAgIFNJTkdMRSA9ICdTSU5HTEUnLFxyXG4gICAgUkFOR0UgPSAnUkFOR0UnXHJcbn1cclxuIl19
|