@sd-angular/core 1.3.243 → 1.3.245

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.
Files changed (105) hide show
  1. package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
  2. package/bundles/sd-angular-core-autocomplete.umd.js +20 -21
  3. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  4. package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -15
  5. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  6. package/bundles/sd-angular-core-date-full.umd.js +716 -0
  7. package/bundles/sd-angular-core-date-full.umd.js.map +1 -0
  8. package/bundles/sd-angular-core-date-full.umd.min.js +2 -0
  9. package/bundles/sd-angular-core-date-full.umd.min.js.map +1 -0
  10. package/bundles/sd-angular-core-date-time.umd.js +5 -6
  11. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  12. package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
  13. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  14. package/bundles/sd-angular-core-date.umd.js +718 -0
  15. package/bundles/sd-angular-core-date.umd.js.map +1 -0
  16. package/bundles/sd-angular-core-date.umd.min.js +2 -0
  17. package/bundles/sd-angular-core-date.umd.min.js.map +1 -0
  18. package/bundles/sd-angular-core-export.umd.js +3 -0
  19. package/bundles/sd-angular-core-export.umd.js.map +1 -1
  20. package/bundles/sd-angular-core-export.umd.min.js +1 -1
  21. package/bundles/sd-angular-core-export.umd.min.js.map +1 -1
  22. package/bundles/sd-angular-core-form.umd.js +10 -4
  23. package/bundles/sd-angular-core-form.umd.js.map +1 -1
  24. package/bundles/sd-angular-core-form.umd.min.js +1 -1
  25. package/bundles/sd-angular-core-form.umd.min.js.map +1 -1
  26. package/bundles/sd-angular-core-input-number.umd.js +7 -10
  27. package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
  28. package/bundles/sd-angular-core-input-number.umd.min.js +2 -2
  29. package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
  30. package/bundles/sd-angular-core-month.umd.js +741 -0
  31. package/bundles/sd-angular-core-month.umd.js.map +1 -0
  32. package/bundles/sd-angular-core-month.umd.min.js +2 -0
  33. package/bundles/sd-angular-core-month.umd.min.js.map +1 -0
  34. package/bundles/sd-angular-core.umd.js +4 -4
  35. package/bundles/sd-angular-core.umd.min.js +1 -1
  36. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  37. package/date/index.d.ts +1 -0
  38. package/date/package.json +12 -0
  39. package/date/sd-angular-core-date.d.ts +4 -0
  40. package/date/sd-angular-core-date.metadata.json +1 -0
  41. package/date/src/lib/date.component.d.ts +62 -0
  42. package/date/src/lib/date.module.d.ts +2 -0
  43. package/date/src/public-api.d.ts +2 -0
  44. package/date-full/index.d.ts +1 -0
  45. package/date-full/package.json +12 -0
  46. package/date-full/sd-angular-core-date-full.d.ts +4 -0
  47. package/date-full/sd-angular-core-date-full.metadata.json +1 -0
  48. package/date-full/src/lib/date-full.component.d.ts +64 -0
  49. package/date-full/src/lib/date-full.module.d.ts +2 -0
  50. package/date-full/src/public-api.d.ts +2 -0
  51. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  52. package/esm2015/autocomplete/src/lib/autocomplete.component.js +2 -2
  53. package/esm2015/autocomplete/src/lib/autocomplete.module.js +8 -10
  54. package/esm2015/date/index.js +2 -0
  55. package/esm2015/date/sd-angular-core-date.js +5 -0
  56. package/esm2015/date/src/lib/date.component.js +309 -0
  57. package/esm2015/date/src/lib/date.module.js +38 -0
  58. package/esm2015/date/src/public-api.js +3 -0
  59. package/esm2015/date-full/index.js +2 -0
  60. package/esm2015/date-full/sd-angular-core-date-full.js +5 -0
  61. package/esm2015/date-full/src/lib/date-full.component.js +307 -0
  62. package/esm2015/date-full/src/lib/date-full.module.js +40 -0
  63. package/esm2015/date-full/src/public-api.js +3 -0
  64. package/esm2015/date-time/src/lib/date-time.component.js +2 -2
  65. package/esm2015/date-time/src/lib/date-time.module.js +10 -12
  66. package/esm2015/export/src/lib/export.service.js +4 -1
  67. package/esm2015/form/src/lib/form.module.js +21 -12
  68. package/esm2015/input-number/src/lib/input-number.component.js +2 -2
  69. package/esm2015/input-number/src/lib/input-number.module.js +3 -7
  70. package/esm2015/month/index.js +2 -0
  71. package/esm2015/month/sd-angular-core-month.js +5 -0
  72. package/esm2015/month/src/lib/month.component.js +332 -0
  73. package/esm2015/month/src/lib/month.module.js +40 -0
  74. package/esm2015/month/src/public-api.js +3 -0
  75. package/esm2015/public-api.js +4 -1
  76. package/fesm2015/sd-angular-core-autocomplete.js +8 -10
  77. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  78. package/fesm2015/sd-angular-core-date-full.js +348 -0
  79. package/fesm2015/sd-angular-core-date-full.js.map +1 -0
  80. package/fesm2015/sd-angular-core-date-time.js +12 -14
  81. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  82. package/fesm2015/sd-angular-core-date.js +348 -0
  83. package/fesm2015/sd-angular-core-date.js.map +1 -0
  84. package/fesm2015/sd-angular-core-export.js +3 -0
  85. package/fesm2015/sd-angular-core-export.js.map +1 -1
  86. package/fesm2015/sd-angular-core-form.js +19 -10
  87. package/fesm2015/sd-angular-core-form.js.map +1 -1
  88. package/fesm2015/sd-angular-core-input-number.js +3 -7
  89. package/fesm2015/sd-angular-core-input-number.js.map +1 -1
  90. package/fesm2015/sd-angular-core-month.js +373 -0
  91. package/fesm2015/sd-angular-core-month.js.map +1 -0
  92. package/fesm2015/sd-angular-core.js +3 -0
  93. package/fesm2015/sd-angular-core.js.map +1 -1
  94. package/form/sd-angular-core-form.metadata.json +1 -1
  95. package/input-number/sd-angular-core-input-number.metadata.json +1 -1
  96. package/month/index.d.ts +1 -0
  97. package/month/package.json +12 -0
  98. package/month/sd-angular-core-month.d.ts +4 -0
  99. package/month/sd-angular-core-month.metadata.json +1 -0
  100. package/month/src/lib/month.component.d.ts +64 -0
  101. package/month/src/lib/month.module.d.ts +2 -0
  102. package/month/src/public-api.d.ts +2 -0
  103. package/package.json +1 -1
  104. package/public-api.d.ts +3 -0
  105. package/{sd-angular-core-1.3.243.tgz → sd-angular-core-1.3.245.tgz} +0 -0
@@ -0,0 +1,307 @@
1
+ var _date, _name, _form, _subscription;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { NGX_MAT_DATE_FORMATS, NgxMatDatetimePicker } from '@angular-material-components/datetime-picker';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
5
+ import { NgForm, Validators } from '@angular/forms';
6
+ import { FORM_CONFIG, SdFormControl, SdLabelDefDirective, SdViewDefDirective } from '@sd-angular/core/common';
7
+ import moment from 'moment';
8
+ import { DeviceDetectorService } from 'ngx-device-detector';
9
+ import hash from 'object-hash';
10
+ import { Subscription } from 'rxjs';
11
+ import * as uuid from 'uuid';
12
+ const CUSTOM_DATETIME_FORMATS = {
13
+ parse: {
14
+ dateInput: 'DD/MM/YYYY HH:mm:ss',
15
+ },
16
+ display: {
17
+ dateInput: 'DD/MM/YYYY HH:mm:ss',
18
+ monthYearLabel: 'MMM YYYY',
19
+ dateA11yLabel: 'LL',
20
+ monthYearA11yLabel: 'MMMM YYYY',
21
+ },
22
+ };
23
+ const ɵ0 = CUSTOM_DATETIME_FORMATS;
24
+ export class SdDateFull {
25
+ constructor(ref, deviceService, formConfig) {
26
+ this.ref = ref;
27
+ this.formConfig = formConfig;
28
+ this.id = `I${uuid.v4()}`;
29
+ this.isMobileOrTablet = false;
30
+ _date.set(this, void 0);
31
+ _name.set(this, uuid.v4());
32
+ this.disableErrorMessage = false;
33
+ this.formControl = new SdFormControl();
34
+ _form.set(this, void 0);
35
+ this.required = false;
36
+ this.sdChange = new EventEmitter();
37
+ this.sdFocus = new EventEmitter();
38
+ this.modelChange = new EventEmitter();
39
+ _subscription.set(this, new Subscription());
40
+ this.isFocused = false;
41
+ this.onFocus = () => {
42
+ this.isFocused = true;
43
+ this.sdFocus.emit();
44
+ };
45
+ this.onBlur = () => {
46
+ this.isFocused = false;
47
+ };
48
+ this.onClick = () => {
49
+ var _a;
50
+ if ((_a = this.sdView) === null || _a === void 0 ? void 0 : _a.templateRef) {
51
+ if (!this.formControl.disabled && !this.isFocused) {
52
+ this.focus();
53
+ }
54
+ }
55
+ };
56
+ this.blur = () => {
57
+ var _a, _b;
58
+ (_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.blur();
59
+ };
60
+ this.focus = () => {
61
+ this.isFocused = true;
62
+ setTimeout(() => {
63
+ var _a, _b, _c;
64
+ (_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.focus();
65
+ (_c = this.dateTimePicker) === null || _c === void 0 ? void 0 : _c.open();
66
+ }, 100);
67
+ };
68
+ this.onKeyDown = (event) => {
69
+ const key = event.keyCode || event.charCode;
70
+ let isShift = false;
71
+ if (key === 16) {
72
+ isShift = true;
73
+ }
74
+ // cho phép copy parse
75
+ if (event.ctrlKey && (key === 67 || key === 86)) {
76
+ console.log('action copy parse... datepicker');
77
+ return true;
78
+ }
79
+ // Allow only Numeric Keys.
80
+ if (((key >= 48 && key <= 57) ||
81
+ key === 8 ||
82
+ key <= 37 ||
83
+ key <= 39 ||
84
+ (key >= 96 && key <= 105) ||
85
+ key === 191 ||
86
+ key === 186 ||
87
+ key === 59) &&
88
+ isShift === false) {
89
+ return true;
90
+ }
91
+ else {
92
+ return false;
93
+ }
94
+ };
95
+ this.onKeyup = event => {
96
+ const currentVal = event.target.value;
97
+ const formControl = this.formControl;
98
+ let regex = /^([1-9]|([012][0-9])|(3[01]))\/([0]{0,1}[1-9]|1[012])\/\d\d\d\d [012]{0,1}[0-9]:[0-6][0-9]:[0-6][0-9]$/g;
99
+ if (currentVal && !regex.test(currentVal)) {
100
+ setTimeout(() => {
101
+ this.isValid = true;
102
+ formControl.markAsDirty();
103
+ formControl.markAsTouched();
104
+ formControl.setErrors(Object.assign(Object.assign({}, formControl.errors), { date: `Sai định dạng` }));
105
+ }, 0);
106
+ }
107
+ else {
108
+ setTimeout(() => {
109
+ this.isValid = false;
110
+ formControl.setErrors(Object.assign(Object.assign({}, formControl.errors), { date: null }));
111
+ this.formControl.updateValueAndValidity();
112
+ }, 0);
113
+ }
114
+ };
115
+ this.onChange = (event) => {
116
+ var _a;
117
+ const value = (_a = event.value) === null || _a === void 0 ? void 0 : _a.toDate();
118
+ if (!this.isValid) {
119
+ if (new Date(__classPrivateFieldGet(this, _date)) !== value) {
120
+ this.modelChange.emit(value);
121
+ this.sdChange.emit(value);
122
+ }
123
+ }
124
+ else {
125
+ this.isValid = false;
126
+ this.formControl.setValue(null);
127
+ this.modelChange.emit(null);
128
+ this.sdChange.emit(null);
129
+ }
130
+ };
131
+ this.clear = ($event) => {
132
+ $event === null || $event === void 0 ? void 0 : $event.stopPropagation();
133
+ if (this.formControl.value) {
134
+ this.formControl.setValue(null);
135
+ this.modelChange.emit(null);
136
+ this.sdChange.emit(null);
137
+ }
138
+ };
139
+ this.isMobileOrTablet = !deviceService.isDesktop();
140
+ }
141
+ set name(val) {
142
+ if (val) {
143
+ __classPrivateFieldSet(this, _name, val);
144
+ }
145
+ }
146
+ set _disableErrorMessage(val) {
147
+ this.disableErrorMessage = val === '' || val;
148
+ val = val === '' || val;
149
+ }
150
+ set _min(val) {
151
+ if (Date.isDate(val)) {
152
+ this.min = new Date(val);
153
+ }
154
+ else {
155
+ this.min = null;
156
+ }
157
+ }
158
+ set _max(val) {
159
+ if (Date.isDate(val)) {
160
+ this.max = new Date(val);
161
+ }
162
+ else {
163
+ this.max = null;
164
+ }
165
+ }
166
+ set form(val) {
167
+ if (val) {
168
+ if (val instanceof NgForm) {
169
+ __classPrivateFieldSet(this, _form, val.form);
170
+ }
171
+ else {
172
+ __classPrivateFieldSet(this, _form, val);
173
+ }
174
+ }
175
+ }
176
+ set disabled(val) {
177
+ val = val === '' || val;
178
+ if (val) {
179
+ this.formControl.disable();
180
+ }
181
+ else {
182
+ this.formControl.enable();
183
+ }
184
+ }
185
+ set _required(val) {
186
+ this.required = val === '' || val;
187
+ if (this.required) {
188
+ this.formControl.setValidators([Validators.required]);
189
+ }
190
+ else {
191
+ this.formControl.clearValidators();
192
+ }
193
+ }
194
+ set _inlineError(val) {
195
+ this.inlineError = val;
196
+ // this.#updateValidator();
197
+ if (this.inlineError) {
198
+ this.formControl.setValidators([this.customInlineErrorValidator()]);
199
+ this.formControl.updateValueAndValidity();
200
+ }
201
+ else {
202
+ this.formControl.clearValidators();
203
+ this.formControl.updateValueAndValidity();
204
+ }
205
+ }
206
+ set _label(val) {
207
+ this.label = val;
208
+ this.qcId = hash({
209
+ selector: 'sd-date-full',
210
+ label: val,
211
+ });
212
+ }
213
+ set minDate(val) {
214
+ if (Date.isDate(val)) {
215
+ this.min = new Date(val);
216
+ }
217
+ else {
218
+ this.min = null;
219
+ }
220
+ }
221
+ set maxDate(val) {
222
+ if (Date.isDate(val)) {
223
+ this.max = new Date(val);
224
+ }
225
+ else {
226
+ this.max = null;
227
+ }
228
+ }
229
+ set model(val) {
230
+ if (!Date.isDate(val)) {
231
+ val = null;
232
+ }
233
+ if (__classPrivateFieldGet(this, _date) !== val) {
234
+ __classPrivateFieldSet(this, _date, val);
235
+ const date = Date.isDate(__classPrivateFieldGet(this, _date)) ? moment(Date.toFormat(__classPrivateFieldGet(this, _date), 'MM/dd/yyyy HH:mm:ss'), 'MM/DD/YYYY HH:mm:ss') : null;
236
+ this.formControl.setValue(date);
237
+ }
238
+ }
239
+ ngOnDestroy() {
240
+ var _a;
241
+ (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
242
+ __classPrivateFieldGet(this, _subscription).unsubscribe();
243
+ }
244
+ ngOnInit() {
245
+ var _a, _b;
246
+ this.appearance = this.appearance || ((_a = this.formConfig) === null || _a === void 0 ? void 0 : _a.appearance);
247
+ __classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
248
+ // this.formControl.updateValueAndValidity();
249
+ this.ref.markForCheck();
250
+ }));
251
+ (_b = __classPrivateFieldGet(this, _form)) === null || _b === void 0 ? void 0 : _b.addControl(__classPrivateFieldGet(this, _name), this.formControl);
252
+ }
253
+ // Hàm tạo Validators tùy chỉnh cho inlineError
254
+ customInlineErrorValidator() {
255
+ return (control) => {
256
+ return { inlineError: true };
257
+ };
258
+ }
259
+ ngAfterViewInit() { }
260
+ focusInputElement() {
261
+ var _a, _b;
262
+ (_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.focus();
263
+ }
264
+ }
265
+ _date = new WeakMap(), _name = new WeakMap(), _form = new WeakMap(), _subscription = new WeakMap();
266
+ SdDateFull.decorators = [
267
+ { type: Component, args: [{
268
+ selector: 'sd-date-full',
269
+ template: "<ng-container *ngIf=\"!appearance && sdLabelDef?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdLabelDef.templateRef\"> </ng-container>\r\n</ng-container>\r\n<label *ngIf=\"!appearance && label && !sdLabelDef?.templateRef\" class=\"d-block mb-0 T14M\"\r\n >{{ label }} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label\r\n>\r\n<div\r\n class=\"d-flex align-items-center\"\r\n [class.sd-view]=\"sdView?.templateRef\"\r\n [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\"\r\n (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused && !dateTimePicker?.opened; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef; context: { value: formControl.value }\"> </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field\r\n class=\"sd-md\"\r\n [ngClass]=\"{ 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage }\"\r\n [appearance]=\"appearance || 'outline'\">\r\n <mat-label *ngIf=\"appearance && label\">{{ label }}</mat-label>\r\n <input\r\n aria-hidden=\"true\"\r\n [id]=\"id\"\r\n matInput\r\n (keyup)=\"onKeyup($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (dateChange)=\"onChange($event)\"\r\n [autocomplete]=\"id\"\r\n autocorrect=\"off\"\r\n [formControl]=\"formControl\"\r\n [ngxMatDatetimePicker]=\"picker1\"\r\n [placeholder]=\"placeholder || (appearance ? label : '')\"\r\n [min]=\"min\"\r\n [required]=\"required\"\r\n [max]=\"max\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [attr.data-qclabel]=\"label\"\r\n [attr.data-qcid]=\"qcId\"\r\n #input\r\n [maxLength]=\"19\" />\r\n <ng-content select=\"[sdSuffixIcon]\" matSuffix></ng-content>\r\n <mat-icon\r\n *ngIf=\"formControl?.value && !required && !formControl.disabled\"\r\n class=\"pointer sd-suffix-icon\"\r\n (click)=\"clear($event)\"\r\n matSuffix\r\n >cancel\r\n </mat-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"> </mat-datepicker-toggle>\r\n <ngx-mat-datetime-picker\r\n #picker1\r\n [defaultTime]=\"defaultTime\"\r\n [showSeconds]=\"true\"\r\n [touchUi]=\"isMobileOrTablet\"\r\n [showSpinners]=\"false\"\r\n (opened)=\"onFocus()\"\r\n (closed)=\"onBlur(); focusInputElement()\">\r\n </ngx-mat-datetime-picker>\r\n <mat-error *ngIf=\"formControl?.errors?.required && formControl?.touched\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ 'This field is required' | sdTranslate }}</ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatetimePickerMin && formControl?.touched && !isFocused\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Min date' | sdTranslate }}:\r\n <strong>{{ min | date : 'dd/MM/yyyy HH:mm:ss' }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatetimePickerMax && formControl?.touched && !isFocused\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Max date' | sdTranslate }}:\r\n <strong>{{ max | date : 'dd/MM/yyyy HH:mm:ss' }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.matDatetimePickerParse && formControl?.touched && !isFocused\">\r\n <ng-container *ngIf=\"!disableErrorMessage\"\r\n >{{ 'Parse error' | sdTranslate }}:\r\n <strong>{{ formControl?.errors?.matDatetimePickerParse?.text }}</strong>\r\n </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.customValidator && formControl?.touched && !disableErrorMessage\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ formControl?.errors?.customValidator }} </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl?.errors?.date && formControl?.touched && !disableErrorMessage\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ formControl?.errors?.date }} </ng-container>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.inlineError && formControl?.touched && !disableErrorMessage\">\r\n <ng-container *ngIf=\"!disableErrorMessage\">{{ inlineError }}</ng-container>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>\r\n",
270
+ changeDetection: ChangeDetectionStrategy.OnPush,
271
+ providers: [{ provide: NGX_MAT_DATE_FORMATS, useValue: ɵ0 }],
272
+ styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]
273
+ },] }
274
+ ];
275
+ SdDateFull.ctorParameters = () => [
276
+ { type: ChangeDetectorRef },
277
+ { type: DeviceDetectorService },
278
+ { type: undefined, decorators: [{ type: Inject, args: [FORM_CONFIG,] }, { type: Optional }] }
279
+ ];
280
+ SdDateFull.propDecorators = {
281
+ name: [{ type: Input }],
282
+ appearance: [{ type: Input }],
283
+ _disableErrorMessage: [{ type: Input, args: ['disableErrorMessage',] }],
284
+ _min: [{ type: Input, args: ['min',] }],
285
+ _max: [{ type: Input, args: ['max',] }],
286
+ size: [{ type: Input }],
287
+ form: [{ type: Input }],
288
+ disabled: [{ type: Input }],
289
+ _required: [{ type: Input, args: ['required',] }],
290
+ _inlineError: [{ type: Input, args: ['inlineError',] }],
291
+ _label: [{ type: Input, args: ['label',] }],
292
+ placeholder: [{ type: Input }],
293
+ defaultTime: [{ type: Input }],
294
+ minDate: [{ type: Input }],
295
+ maxDate: [{ type: Input }],
296
+ validator: [{ type: Input }],
297
+ sdChange: [{ type: Output }],
298
+ sdFocus: [{ type: Output }],
299
+ model: [{ type: Input }],
300
+ modelChange: [{ type: Output }],
301
+ sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }],
302
+ sdLabelDef: [{ type: ContentChild, args: [SdLabelDefDirective,] }],
303
+ input: [{ type: ViewChild, args: ['input',] }],
304
+ dateTimePicker: [{ type: ViewChild, args: [NgxMatDatetimePicker,] }]
305
+ };
306
+ export { ɵ0 };
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mdWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGF0ZS1mdWxsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9kYXRlLWZ1bGwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUcsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQThCLE1BQU0sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3RixPQUFPLEVBQUUsV0FBVyxFQUFzQixhQUFhLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsSSxPQUFPLE1BQWtCLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQztJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENB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QUNoQyxTQUFTLFNBQUMsT0FBTzs2QkFDakIsU0FBUyxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5HWF9NQVRfREFURV9GT1JNQVRTLCBOZ3hNYXREYXRldGltZVBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIsIE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgRk9STV9DT05GSUcsIElGb3JtQ29uZmlndXJhdGlvbiwgU2RGb3JtQ29udHJvbCwgU2RMYWJlbERlZkRpcmVjdGl2ZSwgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuY29uc3QgQ1VTVE9NX0RBVEVUSU1FX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVkgSEg6bW06c3MnLFxyXG4gIH0sXHJcbiAgZGlzcGxheToge1xyXG4gICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWSBISDptbTpzcycsXHJcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcclxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxyXG4gIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWRhdGUtZnVsbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZnVsbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1mdWxsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR1hfTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IENVU1RPTV9EQVRFVElNRV9GT1JNQVRTIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2REYXRlRnVsbCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBpZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgI2RhdGU6IGFueTtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gdmFsID09PSAnJyB8fCB2YWw7XHJcbiAgICB2YWwgPSB2YWwgPT09ICcnIHx8IHZhbDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBtaW46IERhdGU7XHJcblxyXG4gIEBJbnB1dCgnbWluJykgc2V0IF9taW4odmFsOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAoRGF0ZS5pc0RhdGUodmFsKSkge1xyXG4gICAgICB0aGlzLm1pbiA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXg6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgnbWF4Jykgc2V0IF9tYXgodmFsOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAoRGF0ZS5pc0RhdGUodmFsKSkge1xyXG4gICAgICB0aGlzLm1heCA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1heCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSB2YWwgPT09ICcnIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCdyZXF1aXJlZCcpIHNldCBfcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMucmVxdWlyZWQgPSB2YWwgPT09ICcnIHx8IHZhbDtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlubGluZUVycm9yOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnaW5saW5lRXJyb3InKSBzZXQgX2lubGluZUVycm9yKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlubGluZUVycm9yID0gdmFsO1xyXG4gICAgLy8gdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgICBpZiAodGhpcy5pbmxpbmVFcnJvcikge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW3RoaXMuY3VzdG9tSW5saW5lRXJyb3JWYWxpZGF0b3IoKV0pO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcWNJZDogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnbGFiZWwnKSBzZXQgX2xhYmVsKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxhYmVsID0gdmFsO1xyXG4gICAgdGhpcy5xY0lkID0gaGFzaCh7XHJcbiAgICAgIHNlbGVjdG9yOiAnc2QtZGF0ZS1mdWxsJyxcclxuICAgICAgbGFiZWw6IHZhbCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBkZWZhdWx0VGltZTogYW55O1xyXG5cclxuICBASW5wdXQoKSBzZXQgbWluRGF0ZSh2YWw6IHN0cmluZyB8IERhdGUpIHtcclxuICAgIGlmIChEYXRlLmlzRGF0ZSh2YWwpKSB7XHJcbiAgICAgIHRoaXMubWluID0gbmV3IERhdGUodmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWluID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbDogc3RyaW5nIHwgRGF0ZSkge1xyXG4gICAgaWYgKERhdGUuaXNEYXRlKHZhbCkpIHtcclxuICAgICAgdGhpcy5tYXggPSBuZXcgRGF0ZSh2YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXggPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsOiBhbnkpIHtcclxuICAgIGlmICghRGF0ZS5pc0RhdGUodmFsKSkge1xyXG4gICAgICB2YWwgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2RhdGUgIT09IHZhbCkge1xyXG4gICAgICB0aGlzLiNkYXRlID0gdmFsO1xyXG4gICAgICBjb25zdCBkYXRlID0gRGF0ZS5pc0RhdGUodGhpcy4jZGF0ZSkgPyBtb21lbnQoRGF0ZS50b0Zvcm1hdCh0aGlzLiNkYXRlLCAnTU0vZGQveXl5eSBISDptbTpzcycpLCAnTU0vREQvWVlZWSBISDptbTpzcycpIDogbnVsbDtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKFNkTGFiZWxEZWZEaXJlY3RpdmUpIHNkTGFiZWxEZWY6IFNkTGFiZWxEZWZEaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKE5neE1hdERhdGV0aW1lUGlja2VyKSBkYXRlVGltZVBpY2tlcjogTmd4TWF0RGF0ZXRpbWVQaWNrZXI8TW9tZW50PjtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEZPUk1fQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1Db25maWc6IElGb3JtQ29uZmlndXJhdGlvblxyXG4gICkge1xyXG4gICAgdGhpcy5pc01vYmlsZU9yVGFibGV0ID0gIWRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hcHBlYXJhbmNlID0gdGhpcy5hcHBlYXJhbmNlIHx8IHRoaXMuZm9ybUNvbmZpZz8uYXBwZWFyYW5jZTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIC8vIEjDoG0gdOG6oW8gVmFsaWRhdG9ycyB0w7l5IGNo4buJbmggY2hvIGlubGluZUVycm9yXHJcbiAgY3VzdG9tSW5saW5lRXJyb3JWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgIHJldHVybiB7IGlubGluZUVycm9yOiB0cnVlIH07XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge31cclxuXHJcbiAgb25Gb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2RGb2N1cy5lbWl0KCk7XHJcbiAgfTtcclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9O1xyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICB0aGlzLmRhdGVUaW1lUGlja2VyPy5vcGVuKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH07XHJcblxyXG4gIGZvY3VzSW5wdXRFbGVtZW50KCkge1xyXG4gICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWQ6IGJvb2xlYW47XHJcbiAgb25LZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LmNoYXJDb2RlO1xyXG4gICAgbGV0IGlzU2hpZnQgPSBmYWxzZTtcclxuICAgIGlmIChrZXkgPT09IDE2KSB7XHJcbiAgICAgIGlzU2hpZnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNobyBwaMOpcCBjb3B5IHBhcnNlXHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoa2V5ID09PSA2NyB8fCBrZXkgPT09IDg2KSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnYWN0aW9uIGNvcHkgcGFyc2UuLi4gZGF0ZXBpY2tlcicpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBbGxvdyBvbmx5IE51bWVyaWMgS2V5cy5cclxuICAgIGlmIChcclxuICAgICAgKChrZXkgPj0gNDggJiYga2V5IDw9IDU3KSB8fFxyXG4gICAgICAgIGtleSA9PT0gOCB8fFxyXG4gICAgICAgIGtleSA8PSAzNyB8fFxyXG4gICAgICAgIGtleSA8PSAzOSB8fFxyXG4gICAgICAgIChrZXkgPj0gOTYgJiYga2V5IDw9IDEwNSkgfHxcclxuICAgICAgICBrZXkgPT09IDE5MSB8fFxyXG4gICAgICAgIGtleSA9PT0gMTg2IHx8XHJcbiAgICAgICAga2V5ID09PSA1OSkgJiZcclxuICAgICAgaXNTaGlmdCA9PT0gZmFsc2VcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBvbktleXVwID0gZXZlbnQgPT4ge1xyXG4gICAgY29uc3QgY3VycmVudFZhbDogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3QgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybUNvbnRyb2w7XHJcbiAgICBsZXQgcmVnZXggPSAvXihbMS05XXwoWzAxMl1bMC05XSl8KDNbMDFdKSlcXC8oWzBdezAsMX1bMS05XXwxWzAxMl0pXFwvXFxkXFxkXFxkXFxkIFswMTJdezAsMX1bMC05XTpbMC02XVswLTldOlswLTZdWzAtOV0kL2c7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRWYWwgJiYgIXJlZ2V4LnRlc3QoY3VycmVudFZhbCkpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoeyAuLi5mb3JtQ29udHJvbC5lcnJvcnMsIGRhdGU6IGBTYWkgxJHhu4tuaCBk4bqhbmdgIH0pO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IC4uLmZvcm1Db250cm9sLmVycm9ycywgZGF0ZTogbnVsbCB9KTtcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgb25DaGFuZ2UgPSAoZXZlbnQ6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PE1vbWVudD4pID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU/LnRvRGF0ZSgpO1xyXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcclxuICAgICAgaWYgKG5ldyBEYXRlKHRoaXMuI2RhdGUpICE9PSB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNsZWFyID0gKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { NgxMatDatetimePickerModule, NgxMatTimepickerModule } from '@angular-material-components/datetime-picker';
2
+ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
3
+ import { CommonModule } from '@angular/common';
4
+ import { NgModule } from '@angular/core';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { MatMomentDateModule } from '@angular/material-moment-adapter';
7
+ import { MatDatepickerModule } from '@angular/material/datepicker';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import { MatIconModule } from '@angular/material/icon';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import { SdButtonModule } from '@sd-angular/core/button';
12
+ import { SdCommonModule } from '@sd-angular/core/common';
13
+ import { SdTranslateModule } from '@sd-angular/core/translate';
14
+ import { SdDateFull } from './date-full.component';
15
+ export class SdDateFullModule {
16
+ }
17
+ SdDateFullModule.decorators = [
18
+ { type: NgModule, args: [{
19
+ imports: [
20
+ CommonModule,
21
+ FormsModule,
22
+ ReactiveFormsModule,
23
+ MatInputModule,
24
+ MatIconModule,
25
+ MatFormFieldModule,
26
+ MatDatepickerModule,
27
+ MatMomentDateModule,
28
+ NgxMatDatetimePickerModule,
29
+ NgxMatTimepickerModule,
30
+ NgxMatMomentModule,
31
+ SdTranslateModule,
32
+ SdCommonModule,
33
+ SdButtonModule,
34
+ ],
35
+ declarations: [SdDateFull],
36
+ exports: [SdCommonModule, SdDateFull],
37
+ providers: [],
38
+ },] }
39
+ ];
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1mdWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGF0ZS1mdWxsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9kYXRlLWZ1bGwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBdUJuRCxNQUFNLE9BQU8sZ0JBQWdCOzs7WUFyQjVCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxhQUFhO29CQUNiLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsc0JBQXNCO29CQUN0QixrQkFBa0I7b0JBQ2xCLGlCQUFpQjtvQkFDakIsY0FBYztvQkFDZCxjQUFjO2lCQUNmO2dCQUNELFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztnQkFDckMsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5neE1hdERhdGV0aW1lUGlja2VyTW9kdWxlLCBOZ3hNYXRUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9kYXRldGltZS1waWNrZXInO1xyXG5pbXBvcnQgeyBOZ3hNYXRNb21lbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL21vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFNkQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9idXR0b24nO1xyXG5pbXBvcnQgeyBTZENvbW1vbk1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IFNkRGF0ZUZ1bGwgfSBmcm9tICcuL2RhdGUtZnVsbC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0TW9tZW50RGF0ZU1vZHVsZSxcclxuICAgIE5neE1hdERhdGV0aW1lUGlja2VyTW9kdWxlLFxyXG4gICAgTmd4TWF0VGltZXBpY2tlck1vZHVsZSxcclxuICAgIE5neE1hdE1vbWVudE1vZHVsZSxcclxuICAgIFNkVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgU2RDb21tb25Nb2R1bGUsXHJcbiAgICBTZEJ1dHRvbk1vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1NkRGF0ZUZ1bGxdLFxyXG4gIGV4cG9ydHM6IFtTZENvbW1vbk1vZHVsZSwgU2REYXRlRnVsbF0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRGF0ZUZ1bGxNb2R1bGUge31cclxuIl19
@@ -0,0 +1,3 @@
1
+ export { SdDateFullModule } from './lib/date-full.module';
2
+ export { SdDateFull } from './lib/date-full.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGF0ZS1mdWxsLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2REYXRlRnVsbE1vZHVsZSB9IGZyb20gJy4vbGliL2RhdGUtZnVsbC5tb2R1bGUnO1xyXG5leHBvcnQgeyBTZERhdGVGdWxsIH0gZnJvbSAnLi9saWIvZGF0ZS1mdWxsLmNvbXBvbmVudCc7XHJcbiJdfQ==