@ng-nest/ui 15.0.7 → 15.0.9
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/base-form/base-form.property.d.ts +2 -2
- package/core/config/config.d.ts +5 -0
- package/date-picker/date-picker.component.d.ts +5 -1
- package/date-picker/date-picker.module.d.ts +6 -5
- package/date-picker/date-picker.property.d.ts +139 -9
- package/date-picker/date-range-portal.component.d.ts +20 -13
- package/date-picker/date-range.component.d.ts +14 -4
- package/date-picker/picker-month.component.d.ts +15 -4
- package/date-picker/picker-year.component.d.ts +15 -5
- package/esm2020/base-form/base-form.property.mjs +1 -1
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/date-picker/date-picker-portal.component.mjs +8 -7
- package/esm2020/date-picker/date-picker.component.mjs +32 -10
- package/esm2020/date-picker/date-picker.module.mjs +5 -1
- package/esm2020/date-picker/date-picker.property.mjs +178 -15
- package/esm2020/date-picker/date-range-portal.component.mjs +123 -52
- package/esm2020/date-picker/date-range.component.mjs +99 -34
- package/esm2020/date-picker/picker-date.component.mjs +4 -4
- package/esm2020/date-picker/picker-month.component.mjs +151 -11
- package/esm2020/date-picker/picker-year.component.mjs +151 -13
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_GB.mjs +11 -2
- package/esm2020/i18n/languages/en_US.mjs +11 -2
- package/esm2020/i18n/languages/zh_CN.mjs +11 -2
- package/esm2020/i18n/languages/zh_TW.mjs +11 -2
- package/esm2020/link/link.component.mjs +19 -5
- package/esm2020/link/link.property.mjs +10 -4
- package/esm2020/slider/slider.component.mjs +3 -3
- package/esm2020/switch/switch.property.mjs +9 -3
- package/esm2020/table/table-head.component.mjs +5 -3
- package/esm2020/table/table.property.mjs +1 -1
- package/esm2020/time-picker/time-picker-frame.component.mjs +28 -11
- package/esm2020/time-picker/time-picker-portal.component.mjs +2 -2
- package/fesm2015/ng-nest-ui-base-form.mjs +0 -1
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +726 -123
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +1 -0
- package/fesm2015/ng-nest-ui-i18n.mjs +40 -4
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +1 -0
- package/fesm2015/ng-nest-ui-link.mjs +28 -9
- package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-loading.mjs +1 -0
- package/fesm2015/ng-nest-ui-slider.mjs +2 -3
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs +9 -2
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +5 -2
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +28 -11
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +0 -1
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +727 -128
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +1 -0
- package/fesm2020/ng-nest-ui-i18n.mjs +40 -4
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +1 -0
- package/fesm2020/ng-nest-ui-link.mjs +27 -9
- package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-loading.mjs +1 -0
- package/fesm2020/ng-nest-ui-slider.mjs +2 -3
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs +9 -2
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +5 -2
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +28 -11
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/i18n/i18n.property.d.ts +9 -0
- package/i18n/languages/en_GB.d.ts +9 -0
- package/i18n/languages/en_US.d.ts +9 -0
- package/i18n/languages/zh_CN.d.ts +9 -0
- package/i18n/languages/zh_TW.d.ts +9 -0
- package/link/link.component.d.ts +5 -2
- package/link/link.property.d.ts +6 -1
- package/package.json +1 -1
- package/switch/switch.property.d.ts +7 -2
- package/table/table.property.d.ts +5 -0
- package/time-picker/time-picker-frame.component.d.ts +8 -6
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
4
|
import * as i2 from '@ng-nest/ui/core';
|
|
5
|
-
import { XWithConfig, XInputBoolean, XDataConvert, XProperty, XIsChange, XIsNull, XChunk, XIsEmpty, XAddDays, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass, XAddMonths, XAddYears
|
|
5
|
+
import { XWithConfig, XInputBoolean, XDataConvert, XProperty, XIsChange, XIsNull, XChunk, XIsEmpty, XAddDays, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass, XAddMonths, XAddYears } from '@ng-nest/ui/core';
|
|
6
6
|
import { XControlValueAccessor, XValueAccessor, XBaseFormModule } from '@ng-nest/ui/base-form';
|
|
7
7
|
import { Subject } from 'rxjs';
|
|
8
8
|
import { map, takeUntil } from 'rxjs/operators';
|
|
@@ -12,16 +12,17 @@ import * as i3 from '@ng-nest/ui/i18n';
|
|
|
12
12
|
import { XI18nModule } from '@ng-nest/ui/i18n';
|
|
13
13
|
import * as i3$1 from '@ng-nest/ui/time-picker';
|
|
14
14
|
import { XTimePickerModule } from '@ng-nest/ui/time-picker';
|
|
15
|
-
import * as i4 from '@ng-nest/ui/
|
|
15
|
+
import * as i4 from '@ng-nest/ui/link';
|
|
16
|
+
import { XLinkModule } from '@ng-nest/ui/link';
|
|
17
|
+
import * as i5 from '@ng-nest/ui/button';
|
|
16
18
|
import { XButtonModule } from '@ng-nest/ui/button';
|
|
17
19
|
import * as i2$1 from '@ng-nest/ui/portal';
|
|
18
20
|
import { XPortalConnectedPosition, XPortalModule } from '@ng-nest/ui/portal';
|
|
19
|
-
import * as
|
|
20
|
-
import * as
|
|
21
|
+
import * as i5$1 from '@angular/cdk/overlay';
|
|
22
|
+
import * as i6 from '@angular/forms';
|
|
21
23
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
22
|
-
import * as
|
|
24
|
+
import * as i7 from '@ng-nest/ui/input';
|
|
23
25
|
import { XInputModule } from '@ng-nest/ui/input';
|
|
24
|
-
import * as i7 from '@ng-nest/ui/icon';
|
|
25
26
|
import { XIconModule } from '@ng-nest/ui/icon';
|
|
26
27
|
|
|
27
28
|
/**
|
|
@@ -114,11 +115,6 @@ class XDateRangeProperty extends XControlValueAccessor {
|
|
|
114
115
|
* @en_US Select type
|
|
115
116
|
*/
|
|
116
117
|
this.type = 'date';
|
|
117
|
-
/**
|
|
118
|
-
* @zh_CN 快捷选择按钮,支持今天,昨天,明天
|
|
119
|
-
* @en_US Quick selection button, support today, yesterday, tomorrow
|
|
120
|
-
*/
|
|
121
|
-
this.preset = [];
|
|
122
118
|
/**
|
|
123
119
|
* @zh_CN 节点点击的事件
|
|
124
120
|
* @en_US Node click event
|
|
@@ -127,7 +123,7 @@ class XDateRangeProperty extends XControlValueAccessor {
|
|
|
127
123
|
}
|
|
128
124
|
}
|
|
129
125
|
/** @nocollapse */ XDateRangeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
-
/** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered",
|
|
126
|
+
/** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", placeholder: "placeholder" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
131
127
|
__decorate([
|
|
132
128
|
XWithConfig(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd')
|
|
133
129
|
], XDateRangeProperty.prototype, "format", void 0);
|
|
@@ -143,11 +139,8 @@ __decorate([
|
|
|
143
139
|
], XDateRangeProperty.prototype, "size", void 0);
|
|
144
140
|
__decorate([
|
|
145
141
|
XInputBoolean(),
|
|
146
|
-
XWithConfig(
|
|
142
|
+
XWithConfig(X_CONFIG_NAME, true)
|
|
147
143
|
], XDateRangeProperty.prototype, "bordered", void 0);
|
|
148
|
-
__decorate([
|
|
149
|
-
XDataConvert()
|
|
150
|
-
], XDateRangeProperty.prototype, "preset", void 0);
|
|
151
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, decorators: [{
|
|
152
145
|
type: Component,
|
|
153
146
|
args: [{ template: '' }]
|
|
@@ -163,7 +156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
163
156
|
type: Input
|
|
164
157
|
}], bordered: [{
|
|
165
158
|
type: Input
|
|
166
|
-
}],
|
|
159
|
+
}], placeholder: [{
|
|
167
160
|
type: Input
|
|
168
161
|
}], nodeEmit: [{
|
|
169
162
|
type: Output
|
|
@@ -227,6 +220,11 @@ class XPickerDateProperty extends XProperty {
|
|
|
227
220
|
* @en_US Next month
|
|
228
221
|
*/
|
|
229
222
|
this.nextMonthBtn = true;
|
|
223
|
+
/**
|
|
224
|
+
* @zh_CN 范围 hover 效果
|
|
225
|
+
* @en_US Range hover style
|
|
226
|
+
*/
|
|
227
|
+
this.rangeHover = true;
|
|
230
228
|
/**
|
|
231
229
|
* @zh_CN 范围日期
|
|
232
230
|
* @en_US Range date
|
|
@@ -280,7 +278,7 @@ class XPickerDateProperty extends XProperty {
|
|
|
280
278
|
}
|
|
281
279
|
}
|
|
282
280
|
/** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
283
|
-
/** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
281
|
+
/** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeHover: "rangeHover", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
284
282
|
__decorate([
|
|
285
283
|
XInputBoolean()
|
|
286
284
|
], XPickerDateProperty.prototype, "showHeader", void 0);
|
|
@@ -299,6 +297,9 @@ __decorate([
|
|
|
299
297
|
__decorate([
|
|
300
298
|
XInputBoolean()
|
|
301
299
|
], XPickerDateProperty.prototype, "nextMonthBtn", void 0);
|
|
300
|
+
__decorate([
|
|
301
|
+
XInputBoolean()
|
|
302
|
+
], XPickerDateProperty.prototype, "rangeHover", void 0);
|
|
302
303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, decorators: [{
|
|
303
304
|
type: Component,
|
|
304
305
|
args: [{ template: '' }]
|
|
@@ -322,6 +323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
322
323
|
type: Input
|
|
323
324
|
}], nextMonthBtn: [{
|
|
324
325
|
type: Input
|
|
326
|
+
}], rangeHover: [{
|
|
327
|
+
type: Input
|
|
325
328
|
}], rangeValue: [{
|
|
326
329
|
type: Input
|
|
327
330
|
}], rangeType: [{
|
|
@@ -372,6 +375,21 @@ class XPickerMonthProperty extends XProperty {
|
|
|
372
375
|
* @en_US Display switch button
|
|
373
376
|
*/
|
|
374
377
|
this.showHeader = true;
|
|
378
|
+
/**
|
|
379
|
+
* @zh_CN 上一年
|
|
380
|
+
* @en_US Last year
|
|
381
|
+
*/
|
|
382
|
+
this.lastYearBtn = true;
|
|
383
|
+
/**
|
|
384
|
+
* @zh_CN 下一年
|
|
385
|
+
* @en_US Next year
|
|
386
|
+
*/
|
|
387
|
+
this.nextYearBtn = true;
|
|
388
|
+
/**
|
|
389
|
+
* @zh_CN 范围月份
|
|
390
|
+
* @en_US Range date
|
|
391
|
+
*/
|
|
392
|
+
this.rangeValue = [];
|
|
375
393
|
/**
|
|
376
394
|
* @zh_CN 选中的事件
|
|
377
395
|
* @en_US Selected event
|
|
@@ -387,13 +405,52 @@ class XPickerMonthProperty extends XProperty {
|
|
|
387
405
|
* @en_US Scope change event
|
|
388
406
|
*/
|
|
389
407
|
this.rangeChange = new EventEmitter();
|
|
408
|
+
/**
|
|
409
|
+
* @zh_CN 选年的事件
|
|
410
|
+
* @en_US Year change event
|
|
411
|
+
*/
|
|
412
|
+
this.yearChange = new EventEmitter();
|
|
413
|
+
/**
|
|
414
|
+
* @zh_CN 选月的事件
|
|
415
|
+
* @en_US Month change event
|
|
416
|
+
*/
|
|
417
|
+
this.monthChange = new EventEmitter();
|
|
418
|
+
/**
|
|
419
|
+
* @zh_CN 显示月份事件
|
|
420
|
+
* @en_US display date event
|
|
421
|
+
*/
|
|
422
|
+
this.displayChange = new EventEmitter();
|
|
423
|
+
/**
|
|
424
|
+
* @zh_CN 范围月份 mouseenter 事件
|
|
425
|
+
* @en_US Date mouseenter event
|
|
426
|
+
*/
|
|
427
|
+
this.rangeTdMouseenter = new EventEmitter();
|
|
428
|
+
/**
|
|
429
|
+
* @zh_CN 范围月份 mouseleave 事件
|
|
430
|
+
* @en_US Date mouseleave event
|
|
431
|
+
*/
|
|
432
|
+
this.rangeTdMouseleave = new EventEmitter();
|
|
433
|
+
/**
|
|
434
|
+
* @zh_CN 范围中的月份点击事件
|
|
435
|
+
* @en_US Range date click event
|
|
436
|
+
*/
|
|
437
|
+
this.rangeDateClick = new EventEmitter();
|
|
390
438
|
}
|
|
391
439
|
}
|
|
392
440
|
/** @nocollapse */ XPickerMonthProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
393
|
-
/** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
441
|
+
/** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
394
442
|
__decorate([
|
|
395
443
|
XInputBoolean()
|
|
396
444
|
], XPickerMonthProperty.prototype, "showHeader", void 0);
|
|
445
|
+
__decorate([
|
|
446
|
+
XInputBoolean()
|
|
447
|
+
], XPickerMonthProperty.prototype, "rangePicker", void 0);
|
|
448
|
+
__decorate([
|
|
449
|
+
XInputBoolean()
|
|
450
|
+
], XPickerMonthProperty.prototype, "lastYearBtn", void 0);
|
|
451
|
+
__decorate([
|
|
452
|
+
XInputBoolean()
|
|
453
|
+
], XPickerMonthProperty.prototype, "nextYearBtn", void 0);
|
|
397
454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, decorators: [{
|
|
398
455
|
type: Component,
|
|
399
456
|
args: [{ template: '' }]
|
|
@@ -407,12 +464,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
407
464
|
type: Input
|
|
408
465
|
}], showHeader: [{
|
|
409
466
|
type: Input
|
|
467
|
+
}], rangePicker: [{
|
|
468
|
+
type: Input
|
|
469
|
+
}], lastYearBtn: [{
|
|
470
|
+
type: Input
|
|
471
|
+
}], nextYearBtn: [{
|
|
472
|
+
type: Input
|
|
473
|
+
}], rangeValue: [{
|
|
474
|
+
type: Input
|
|
475
|
+
}], rangeType: [{
|
|
476
|
+
type: Input
|
|
410
477
|
}], modelChange: [{
|
|
411
478
|
type: Output
|
|
412
479
|
}], typeChange: [{
|
|
413
480
|
type: Output
|
|
414
481
|
}], rangeChange: [{
|
|
415
482
|
type: Output
|
|
483
|
+
}], yearChange: [{
|
|
484
|
+
type: Output
|
|
485
|
+
}], monthChange: [{
|
|
486
|
+
type: Output
|
|
487
|
+
}], displayChange: [{
|
|
488
|
+
type: Output
|
|
489
|
+
}], rangeTdMouseenter: [{
|
|
490
|
+
type: Output
|
|
491
|
+
}], rangeTdMouseleave: [{
|
|
492
|
+
type: Output
|
|
493
|
+
}], rangeDateClick: [{
|
|
494
|
+
type: Output
|
|
416
495
|
}] } });
|
|
417
496
|
/**
|
|
418
497
|
* PickerYear
|
|
@@ -441,6 +520,21 @@ class XPickerYearProperty extends XProperty {
|
|
|
441
520
|
* @en_US Display switch button
|
|
442
521
|
*/
|
|
443
522
|
this.showHeader = true;
|
|
523
|
+
/**
|
|
524
|
+
* @zh_CN 上一年
|
|
525
|
+
* @en_US Last year
|
|
526
|
+
*/
|
|
527
|
+
this.lastYearBtn = true;
|
|
528
|
+
/**
|
|
529
|
+
* @zh_CN 下一年
|
|
530
|
+
* @en_US Next year
|
|
531
|
+
*/
|
|
532
|
+
this.nextYearBtn = true;
|
|
533
|
+
/**
|
|
534
|
+
* @zh_CN 范围年份
|
|
535
|
+
* @en_US Range date
|
|
536
|
+
*/
|
|
537
|
+
this.rangeValue = [];
|
|
444
538
|
/**
|
|
445
539
|
* @zh_CN 选中的事件
|
|
446
540
|
* @en_US Selected event
|
|
@@ -456,13 +550,57 @@ class XPickerYearProperty extends XProperty {
|
|
|
456
550
|
* @en_US Start year change event
|
|
457
551
|
*/
|
|
458
552
|
this.startChange = new EventEmitter();
|
|
553
|
+
/**
|
|
554
|
+
* @zh_CN 范围变化的事件
|
|
555
|
+
* @en_US Scope change event
|
|
556
|
+
*/
|
|
557
|
+
this.rangeChange = new EventEmitter();
|
|
558
|
+
/**
|
|
559
|
+
* @zh_CN 选年的事件
|
|
560
|
+
* @en_US Year change event
|
|
561
|
+
*/
|
|
562
|
+
this.yearChange = new EventEmitter();
|
|
563
|
+
/**
|
|
564
|
+
* @zh_CN 选月的事件
|
|
565
|
+
* @en_US Month change event
|
|
566
|
+
*/
|
|
567
|
+
this.monthChange = new EventEmitter();
|
|
568
|
+
/**
|
|
569
|
+
* @zh_CN 显示月份事件
|
|
570
|
+
* @en_US display date event
|
|
571
|
+
*/
|
|
572
|
+
this.displayChange = new EventEmitter();
|
|
573
|
+
/**
|
|
574
|
+
* @zh_CN 范围月份 mouseenter 事件
|
|
575
|
+
* @en_US Date mouseenter event
|
|
576
|
+
*/
|
|
577
|
+
this.rangeTdMouseenter = new EventEmitter();
|
|
578
|
+
/**
|
|
579
|
+
* @zh_CN 范围月份 mouseleave 事件
|
|
580
|
+
* @en_US Date mouseleave event
|
|
581
|
+
*/
|
|
582
|
+
this.rangeTdMouseleave = new EventEmitter();
|
|
583
|
+
/**
|
|
584
|
+
* @zh_CN 范围中的月份点击事件
|
|
585
|
+
* @en_US Range date click event
|
|
586
|
+
*/
|
|
587
|
+
this.rangeDateClick = new EventEmitter();
|
|
459
588
|
}
|
|
460
589
|
}
|
|
461
590
|
/** @nocollapse */ XPickerYearProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
462
|
-
/** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", showHeader: "showHeader" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
591
|
+
/** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", yearTemp: "yearTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
463
592
|
__decorate([
|
|
464
593
|
XInputBoolean()
|
|
465
594
|
], XPickerYearProperty.prototype, "showHeader", void 0);
|
|
595
|
+
__decorate([
|
|
596
|
+
XInputBoolean()
|
|
597
|
+
], XPickerYearProperty.prototype, "rangePicker", void 0);
|
|
598
|
+
__decorate([
|
|
599
|
+
XInputBoolean()
|
|
600
|
+
], XPickerYearProperty.prototype, "lastYearBtn", void 0);
|
|
601
|
+
__decorate([
|
|
602
|
+
XInputBoolean()
|
|
603
|
+
], XPickerYearProperty.prototype, "nextYearBtn", void 0);
|
|
466
604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, decorators: [{
|
|
467
605
|
type: Component,
|
|
468
606
|
args: [{ template: '' }]
|
|
@@ -472,14 +610,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
472
610
|
type: Input
|
|
473
611
|
}], model: [{
|
|
474
612
|
type: Input
|
|
613
|
+
}], yearTemp: [{
|
|
614
|
+
type: Input
|
|
475
615
|
}], showHeader: [{
|
|
476
616
|
type: Input
|
|
617
|
+
}], rangePicker: [{
|
|
618
|
+
type: Input
|
|
619
|
+
}], lastYearBtn: [{
|
|
620
|
+
type: Input
|
|
621
|
+
}], nextYearBtn: [{
|
|
622
|
+
type: Input
|
|
623
|
+
}], rangeValue: [{
|
|
624
|
+
type: Input
|
|
625
|
+
}], rangeType: [{
|
|
626
|
+
type: Input
|
|
477
627
|
}], modelChange: [{
|
|
478
628
|
type: Output
|
|
479
629
|
}], typeChange: [{
|
|
480
630
|
type: Output
|
|
481
631
|
}], startChange: [{
|
|
482
632
|
type: Output
|
|
633
|
+
}], rangeChange: [{
|
|
634
|
+
type: Output
|
|
635
|
+
}], yearChange: [{
|
|
636
|
+
type: Output
|
|
637
|
+
}], monthChange: [{
|
|
638
|
+
type: Output
|
|
639
|
+
}], displayChange: [{
|
|
640
|
+
type: Output
|
|
641
|
+
}], rangeTdMouseenter: [{
|
|
642
|
+
type: Output
|
|
643
|
+
}], rangeTdMouseleave: [{
|
|
644
|
+
type: Output
|
|
645
|
+
}], rangeDateClick: [{
|
|
646
|
+
type: Output
|
|
483
647
|
}] } });
|
|
484
648
|
|
|
485
649
|
class XPickerDateComponent extends XPickerDateProperty {
|
|
@@ -734,10 +898,10 @@ class XPickerDateComponent extends XPickerDateProperty {
|
|
|
734
898
|
}
|
|
735
899
|
}
|
|
736
900
|
/** @nocollapse */ XPickerDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateComponent, deps: [{ token: i0.Renderer2 }, { token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
737
|
-
/** @nocollapse */ XPickerDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateComponent, selector: "x-picker-date", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-button>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-button>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of weekDates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && week.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"dateClick(week)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(week)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n {{ week.date | date : 'd' }}\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-picker-date-year-month{flex:1;text-align:center}.x-picker-date-body{padding:.5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table th{font-weight:400;height:2rem;color:var(--x-text-400)}.x-picker-date-body>table td{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-date-body>table td .x-date-text{width:1.75rem;height:1.5rem;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body>table td:before,.x-picker-date-body>table td:after{position:absolute;top:50%;right:0;left:0;z-index:1;height:1.5rem;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-picker-date-body>table td:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next),.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next),.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next):hover,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next):hover,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next):hover .x-date-text,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body>table td.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-picker-date-body>table td.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body>table td.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem;transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-picker-date-body>table td.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body>table td.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem;transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-picker-date-body>table td.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-picker-date-body>table td.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%)}.x-picker-date-body>table td.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.XButtonComponent, selector: "x-button" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i3.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
901
|
+
/** @nocollapse */ XPickerDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateComponent, selector: "x-picker-date", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of weekDates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && week.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"dateClick(week)\"\r\n (mouseenter)=\"rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n {{ week.date | date : 'd' }}\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-date-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-date-header .x-link{padding:0 .25rem}.x-picker-date-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-date-body{padding:.1375rem .5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table th{font-weight:400;height:2rem;color:var(--x-text-400);-webkit-user-select:none;user-select:none}.x-picker-date-body>table td{-webkit-user-select:none;user-select:none}.x-picker-date-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-date-body .x-picker-date-item .x-date-text{width:1.75rem;height:1.625rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body .x-picker-date-item:after,.x-picker-date-body .x-picker-date-item:before{height:1.625rem}.x-picker-date-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:1.75rem}.x-picker-date .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i3.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
738
902
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateComponent, decorators: [{
|
|
739
903
|
type: Component,
|
|
740
|
-
args: [{ selector: `${XPickerDatePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-button>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-button>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of weekDates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && week.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"dateClick(week)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(week)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n {{ week.date | date : 'd' }}\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-picker-date-year-month{flex:1;text-align:center}.x-picker-date-body{padding:.5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table th{font-weight:400;height:2rem;color:var(--x-text-400)}.x-picker-date-body>table td{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-date-body>table td .x-date-text{width:1.75rem;height:1.5rem;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body>table td:before,.x-picker-date-body>table td:after{position:absolute;top:50%;right:0;left:0;z-index:1;height:1.5rem;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-picker-date-body>table td:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next),.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next),.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next):hover,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next):hover,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body>table td.x-date-active:not(.x-date-last-or-next):hover .x-date-text,.x-picker-date-body>table td.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-picker-date-body>table td.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-picker-date-body>table td.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-picker-date-body>table td.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-picker-date-body>table td.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body>table td.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-picker-date-body>table td.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body>table td.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem;transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-picker-date-body>table td.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body>table td.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem;transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-picker-date-body>table td.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%)}.x-picker-date-body>table td.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-picker-date-body>table td.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%)}.x-picker-date-body>table td.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date .x-visibility{visibility:hidden}\n"] }]
|
|
904
|
+
args: [{ selector: `${XPickerDatePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <div class=\"x-picker-date-header\" *ngIf=\"showHeader\">\r\n <x-link icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\" [class.x-visibility]=\"!lastYearBtn\"></x-link>\r\n <x-link icon=\"fto-chevron-left\" (click)=\"nextMonth(-1)\" [class.x-visibility]=\"!lastMonthBtn\"></x-link>\r\n <div class=\"x-picker-date-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n <x-link (click)=\"typeOnChange('month')\">{{ getLocaleMonth(display) }}</x-link>\r\n </div>\r\n <x-link icon=\"fto-chevron-right\" (click)=\"nextMonth(1)\" [class.x-visibility]=\"!nextMonthBtn\"></x-link>\r\n <x-link icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\" [class.x-visibility]=\"!nextYearBtn\"></x-link>\r\n </div>\r\n <div class=\"x-picker-date-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of weekDates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"week.isLastOrNext\"\r\n [class.x-date-now]=\"week.isNow\"\r\n [class.x-date-first-day]=\"week.isFirstDay\"\r\n [class.x-date-last-day]=\"week.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartDate(week.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndDate(week.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && week.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && week.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && week.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && week.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && week.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && week.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && week.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && week.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && week.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && week.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && week.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && week.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && week.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (week.date | date : 'yyyyMMdd') === (model | date : 'yyyyMMdd')\"\r\n title=\"{{ week.date | date : 'yyyy-MM-dd' }}\"\r\n (click)=\"dateClick(week)\"\r\n (mouseenter)=\"rangePicker && rangeHover && onTdMouseenter(week)\"\r\n (mouseleave)=\"rangePicker && rangeHover && onTdMouseleave(week)\"\r\n >\r\n <div *ngIf=\"!dateTemp\" class=\"x-date-text\">\r\n {{ week.date | date : 'd' }}\r\n </div>\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-date{margin:0;padding:0}.x-picker-date-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-date-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-date-header .x-link{padding:0 .25rem}.x-picker-date-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-date-body{padding:.1375rem .5rem}.x-picker-date-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-body>table th{font-weight:400;height:2rem;color:var(--x-text-400);-webkit-user-select:none;user-select:none}.x-picker-date-body>table td{-webkit-user-select:none;user-select:none}.x-picker-date-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-date-body .x-picker-date-item .x-date-text{width:1.75rem;height:1.625rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-date-body .x-picker-date-item:after,.x-picker-date-body .x-picker-date-item:before{height:1.625rem}.x-picker-date-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-date-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-date-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-date-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:1.75rem}.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-date-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:1.75rem}.x-picker-date .x-visibility{visibility:hidden}\n"] }]
|
|
741
905
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }, { type: i3.XI18nService }]; } });
|
|
742
906
|
|
|
743
907
|
class XPickerMonthComponent extends XPickerMonthProperty {
|
|
@@ -751,9 +915,22 @@ class XPickerMonthComponent extends XPickerMonthProperty {
|
|
|
751
915
|
this.i18n = i18n;
|
|
752
916
|
this.now = new Date();
|
|
753
917
|
this.dates = [];
|
|
918
|
+
this.chunkDates = [];
|
|
754
919
|
this.locale = {};
|
|
755
920
|
this._unSubject = new Subject();
|
|
756
921
|
}
|
|
922
|
+
get rangeStart() {
|
|
923
|
+
if (this.rangeValue && this.rangeValue.length > 0) {
|
|
924
|
+
return this.rangeValue[0];
|
|
925
|
+
}
|
|
926
|
+
return '';
|
|
927
|
+
}
|
|
928
|
+
get rangeEnd() {
|
|
929
|
+
if (this.rangeValue && this.rangeValue.length > 1) {
|
|
930
|
+
return this.rangeValue[1];
|
|
931
|
+
}
|
|
932
|
+
return '';
|
|
933
|
+
}
|
|
757
934
|
ngOnInit() {
|
|
758
935
|
this.i18n.localeChange
|
|
759
936
|
.pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
|
|
@@ -769,33 +946,160 @@ class XPickerMonthComponent extends XPickerMonthProperty {
|
|
|
769
946
|
init() {
|
|
770
947
|
this.setMonths(this.display);
|
|
771
948
|
}
|
|
949
|
+
isStartMonth(date) {
|
|
950
|
+
if (!this.rangeType || !this.rangeValue)
|
|
951
|
+
return;
|
|
952
|
+
if (!XIsNull(this.rangeValue[0])) {
|
|
953
|
+
return this.datePipe.transform(this.rangeValue[0], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');
|
|
954
|
+
}
|
|
955
|
+
return;
|
|
956
|
+
}
|
|
957
|
+
isEndMonth(date) {
|
|
958
|
+
if (!this.rangeType || !this.rangeValue)
|
|
959
|
+
return;
|
|
960
|
+
if (!XIsNull(this.rangeValue[1])) {
|
|
961
|
+
return this.datePipe.transform(this.rangeValue[1], 'yyyyMM') === this.datePipe.transform(date, 'yyyyMM');
|
|
962
|
+
}
|
|
963
|
+
return;
|
|
964
|
+
}
|
|
965
|
+
setDatesState(cell) {
|
|
966
|
+
this.clearState(...this.dates);
|
|
967
|
+
for (let item of this.dates) {
|
|
968
|
+
this.setDayState(item);
|
|
969
|
+
}
|
|
970
|
+
this.onTdMouseenter(cell, false);
|
|
971
|
+
}
|
|
972
|
+
onTdMouseenter(cell, isEmit = true) {
|
|
973
|
+
const [start, end] = this.rangeValue;
|
|
974
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
975
|
+
const time = cell.date.getTime();
|
|
976
|
+
for (let item of this.dates) {
|
|
977
|
+
const itemTime = item.date.getTime();
|
|
978
|
+
this.clearState(item);
|
|
979
|
+
if (!XIsNull(start) && XIsNull(end)) {
|
|
980
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
981
|
+
item.isRangeHoverStartRight = time > start && itemTime === start;
|
|
982
|
+
item.isRangeHover =
|
|
983
|
+
(time < start && itemTime >= time && itemTime < start) || (time > start && itemTime > start && itemTime <= time);
|
|
984
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
985
|
+
item.isRangeHoverEnd = itemTime === time && time > start;
|
|
986
|
+
}
|
|
987
|
+
else if (XIsNull(start) && !XIsNull(end)) {
|
|
988
|
+
item.isRangeHoverEndLeft = time < end && itemTime === end;
|
|
989
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
990
|
+
item.isRangeHover = (time < end && itemTime >= time && itemTime < end) || (time > end && itemTime > end && itemTime <= time);
|
|
991
|
+
item.isRangeHoverStart = itemTime === time && time < end;
|
|
992
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
993
|
+
}
|
|
994
|
+
else if (!XIsNull(start) && !XIsNull(end)) {
|
|
995
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
996
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
997
|
+
item.isRangeHover =
|
|
998
|
+
(time < start && itemTime >= time && itemTime < start) || (time > end && itemTime > end && itemTime <= time);
|
|
999
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
1000
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
1001
|
+
if (this.rangeType === 'start') {
|
|
1002
|
+
item.isInRangeHover = itemTime >= time && itemTime <= end;
|
|
1003
|
+
}
|
|
1004
|
+
else if (this.rangeType === 'end') {
|
|
1005
|
+
item.isInRangeHover = itemTime >= start && itemTime <= time;
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
if (isEmit) {
|
|
1010
|
+
this.rangeTdMouseenter.emit(cell);
|
|
1011
|
+
}
|
|
1012
|
+
else {
|
|
1013
|
+
this.cdr.detectChanges();
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
onTdMouseleave(cell, isEmit = true) {
|
|
1018
|
+
const [start, end] = this.rangeValue;
|
|
1019
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
1020
|
+
this.clearState(...this.dates);
|
|
1021
|
+
if (isEmit)
|
|
1022
|
+
this.rangeTdMouseleave.emit(cell);
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
clearState(...cells) {
|
|
1026
|
+
for (let cell of cells) {
|
|
1027
|
+
cell.isInRangeHover = false;
|
|
1028
|
+
cell.isRangeHover = false;
|
|
1029
|
+
cell.isRangeHoverStart = false;
|
|
1030
|
+
cell.isRangeHoverEnd = false;
|
|
1031
|
+
cell.isRangeHoverStartLeft = false;
|
|
1032
|
+
cell.isRangeHoverStartRight = false;
|
|
1033
|
+
cell.isRangeHoverEndLeft = false;
|
|
1034
|
+
cell.isRangeHoverEndRight = false;
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
772
1037
|
setMonths(date) {
|
|
773
1038
|
let year = date.getFullYear();
|
|
774
1039
|
let dates = [];
|
|
775
1040
|
for (let i = 0; i < 16; i++) {
|
|
776
|
-
|
|
1041
|
+
const cell = { date: new Date(year, i, 1), isFirstDay: i === 0, isLastDay: i === 11 };
|
|
1042
|
+
dates = [...dates, this.setDayState(cell)];
|
|
777
1043
|
}
|
|
778
|
-
this.dates =
|
|
1044
|
+
this.dates = dates;
|
|
1045
|
+
this.chunkDates = XChunk(dates, 4);
|
|
779
1046
|
if (this.dates.length > 0) {
|
|
780
|
-
this.rangeChange.emit([dates[0], dates[dates.length - 1]]);
|
|
1047
|
+
this.rangeChange.emit([dates[0].date, dates[dates.length - 1].date]);
|
|
1048
|
+
}
|
|
1049
|
+
this.cdr.detectChanges();
|
|
1050
|
+
}
|
|
1051
|
+
setDayState(cell) {
|
|
1052
|
+
const time = cell.date?.getTime();
|
|
1053
|
+
const fmonth = this.datePipe.transform(cell.date, 'yyyyMM');
|
|
1054
|
+
const fmonthy = this.datePipe.transform(cell.date, 'yyyy');
|
|
1055
|
+
const fdisplayy = this.datePipe.transform(this.display, 'yyyy');
|
|
1056
|
+
const fnow = this.datePipe.transform(this.now, 'yyyyMM');
|
|
1057
|
+
cell.isLastOrNext = fmonthy !== fdisplayy;
|
|
1058
|
+
cell.isNow = fmonth === fnow;
|
|
1059
|
+
if (this.rangePicker) {
|
|
1060
|
+
if (!this.rangeValue)
|
|
1061
|
+
return cell;
|
|
1062
|
+
const [start, end] = this.rangeValue;
|
|
1063
|
+
cell.isInRange = !!start && !!end && time >= start && time <= end;
|
|
1064
|
+
cell.isRangeStartRight = !!start && !!end && fmonth === this.datePipe.transform(start, 'yyyyMM');
|
|
1065
|
+
cell.isRangeEndLeft = !!start && !!end && fmonth === this.datePipe.transform(end, 'yyyyMM');
|
|
1066
|
+
}
|
|
1067
|
+
return cell;
|
|
1068
|
+
}
|
|
1069
|
+
monthClick(cell) {
|
|
1070
|
+
this.model = cell.date;
|
|
1071
|
+
this.modelChange.emit(cell.date);
|
|
1072
|
+
if (this.rangePicker) {
|
|
1073
|
+
this.clearState(...this.dates);
|
|
1074
|
+
for (let item of this.dates) {
|
|
1075
|
+
this.setDayState(item);
|
|
1076
|
+
}
|
|
1077
|
+
this.rangeDateClick.emit(cell);
|
|
1078
|
+
}
|
|
1079
|
+
this.cdr.markForCheck();
|
|
1080
|
+
}
|
|
1081
|
+
getLocaleMonth(date) {
|
|
1082
|
+
return this.locale[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL'))];
|
|
1083
|
+
}
|
|
1084
|
+
rangeDisabled(date) {
|
|
1085
|
+
if (this.rangeType === 'end') {
|
|
1086
|
+
return this.rangeStart !== '' && date.getTime() < this.rangeStart;
|
|
1087
|
+
}
|
|
1088
|
+
else if (this.rangeType === 'start') {
|
|
1089
|
+
return this.rangeEnd !== '' && date.getTime() > this.rangeEnd;
|
|
781
1090
|
}
|
|
782
|
-
|
|
783
|
-
monthClick(date) {
|
|
784
|
-
this.model = date;
|
|
785
|
-
this.modelChange.emit(date);
|
|
786
|
-
this.cdr.markForCheck();
|
|
787
|
-
}
|
|
788
|
-
getLocaleMonth(date) {
|
|
789
|
-
return this.locale[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL'))];
|
|
1091
|
+
return false;
|
|
790
1092
|
}
|
|
791
1093
|
setDisplay(date) {
|
|
792
1094
|
this.display = new Date(date.getFullYear(), date.getMonth(), 1);
|
|
1095
|
+
this.displayChange.emit(this.display);
|
|
793
1096
|
this.setMonths(this.display);
|
|
794
1097
|
}
|
|
795
1098
|
nextYear(num) {
|
|
796
1099
|
let date = new Date(this.display);
|
|
797
1100
|
date.setFullYear(date.getFullYear() + num);
|
|
798
1101
|
this.setDisplay(date);
|
|
1102
|
+
this.yearChange.emit(num);
|
|
799
1103
|
this.cdr.detectChanges();
|
|
800
1104
|
}
|
|
801
1105
|
typeOnChange(type) {
|
|
@@ -808,10 +1112,10 @@ class XPickerMonthComponent extends XPickerMonthProperty {
|
|
|
808
1112
|
}
|
|
809
1113
|
}
|
|
810
1114
|
/** @nocollapse */ XPickerMonthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthComponent, deps: [{ token: i0.Renderer2 }, { token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
811
|
-
/** @nocollapse */ XPickerMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthComponent, selector: "x-picker-month", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-
|
|
1115
|
+
/** @nocollapse */ XPickerMonthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthComponent, selector: "x-picker-month", providers: [DatePipe, LowerCasePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"monthClick(month)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-month{margin:0;padding:0}.x-picker-month-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-month-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-month-header .x-link{padding:0 .25rem}.x-picker-month-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-month-body{padding:.1375rem .5rem}.x-picker-month-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-month-body>table td{-webkit-user-select:none;user-select:none}.x-picker-month-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-month-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-month-body .x-picker-date-item:after,.x-picker-month-body .x-picker-date-item:before{height:3.25rem}.x-picker-month-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-month-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-month .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
812
1116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthComponent, decorators: [{
|
|
813
1117
|
type: Component,
|
|
814
|
-
args: [{ selector: 'x-picker-month', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-
|
|
1118
|
+
args: [{ selector: 'x-picker-month', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <div class=\"x-picker-month-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-month-year-month\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-month-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of chunkDates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"month.isLastOrNext\"\r\n [class.x-date-now]=\"month.isNow\"\r\n [class.x-date-first-day]=\"month.isFirstDay\"\r\n [class.x-date-last-day]=\"month.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartMonth(month.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndMonth(month.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && month.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && month.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && month.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && month.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && month.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && month.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && month.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && month.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && month.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && month.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && month.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && month.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && month.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (month.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ month.date | date : 'yyyy-MM' }}\"\r\n (click)=\"monthClick(month)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(month)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(month)\"\r\n >\r\n <div *ngIf=\"!monthTemp\" class=\"x-date-text\">\r\n {{ getLocaleMonth(month.date!) }}\r\n </div>\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-month{margin:0;padding:0}.x-picker-month-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-month-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-month-header .x-link{padding:0 .25rem}.x-picker-month-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-month-body{padding:.1375rem .5rem}.x-picker-month-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-month-body>table td{-webkit-user-select:none;user-select:none}.x-picker-month-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-month-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-month-body .x-picker-date-item:after,.x-picker-month-body .x-picker-date-item:before{height:3.25rem}.x-picker-month-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-month-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-month-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-month-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-month-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-month .x-visibility{visibility:hidden}\n"] }]
|
|
815
1119
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }, { type: i3.XI18nService }]; } });
|
|
816
1120
|
|
|
817
1121
|
class XPickerYearComponent extends XPickerYearProperty {
|
|
@@ -823,6 +1127,19 @@ class XPickerYearComponent extends XPickerYearProperty {
|
|
|
823
1127
|
this.configService = configService;
|
|
824
1128
|
this.now = new Date();
|
|
825
1129
|
this.dates = [];
|
|
1130
|
+
this.chunkDates = [];
|
|
1131
|
+
}
|
|
1132
|
+
get rangeStart() {
|
|
1133
|
+
if (this.rangeValue && this.rangeValue.length > 0) {
|
|
1134
|
+
return this.rangeValue[0];
|
|
1135
|
+
}
|
|
1136
|
+
return '';
|
|
1137
|
+
}
|
|
1138
|
+
get rangeEnd() {
|
|
1139
|
+
if (this.rangeValue && this.rangeValue.length > 1) {
|
|
1140
|
+
return this.rangeValue[1];
|
|
1141
|
+
}
|
|
1142
|
+
return '';
|
|
826
1143
|
}
|
|
827
1144
|
ngOnChanges(simples) {
|
|
828
1145
|
const { display } = simples;
|
|
@@ -831,28 +1148,155 @@ class XPickerYearComponent extends XPickerYearProperty {
|
|
|
831
1148
|
init() {
|
|
832
1149
|
this.setYears(this.display);
|
|
833
1150
|
}
|
|
1151
|
+
isStartYear(date) {
|
|
1152
|
+
if (!this.rangeType || !this.rangeValue)
|
|
1153
|
+
return;
|
|
1154
|
+
if (!XIsNull(this.rangeValue[0])) {
|
|
1155
|
+
return this.datePipe.transform(this.rangeValue[0], 'yyyy') === this.datePipe.transform(date, 'yyyy');
|
|
1156
|
+
}
|
|
1157
|
+
return;
|
|
1158
|
+
}
|
|
1159
|
+
isEndYear(date) {
|
|
1160
|
+
if (!this.rangeType || !this.rangeValue)
|
|
1161
|
+
return;
|
|
1162
|
+
if (!XIsNull(this.rangeValue[1])) {
|
|
1163
|
+
return this.datePipe.transform(this.rangeValue[1], 'yyyy') === this.datePipe.transform(date, 'yyyy');
|
|
1164
|
+
}
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1167
|
+
setDatesState(cell) {
|
|
1168
|
+
this.clearState(...this.dates);
|
|
1169
|
+
for (let item of this.dates) {
|
|
1170
|
+
this.setDayState(item);
|
|
1171
|
+
}
|
|
1172
|
+
this.onTdMouseenter(cell, false);
|
|
1173
|
+
}
|
|
1174
|
+
onTdMouseenter(cell, isEmit = true) {
|
|
1175
|
+
const [start, end] = this.rangeValue;
|
|
1176
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
1177
|
+
const time = cell.date.getTime();
|
|
1178
|
+
for (let item of this.dates) {
|
|
1179
|
+
const itemTime = item.date.getTime();
|
|
1180
|
+
this.clearState(item);
|
|
1181
|
+
if (!XIsNull(start) && XIsNull(end)) {
|
|
1182
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
1183
|
+
item.isRangeHoverStartRight = time > start && itemTime === start;
|
|
1184
|
+
item.isRangeHover =
|
|
1185
|
+
(time < start && itemTime >= time && itemTime < start) || (time > start && itemTime > start && itemTime <= time);
|
|
1186
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
1187
|
+
item.isRangeHoverEnd = itemTime === time && time > start;
|
|
1188
|
+
}
|
|
1189
|
+
else if (XIsNull(start) && !XIsNull(end)) {
|
|
1190
|
+
item.isRangeHoverEndLeft = time < end && itemTime === end;
|
|
1191
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
1192
|
+
item.isRangeHover = (time < end && itemTime >= time && itemTime < end) || (time > end && itemTime > end && itemTime <= time);
|
|
1193
|
+
item.isRangeHoverStart = itemTime === time && time < end;
|
|
1194
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
1195
|
+
}
|
|
1196
|
+
else if (!XIsNull(start) && !XIsNull(end)) {
|
|
1197
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
1198
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
1199
|
+
item.isRangeHover =
|
|
1200
|
+
(time < start && itemTime >= time && itemTime < start) || (time > end && itemTime > end && itemTime <= time);
|
|
1201
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
1202
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
1203
|
+
if (this.rangeType === 'start') {
|
|
1204
|
+
item.isInRangeHover = itemTime >= time && itemTime <= end;
|
|
1205
|
+
}
|
|
1206
|
+
else if (this.rangeType === 'end') {
|
|
1207
|
+
item.isInRangeHover = itemTime >= start && itemTime <= time;
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
if (isEmit) {
|
|
1212
|
+
this.rangeTdMouseenter.emit(cell);
|
|
1213
|
+
}
|
|
1214
|
+
else {
|
|
1215
|
+
this.cdr.detectChanges();
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
onTdMouseleave(cell, isEmit = true) {
|
|
1220
|
+
const [start, end] = this.rangeValue;
|
|
1221
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
1222
|
+
this.clearState(...this.dates);
|
|
1223
|
+
if (isEmit)
|
|
1224
|
+
this.rangeTdMouseleave.emit(cell);
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
clearState(...cells) {
|
|
1228
|
+
for (let cell of cells) {
|
|
1229
|
+
cell.isInRangeHover = false;
|
|
1230
|
+
cell.isRangeHover = false;
|
|
1231
|
+
cell.isRangeHoverStart = false;
|
|
1232
|
+
cell.isRangeHoverEnd = false;
|
|
1233
|
+
cell.isRangeHoverStartLeft = false;
|
|
1234
|
+
cell.isRangeHoverStartRight = false;
|
|
1235
|
+
cell.isRangeHoverEndLeft = false;
|
|
1236
|
+
cell.isRangeHoverEndRight = false;
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
834
1239
|
setYears(date) {
|
|
835
1240
|
let year = date.getFullYear();
|
|
836
1241
|
this.start = Math.floor(year / 10) * 10;
|
|
837
1242
|
this.end = this.start + 9;
|
|
838
1243
|
let dates = [];
|
|
839
1244
|
for (let i = -3; i < 13; i++) {
|
|
840
|
-
|
|
1245
|
+
const dt = new Date(this.start + i, 1, 1);
|
|
1246
|
+
const cell = {
|
|
1247
|
+
date: dt,
|
|
1248
|
+
isNow: this.datePipe.transform(this.now, 'yyyy') === this.datePipe.transform(dt, 'yyyy'),
|
|
1249
|
+
isLastOrNext: i < 0 || i > 9,
|
|
1250
|
+
isFirstDay: i === 0,
|
|
1251
|
+
isLastDay: i === 9
|
|
1252
|
+
};
|
|
1253
|
+
dates = [...dates, this.setDayState(cell)];
|
|
841
1254
|
}
|
|
842
|
-
this.dates =
|
|
1255
|
+
this.dates = dates;
|
|
1256
|
+
this.chunkDates = XChunk(dates, 4);
|
|
843
1257
|
this.startChange.emit(this.start);
|
|
844
1258
|
}
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
this.
|
|
1259
|
+
setDayState(cell) {
|
|
1260
|
+
const time = cell.date?.getTime();
|
|
1261
|
+
const fyear = this.datePipe.transform(cell.date, 'yyyy');
|
|
1262
|
+
if (this.rangePicker) {
|
|
1263
|
+
if (!this.rangeValue)
|
|
1264
|
+
return cell;
|
|
1265
|
+
const [start, end] = this.rangeValue;
|
|
1266
|
+
cell.isInRange = !!start && !!end && time >= start && time <= end;
|
|
1267
|
+
cell.isRangeStartRight = !!start && !!end && fyear === this.datePipe.transform(start, 'yyyy');
|
|
1268
|
+
cell.isRangeEndLeft = !!start && !!end && fyear === this.datePipe.transform(end, 'yyyy');
|
|
1269
|
+
}
|
|
1270
|
+
return cell;
|
|
1271
|
+
}
|
|
1272
|
+
yearClick(cell) {
|
|
1273
|
+
this.model = cell.date;
|
|
1274
|
+
this.modelChange.emit(cell.date);
|
|
1275
|
+
if (this.rangePicker) {
|
|
1276
|
+
this.clearState(...this.dates);
|
|
1277
|
+
for (let item of this.dates) {
|
|
1278
|
+
this.setDayState(item);
|
|
1279
|
+
}
|
|
1280
|
+
this.rangeDateClick.emit(cell);
|
|
1281
|
+
}
|
|
848
1282
|
this.cdr.markForCheck();
|
|
849
1283
|
}
|
|
850
1284
|
lastOrNext(year) {
|
|
851
1285
|
const yearStr = this.datePipe.transform(year, 'yyyy');
|
|
852
1286
|
return yearStr < `${this.start}` || yearStr > `${this.end}`;
|
|
853
1287
|
}
|
|
1288
|
+
rangeDisabled(date) {
|
|
1289
|
+
if (this.rangeType === 'end') {
|
|
1290
|
+
return this.rangeStart !== '' && date.getTime() < this.rangeStart;
|
|
1291
|
+
}
|
|
1292
|
+
else if (this.rangeType === 'start') {
|
|
1293
|
+
return this.rangeEnd !== '' && date.getTime() > this.rangeEnd;
|
|
1294
|
+
}
|
|
1295
|
+
return false;
|
|
1296
|
+
}
|
|
854
1297
|
setDisplay(date) {
|
|
855
1298
|
this.display = new Date(date.getFullYear(), date.getMonth(), 1);
|
|
1299
|
+
this.displayChange.emit(this.display);
|
|
856
1300
|
this.setYears(this.display);
|
|
857
1301
|
}
|
|
858
1302
|
nextYears(num) {
|
|
@@ -860,20 +1304,18 @@ class XPickerYearComponent extends XPickerYearProperty {
|
|
|
860
1304
|
let date = new Date(this.display);
|
|
861
1305
|
date.setFullYear(this.start);
|
|
862
1306
|
this.setDisplay(date);
|
|
1307
|
+
this.yearChange.emit(num);
|
|
863
1308
|
this.cdr.detectChanges();
|
|
864
1309
|
}
|
|
865
|
-
equalYear(one, two) {
|
|
866
|
-
return this.datePipe.transform(one, 'yyyy') === this.datePipe.transform(two, 'yyyy');
|
|
867
|
-
}
|
|
868
1310
|
trackByYear(_index, item) {
|
|
869
1311
|
return item;
|
|
870
1312
|
}
|
|
871
1313
|
}
|
|
872
1314
|
/** @nocollapse */ XPickerYearComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.DatePipe }, { token: i2.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
873
|
-
/** @nocollapse */ XPickerYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearComponent, selector: "x-picker-year", providers: [DatePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-
|
|
1315
|
+
/** @nocollapse */ XPickerYearComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearComponent, selector: "x-picker-year", providers: [DatePipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"yearClick(year)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-year{margin:0;padding:0}.x-picker-year-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-year-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-year-header .x-link{padding:0 .25rem}.x-picker-year-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-year-body{padding:.1375rem .5rem}.x-picker-year-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-year-body>table td{-webkit-user-select:none;user-select:none}.x-picker-year-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-year-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-year-body .x-picker-date-item:after,.x-picker-year-body .x-picker-date-item:before{height:3.25rem}.x-picker-year-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-year-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-year .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
874
1316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearComponent, decorators: [{
|
|
875
1317
|
type: Component,
|
|
876
|
-
args: [{ selector: 'x-picker-year', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe], template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-
|
|
1318
|
+
args: [{ selector: 'x-picker-year', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe], template: "<div class=\"x-picker-year\">\r\n <div class=\"x-picker-year-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYears(-10)\"></x-link>\r\n <div class=\"x-picker-year-year-month\">\r\n <x-link>{{ start }}</x-link> -\r\n <x-link>{{ end }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYears(10)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-year-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let years of chunkDates\">\r\n <ng-container *ngFor=\"let year of years; trackBy: trackByYear\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-last-or-next]=\"year.isLastOrNext\"\r\n [class.x-date-now]=\"year.isNow\"\r\n [class.x-date-first-day]=\"year.isFirstDay\"\r\n [class.x-date-last-day]=\"year.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartYear(year.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndYear(year.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && year.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && year.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && year.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && year.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && year.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && year.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && year.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && year.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && year.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && year.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && year.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && year.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && year.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (year.date | date : 'yyyy') === (model | date : 'yyyy')\"\r\n title=\"{{ year.date | date : 'yyyy' }}\"\r\n (click)=\"yearClick(year)\"\r\n (mouseenter)=\"rangePicker && onTdMouseenter(year)\"\r\n (mouseleave)=\"rangePicker && onTdMouseleave(year)\"\r\n >\r\n <div *ngIf=\"!yearTemp\" class=\"x-date-text\">\r\n {{ year.date | date : 'yyyy' }}\r\n </div>\r\n <ng-container *ngIf=\"yearTemp\">\r\n <ng-container *ngTemplateOutlet=\"yearTemp; context: { date$: year.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-year{margin:0;padding:0}.x-picker-year-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-year-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-year-header .x-link{padding:0 .25rem}.x-picker-year-year-month{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-year-body{padding:.1375rem .5rem}.x-picker-year-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-year-body>table td{-webkit-user-select:none;user-select:none}.x-picker-year-body .x-picker-date-item{padding:.25rem 0;text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-year-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-year-body .x-picker-date-item:after,.x-picker-year-body .x-picker-date-item:before{height:3.25rem}.x-picker-year-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-year-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-year-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-year-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-year-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-year .x-visibility{visibility:hidden}\n"] }]
|
|
877
1319
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.DatePipe }, { type: i2.XConfigService }]; } });
|
|
878
1320
|
|
|
879
1321
|
class XDatePickerPortalComponent {
|
|
@@ -994,10 +1436,10 @@ class XDatePickerPortalComponent {
|
|
|
994
1436
|
}
|
|
995
1437
|
}
|
|
996
1438
|
/** @nocollapse */ XDatePickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerPortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
997
|
-
/** @nocollapse */ XDatePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerPortalComponent, selector: "x-date-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-
|
|
1439
|
+
/** @nocollapse */ XDatePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerPortalComponent, selector: "x-date-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"monthChange($event)\"></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"yearChange($event)\"></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date [display]=\"display\" [(type)]=\"type\" [model]=\"model\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame [type]=\"timeType\" [value]=\"time\" size=\"small\" (nodeEmit)=\"selectTime($event)\"></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <x-button type=\"primary\" (click)=\"nodeEmit(model)\" size=\"small\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-button{flex:1}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3$1.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow"], outputs: ["nodeEmit"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: XPickerYearComponent, selector: "x-picker-year" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
998
1440
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerPortalComponent, decorators: [{
|
|
999
1441
|
type: Component,
|
|
1000
|
-
args: [{ selector: `${XDatePickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-
|
|
1442
|
+
args: [{ selector: `${XDatePickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"monthChange($event)\"></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"yearChange($event)\"></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date [display]=\"display\" [(type)]=\"type\" [model]=\"model\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame [type]=\"timeType\" [value]=\"time\" size=\"small\" (nodeEmit)=\"selectTime($event)\"></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <x-button type=\"primary\" (click)=\"nodeEmit(model)\" size=\"small\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-button{flex:1}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
|
|
1001
1443
|
}], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i3.XI18nService }]; }, propDecorators: { placement: [{
|
|
1002
1444
|
type: HostBinding,
|
|
1003
1445
|
args: ['@x-connect-base-animation']
|
|
@@ -1010,7 +1452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
1010
1452
|
}] } });
|
|
1011
1453
|
|
|
1012
1454
|
class XDatePickerComponent extends XDatePickerProperty {
|
|
1013
|
-
constructor(renderer, configService, cdr, portalService, viewContainerRef, datePipe, overlay) {
|
|
1455
|
+
constructor(renderer, configService, cdr, portalService, viewContainerRef, datePipe, i18n, overlay) {
|
|
1014
1456
|
super();
|
|
1015
1457
|
this.renderer = renderer;
|
|
1016
1458
|
this.configService = configService;
|
|
@@ -1018,6 +1460,7 @@ class XDatePickerComponent extends XDatePickerProperty {
|
|
|
1018
1460
|
this.portalService = portalService;
|
|
1019
1461
|
this.viewContainerRef = viewContainerRef;
|
|
1020
1462
|
this.datePipe = datePipe;
|
|
1463
|
+
this.i18n = i18n;
|
|
1021
1464
|
this.overlay = overlay;
|
|
1022
1465
|
this.modelType = 'date';
|
|
1023
1466
|
this.isInput = false;
|
|
@@ -1032,6 +1475,7 @@ class XDatePickerComponent extends XDatePickerProperty {
|
|
|
1032
1475
|
this.dataChange = new Subject();
|
|
1033
1476
|
this.positionChange = new Subject();
|
|
1034
1477
|
this.closeSubject = new Subject();
|
|
1478
|
+
this.locale = {};
|
|
1035
1479
|
this._unSubject = new Subject();
|
|
1036
1480
|
}
|
|
1037
1481
|
writeValue(value) {
|
|
@@ -1056,6 +1500,19 @@ class XDatePickerComponent extends XDatePickerProperty {
|
|
|
1056
1500
|
this.valueChange.next(this.numberValue);
|
|
1057
1501
|
this.cdr.detectChanges();
|
|
1058
1502
|
}
|
|
1503
|
+
get getPlaceholder() {
|
|
1504
|
+
if (this.placeholder)
|
|
1505
|
+
return this.placeholder;
|
|
1506
|
+
if (this.type === 'month') {
|
|
1507
|
+
return this.locale.selectMonth;
|
|
1508
|
+
}
|
|
1509
|
+
else if (this.type === 'year') {
|
|
1510
|
+
return this.locale.selectYear;
|
|
1511
|
+
}
|
|
1512
|
+
else {
|
|
1513
|
+
return this.locale.selectDate;
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1059
1516
|
ngOnInit() {
|
|
1060
1517
|
this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
1061
1518
|
this.setFormat();
|
|
@@ -1080,6 +1537,12 @@ class XDatePickerComponent extends XDatePickerProperty {
|
|
|
1080
1537
|
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
|
|
1081
1538
|
this.closePortal();
|
|
1082
1539
|
});
|
|
1540
|
+
this.i18n.localeChange
|
|
1541
|
+
.pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
|
|
1542
|
+
.subscribe((x) => {
|
|
1543
|
+
this.locale = x;
|
|
1544
|
+
this.cdr.markForCheck();
|
|
1545
|
+
});
|
|
1083
1546
|
}
|
|
1084
1547
|
setFormat() {
|
|
1085
1548
|
if (this.format !== 'yyyy-MM-dd')
|
|
@@ -1260,12 +1723,12 @@ class XDatePickerComponent extends XDatePickerProperty {
|
|
|
1260
1723
|
this.cdr.detectChanges();
|
|
1261
1724
|
}
|
|
1262
1725
|
}
|
|
1263
|
-
/** @nocollapse */ XDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i2.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i1.DatePipe }, { token:
|
|
1264
|
-
/** @nocollapse */ XDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerComponent, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"
|
|
1726
|
+
/** @nocollapse */ XDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i2.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i1.DatePipe }, { token: i3.XI18nService }, { token: i5$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
1727
|
+
/** @nocollapse */ XDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerComponent, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0;width:100%}.x-date-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1265
1728
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerComponent, decorators: [{
|
|
1266
1729
|
type: Component,
|
|
1267
|
-
args: [{ selector: `${XDatePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDatePickerComponent), DatePipe], template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"
|
|
1268
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i2.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i1.DatePipe }, { type:
|
|
1730
|
+
args: [{ selector: `${XDatePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDatePickerComponent), DatePipe], template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0;width:100%}.x-date-picker x-input{width:100%}\n"] }]
|
|
1731
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i2.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i1.DatePipe }, { type: i3.XI18nService }, { type: i5$1.Overlay }]; }, propDecorators: { datePicker: [{
|
|
1269
1732
|
type: ViewChild,
|
|
1270
1733
|
args: ['datePicker', { static: true }]
|
|
1271
1734
|
}], inputCom: [{
|
|
@@ -1285,7 +1748,8 @@ class XDateRangePortalComponent {
|
|
|
1285
1748
|
this.endDisplay = XAddMonths(this.startDisplay, 1);
|
|
1286
1749
|
this.value = [];
|
|
1287
1750
|
this.locale = {};
|
|
1288
|
-
this.
|
|
1751
|
+
this.timeDisplay = new Date();
|
|
1752
|
+
this.timeHover = false;
|
|
1289
1753
|
this.nodeClickCount = 0;
|
|
1290
1754
|
this._unSubject = new Subject();
|
|
1291
1755
|
}
|
|
@@ -1296,6 +1760,12 @@ class XDateRangePortalComponent {
|
|
|
1296
1760
|
start() {
|
|
1297
1761
|
this.animating(true);
|
|
1298
1762
|
}
|
|
1763
|
+
get timeSureDisabled() {
|
|
1764
|
+
return XIsEmpty(this.value) || this.value.every((x) => x === null);
|
|
1765
|
+
}
|
|
1766
|
+
get isDatePicker() {
|
|
1767
|
+
return ['date', 'month', 'year'].includes(this.type);
|
|
1768
|
+
}
|
|
1299
1769
|
ngOnInit() {
|
|
1300
1770
|
this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
|
|
1301
1771
|
this.value = x;
|
|
@@ -1330,40 +1800,66 @@ class XDateRangePortalComponent {
|
|
|
1330
1800
|
this.value = [null, null];
|
|
1331
1801
|
this.model = this.display;
|
|
1332
1802
|
this.startModel = this.model;
|
|
1333
|
-
this.endModel =
|
|
1803
|
+
this.endModel = this.setModelByType(this.model);
|
|
1334
1804
|
this.setDisplay(this.model);
|
|
1335
1805
|
}
|
|
1336
|
-
this._type = this.type;
|
|
1337
1806
|
this.cdr.detectChanges();
|
|
1338
1807
|
}
|
|
1339
1808
|
stopPropagation(event) {
|
|
1340
1809
|
event.stopPropagation();
|
|
1341
1810
|
}
|
|
1811
|
+
setModelByType(byModel, num = 1) {
|
|
1812
|
+
if (this.type === 'month') {
|
|
1813
|
+
return XAddYears(byModel, num);
|
|
1814
|
+
}
|
|
1815
|
+
else if (this.type === 'year') {
|
|
1816
|
+
return XAddYears(byModel, 10 * num);
|
|
1817
|
+
}
|
|
1818
|
+
else {
|
|
1819
|
+
return XAddMonths(byModel, num);
|
|
1820
|
+
}
|
|
1821
|
+
}
|
|
1822
|
+
setDatesState(cell) {
|
|
1823
|
+
if (this.activeType === 'start') {
|
|
1824
|
+
this.endPicker?.setDatesState(cell);
|
|
1825
|
+
}
|
|
1826
|
+
else {
|
|
1827
|
+
this.startPicker?.setDatesState(cell);
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1342
1830
|
setDefault() {
|
|
1343
1831
|
const type = this.activeType || 'start';
|
|
1832
|
+
this.timeHover = !this.value.every((x) => x === null);
|
|
1344
1833
|
if (type === 'start') {
|
|
1345
1834
|
this.startModel = new Date(this.value[0]);
|
|
1346
1835
|
this.startDisplay = this.startModel;
|
|
1347
|
-
this.endModel =
|
|
1836
|
+
this.endModel = this.setModelByType(this.startModel);
|
|
1348
1837
|
this.endDisplay = this.endModel;
|
|
1838
|
+
this.timeModel = this.startModel;
|
|
1839
|
+
this.timeDisplay = this.startDisplay;
|
|
1840
|
+
this.time = this.startModel.getTime();
|
|
1349
1841
|
}
|
|
1350
1842
|
else if (type === 'end') {
|
|
1351
1843
|
this.endModel = new Date(this.value[1]);
|
|
1352
1844
|
this.endDisplay = this.endModel;
|
|
1353
|
-
this.startModel =
|
|
1845
|
+
this.startModel = this.setModelByType(this.endModel, -1);
|
|
1354
1846
|
this.startDisplay = this.startModel;
|
|
1847
|
+
this.timeModel = this.endModel;
|
|
1848
|
+
this.timeDisplay = this.endDisplay;
|
|
1849
|
+
this.time = this.endModel.getTime();
|
|
1355
1850
|
}
|
|
1356
1851
|
this.cdr.detectChanges();
|
|
1357
1852
|
}
|
|
1358
1853
|
setDisplay(date) {
|
|
1359
1854
|
this.display = new Date(date.getFullYear(), date.getMonth(), 1);
|
|
1360
1855
|
this.startDisplay = this.display;
|
|
1361
|
-
this.endDisplay =
|
|
1856
|
+
this.endDisplay = this.setModelByType(this.display);
|
|
1362
1857
|
}
|
|
1363
1858
|
dateChange(date) {
|
|
1364
1859
|
this.nodeClickCount++;
|
|
1365
1860
|
let close = this.nodeClickCount === 2;
|
|
1366
|
-
|
|
1861
|
+
let time = this.setDateChangeTime(date);
|
|
1862
|
+
date = new Date(time);
|
|
1367
1863
|
if (this.activeType === 'start') {
|
|
1368
1864
|
this.value[0] = time;
|
|
1369
1865
|
if (!XIsNull(this.value[1]) && time > this.value[1]) {
|
|
@@ -1373,9 +1869,12 @@ class XDateRangePortalComponent {
|
|
|
1373
1869
|
close = false;
|
|
1374
1870
|
this.endModel = null;
|
|
1375
1871
|
this.value[1] = null;
|
|
1376
|
-
this.
|
|
1872
|
+
if (!this.isDatePicker) {
|
|
1873
|
+
this.timeHover = false;
|
|
1874
|
+
}
|
|
1875
|
+
this.endNodeEmit(null, close, this.isDatePicker);
|
|
1377
1876
|
}
|
|
1378
|
-
this.startNodeEmit(date, close);
|
|
1877
|
+
this.startNodeEmit(date, close, this.isDatePicker);
|
|
1379
1878
|
}
|
|
1380
1879
|
else if (this.activeType === 'end') {
|
|
1381
1880
|
this.value[1] = time;
|
|
@@ -1386,38 +1885,40 @@ class XDateRangePortalComponent {
|
|
|
1386
1885
|
close = false;
|
|
1387
1886
|
this.startModel = null;
|
|
1388
1887
|
this.value[0] = null;
|
|
1389
|
-
this.
|
|
1888
|
+
if (!this.isDatePicker) {
|
|
1889
|
+
this.timeHover = false;
|
|
1890
|
+
}
|
|
1891
|
+
this.startNodeEmit(null, close, this.isDatePicker);
|
|
1390
1892
|
}
|
|
1391
|
-
this.endNodeEmit(date, close);
|
|
1893
|
+
this.endNodeEmit(date, close, this.isDatePicker);
|
|
1392
1894
|
}
|
|
1393
|
-
if (!this.value.includes(null)) {
|
|
1895
|
+
if (!this.value.includes(null) && this.isDatePicker) {
|
|
1394
1896
|
this.nodeEmit(this.value.map((x) => new Date(x)), close);
|
|
1395
1897
|
}
|
|
1396
1898
|
}
|
|
1397
|
-
|
|
1398
|
-
this.
|
|
1399
|
-
|
|
1400
|
-
}
|
|
1401
|
-
monthChange(date) {
|
|
1402
|
-
this.setDisplay(date);
|
|
1403
|
-
if (this._type === 'month') {
|
|
1404
|
-
this.model = date;
|
|
1405
|
-
// this.nodeEmit(date);
|
|
1899
|
+
setDateChangeTime(date) {
|
|
1900
|
+
if (this.isDatePicker) {
|
|
1901
|
+
return date.getTime();
|
|
1406
1902
|
}
|
|
1407
1903
|
else {
|
|
1408
|
-
|
|
1904
|
+
let time = new Date();
|
|
1905
|
+
if (this.time) {
|
|
1906
|
+
time = new Date(this.time);
|
|
1907
|
+
}
|
|
1908
|
+
else {
|
|
1909
|
+
this.time = time.getTime();
|
|
1910
|
+
}
|
|
1911
|
+
if (['date-hour', 'date-minute'].includes(this.type)) {
|
|
1912
|
+
time.setSeconds(0);
|
|
1913
|
+
}
|
|
1914
|
+
if (this.type === 'date-hour') {
|
|
1915
|
+
time.setMinutes(0);
|
|
1916
|
+
}
|
|
1917
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds()).getTime();
|
|
1409
1918
|
}
|
|
1410
|
-
this.cdr.detectChanges();
|
|
1411
1919
|
}
|
|
1412
|
-
|
|
1413
|
-
this.
|
|
1414
|
-
if (this._type === 'year') {
|
|
1415
|
-
this.model = date;
|
|
1416
|
-
// this.nodeEmit(date);
|
|
1417
|
-
}
|
|
1418
|
-
else {
|
|
1419
|
-
this.type = 'month';
|
|
1420
|
-
}
|
|
1920
|
+
typeChange(type) {
|
|
1921
|
+
this.type = type;
|
|
1421
1922
|
this.cdr.detectChanges();
|
|
1422
1923
|
}
|
|
1423
1924
|
yearStartChange(number) {
|
|
@@ -1448,31 +1949,55 @@ class XDateRangePortalComponent {
|
|
|
1448
1949
|
}
|
|
1449
1950
|
selectTime(time) {
|
|
1450
1951
|
this.time = time.getTime();
|
|
1451
|
-
|
|
1952
|
+
if (XIsEmpty(this.timeModel)) {
|
|
1953
|
+
this.timeModel = new Date();
|
|
1954
|
+
}
|
|
1955
|
+
this.timeModel?.setHours(time.getHours());
|
|
1956
|
+
this.timeModel?.setMinutes(time.getMinutes());
|
|
1957
|
+
this.timeModel?.setSeconds(time.getSeconds());
|
|
1958
|
+
this.dateChange(this.timeModel);
|
|
1452
1959
|
this.cdr.detectChanges();
|
|
1453
1960
|
}
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1961
|
+
sureTime() {
|
|
1962
|
+
if (this.value.every((x) => XIsNull(x)))
|
|
1963
|
+
return;
|
|
1964
|
+
const [start, end] = this.value;
|
|
1965
|
+
if (XIsNull(start) && !XIsNull(end)) {
|
|
1966
|
+
this.time = null;
|
|
1967
|
+
this.timeHover = true;
|
|
1968
|
+
this.endNodeEmit(new Date(end), false, true);
|
|
1969
|
+
}
|
|
1970
|
+
else if (!XIsNull(start) && XIsNull(end)) {
|
|
1971
|
+
this.time = null;
|
|
1972
|
+
this.timeHover = true;
|
|
1973
|
+
this.startNodeEmit(new Date(start), false, true);
|
|
1974
|
+
}
|
|
1975
|
+
else {
|
|
1976
|
+
this.nodeEmit(this.value.map((x) => new Date(x)), true);
|
|
1977
|
+
}
|
|
1463
1978
|
}
|
|
1464
|
-
|
|
1465
|
-
|
|
1979
|
+
yearChange(num, type) {
|
|
1980
|
+
if (type === 'start') {
|
|
1981
|
+
this.endDisplay = XAddYears(this.endDisplay, num);
|
|
1982
|
+
}
|
|
1983
|
+
else if (type === 'end') {
|
|
1984
|
+
this.startDisplay = XAddYears(this.startDisplay, num);
|
|
1985
|
+
}
|
|
1466
1986
|
}
|
|
1467
|
-
|
|
1468
|
-
|
|
1987
|
+
monthChange(num, type) {
|
|
1988
|
+
if (type === 'start') {
|
|
1989
|
+
this.endDisplay = XAddMonths(this.endDisplay, num);
|
|
1990
|
+
}
|
|
1991
|
+
else if (type === 'end') {
|
|
1992
|
+
this.startDisplay = XAddMonths(this.startDisplay, num);
|
|
1993
|
+
}
|
|
1469
1994
|
}
|
|
1470
1995
|
}
|
|
1471
1996
|
/** @nocollapse */ XDateRangePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangePortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1472
|
-
/** @nocollapse */ XDateRangePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangePortalComponent, selector: "x-date-range-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n #startPickerDate\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n (rangeTdMouseenter)=\"endPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"endPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPickerDate\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n (rangeTdMouseenter)=\"startPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"startPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.XButtonComponent, selector: "x-button" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1997
|
+
/** @nocollapse */ XDateRangePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangePortalComponent, selector: "x-date-range-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], viewQueries: [{ propertyName: "startPicker", first: true, predicate: ["startPicker"], descendants: true }, { propertyName: "endPicker", first: true, predicate: ["endPicker"], descendants: true }], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type }}\">\r\n <div class=\"x-date-range-portal-body\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame [type]=\"timeType\" [value]=\"time\" (nodeEmit)=\"selectTime($event)\" [defaultNow]=\"false\"></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <div class=\"x-date-range-portal-footer\">\r\n <x-button type=\"primary\" (click)=\"sureTime()\" size=\"small\" [disabled]=\"timeSureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-time .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-hour .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal.date-minute .x-date-range-portal-body{flex-direction:column}.x-date-range-portal-content{display:flex}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-body .x-picker-date-item:before,.x-date-range-portal-body .x-picker-date-item:after{position:absolute;top:50%;right:0;left:0;z-index:1;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next),.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start.x-date-range-end.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{display:none}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%)}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3$1.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow"], outputs: ["nodeEmit"] }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: XPickerYearComponent, selector: "x-picker-year" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1473
1998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangePortalComponent, decorators: [{
|
|
1474
1999
|
type: Component,
|
|
1475
|
-
args: [{ selector: `${XDateRangePortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n #startPickerDate\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n (rangeTdMouseenter)=\"endPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"endPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPickerDate\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n (rangeTdMouseenter)=\"startPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"startPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"] }]
|
|
2000
|
+
args: [{ selector: `${XDateRangePortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-range-portal {{ type }}\">\r\n <div class=\"x-date-range-portal-body\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n <x-picker-month\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n #startPicker\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'start')\"\r\n (monthChange)=\"monthChange($event, 'start')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n <x-picker-year\r\n #endPicker\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"yearChange($event, 'end')\"\r\n (monthChange)=\"monthChange($event, 'end')\"\r\n (rangeTdMouseenter)=\"setDatesState($event)\"\r\n (rangeDateClick)=\"setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-range-portal-content\">\r\n <div class=\"x-date-range-portal-date\">\r\n <x-picker-date\r\n [class.x-date-range-portal-start]=\"activeType === 'start'\"\r\n [class.x-date-range-portal-end]=\"activeType === 'end'\"\r\n [(display)]=\"timeDisplay\"\r\n [(model)]=\"timeModel\"\r\n [rangeHover]=\"timeHover\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-range-portal-time\">\r\n <div class=\"x-date-range-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame [type]=\"timeType\" [value]=\"time\" (nodeEmit)=\"selectTime($event)\" [defaultNow]=\"false\"></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <div class=\"x-date-range-portal-footer\">\r\n <x-button type=\"primary\" (click)=\"sureTime()\" size=\"small\" [disabled]=\"timeSureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-time .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-hour .x-date-range-portal-body{flex-direction:column}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal.date-minute .x-date-range-portal-body{flex-direction:column}.x-date-range-portal-content{display:flex}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-body .x-picker-date-item:before,.x-date-range-portal-body .x-picker-date-item:after{position:absolute;top:50%;right:0;left:0;z-index:1;border:var(--x-border-width) dashed transparent;transform:translateY(-50%);transition:var(--x-animation-duration-base);content:\"\"}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next),.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next){color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next) .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start:not(.x-date-last-or-next):hover .x-date-text,.x-date-range-portal-body .x-picker-date-item.x-date-range-end:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child):after{background-color:var(--x-primary-800);transform:translate(-.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-end-left:not(.x-date-last-or-next):not(.x-date-first-day):not(:first-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child) .x-date-text{z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{background-color:var(--x-primary-800);transform:translate(.25rem,-50%);border-radius:var(--x-border-radius);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child).x-date-in-range-hover:after{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-start.x-date-range-end.x-date-range-start-right:not(.x-date-last-or-next):not(.x-date-last-day):not(:last-child):after{display:none}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{position:relative;z-index:1}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):before{background-color:var(--x-primary-800);z-index:0}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):first-child:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next):last-child:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-left:before{transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover-right:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-in-range:not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next).x-date-in-range-hover:before{background-color:var(--x-primary-700)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:not(.x-date-last-or-next):before{border-color:var(--x-primary);border-left-color:transparent;border-right-color:transparent;transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day:before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start:not(.x-date-last-or-next):before{border-left-color:var(--x-primary);transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover.x-date-range-hover-start:not(.x-date-last-or-next):before{transform:translate(.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end:not(.x-date-last-or-next):before{border-right-color:var(--x-primary);transform:translate(-.25rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-left:not(:first-child):not(.x-date-last-or-next):not(.x-date-first-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(-.3125rem,-50%)}.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-start-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before,.x-date-range-portal-body .x-picker-date-item.x-date-range-hover-end-right:not(:last-child):not(.x-date-last-or-next):not(.x-date-last-day):before{border-top-color:var(--x-primary);border-bottom-color:var(--x-primary);transform:translate(.3125rem,-50%)}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
|
|
1476
2001
|
}], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i3.XI18nService }]; }, propDecorators: { placement: [{
|
|
1477
2002
|
type: HostBinding,
|
|
1478
2003
|
args: ['@x-connect-base-animation']
|
|
@@ -1482,18 +2007,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
1482
2007
|
}], start: [{
|
|
1483
2008
|
type: HostListener,
|
|
1484
2009
|
args: ['@x-connect-base-animation.start', ['$event']]
|
|
2010
|
+
}], startPicker: [{
|
|
2011
|
+
type: ViewChild,
|
|
2012
|
+
args: ['startPicker']
|
|
2013
|
+
}], endPicker: [{
|
|
2014
|
+
type: ViewChild,
|
|
2015
|
+
args: ['endPicker']
|
|
1485
2016
|
}] } });
|
|
1486
2017
|
|
|
1487
2018
|
class XDateRangeComponent extends XDateRangeProperty {
|
|
1488
|
-
constructor(renderer, configService, cdr, portalService, viewContainerRef, datePipe, overlay) {
|
|
2019
|
+
constructor(renderer, elementRef, configService, cdr, portalService, viewContainerRef, datePipe, overlay, i18n) {
|
|
1489
2020
|
super();
|
|
1490
2021
|
this.renderer = renderer;
|
|
2022
|
+
this.elementRef = elementRef;
|
|
1491
2023
|
this.configService = configService;
|
|
1492
2024
|
this.cdr = cdr;
|
|
1493
2025
|
this.portalService = portalService;
|
|
1494
2026
|
this.viewContainerRef = viewContainerRef;
|
|
1495
2027
|
this.datePipe = datePipe;
|
|
1496
2028
|
this.overlay = overlay;
|
|
2029
|
+
this.i18n = i18n;
|
|
1497
2030
|
this.modelType = 'date';
|
|
1498
2031
|
this.isInput = false;
|
|
1499
2032
|
this.showClearable = false;
|
|
@@ -1511,14 +2044,44 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1511
2044
|
this.activeTypeChange = new Subject();
|
|
1512
2045
|
this.startDisplay = '';
|
|
1513
2046
|
this.endDisplay = '';
|
|
2047
|
+
this.flexClass = [];
|
|
2048
|
+
this.locale = {};
|
|
1514
2049
|
this._unSubject = new Subject();
|
|
1515
2050
|
}
|
|
1516
|
-
get
|
|
1517
|
-
|
|
2051
|
+
get getStartPlaceholder() {
|
|
2052
|
+
if (this.placeholder && this.placeholder.length > 0)
|
|
2053
|
+
return this.placeholder[0];
|
|
2054
|
+
if (this.type === 'month') {
|
|
2055
|
+
return this.locale.startMonth;
|
|
2056
|
+
}
|
|
2057
|
+
else if (this.type === 'year') {
|
|
2058
|
+
return this.locale.startYear;
|
|
2059
|
+
}
|
|
2060
|
+
else {
|
|
2061
|
+
return this.locale.startDate;
|
|
2062
|
+
}
|
|
2063
|
+
}
|
|
2064
|
+
get getEndPlaceholder() {
|
|
2065
|
+
if (this.placeholder && this.placeholder.length > 1)
|
|
2066
|
+
return this.placeholder[1];
|
|
2067
|
+
if (this.type === 'month') {
|
|
2068
|
+
return this.locale.endMonth;
|
|
2069
|
+
}
|
|
2070
|
+
else if (this.type === 'year') {
|
|
2071
|
+
return this.locale.endYear;
|
|
2072
|
+
}
|
|
2073
|
+
else {
|
|
2074
|
+
return this.locale.endDate;
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
get requiredIsEmpty() {
|
|
2078
|
+
return this.validator && this.required && XIsEmpty(this.value);
|
|
1518
2079
|
}
|
|
1519
2080
|
writeValue(value) {
|
|
1520
|
-
if (
|
|
2081
|
+
if (XIsEmpty(value)) {
|
|
1521
2082
|
value = [];
|
|
2083
|
+
this.numberValue = [];
|
|
2084
|
+
}
|
|
1522
2085
|
if (value.length > 0) {
|
|
1523
2086
|
if (XIsDate(value[0])) {
|
|
1524
2087
|
this.modelType = 'date';
|
|
@@ -1541,6 +2104,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1541
2104
|
}
|
|
1542
2105
|
ngOnInit() {
|
|
1543
2106
|
this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
2107
|
+
this.setHostTypeClass();
|
|
1544
2108
|
this.setFormat();
|
|
1545
2109
|
this.setClassMap();
|
|
1546
2110
|
this.setSubject();
|
|
@@ -1549,7 +2113,9 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1549
2113
|
this.setPortal();
|
|
1550
2114
|
}
|
|
1551
2115
|
ngOnChanges(changes) {
|
|
1552
|
-
const { type } = changes;
|
|
2116
|
+
const { type, justify, align, direction, size, labelAlign } = changes;
|
|
2117
|
+
XIsChange(size, labelAlign) && this.setClassMap();
|
|
2118
|
+
XIsChange(justify, align, direction) && this.setFlexClass();
|
|
1553
2119
|
if (XIsChange(type)) {
|
|
1554
2120
|
this.setFormat();
|
|
1555
2121
|
this.setDisplayValue(this.numberValue);
|
|
@@ -1563,6 +2129,23 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1563
2129
|
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
|
|
1564
2130
|
this.closePortal();
|
|
1565
2131
|
});
|
|
2132
|
+
this.i18n.localeChange
|
|
2133
|
+
.pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
|
|
2134
|
+
.subscribe((x) => {
|
|
2135
|
+
this.locale = x;
|
|
2136
|
+
this.cdr.markForCheck();
|
|
2137
|
+
});
|
|
2138
|
+
}
|
|
2139
|
+
setFlexClass() {
|
|
2140
|
+
if (this.flexClass.length > 0) {
|
|
2141
|
+
for (let cls of this.flexClass) {
|
|
2142
|
+
this.renderer.removeClass(this.dateRange.nativeElement, cls);
|
|
2143
|
+
}
|
|
2144
|
+
}
|
|
2145
|
+
this.flexClass = this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
2146
|
+
}
|
|
2147
|
+
setHostTypeClass() {
|
|
2148
|
+
this.renderer.addClass(this.elementRef.nativeElement, `x-date-range-${this.type}`);
|
|
1566
2149
|
}
|
|
1567
2150
|
setFormat() {
|
|
1568
2151
|
if (this.format !== 'yyyy-MM-dd')
|
|
@@ -1613,6 +2196,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1613
2196
|
this.endDisplay = '';
|
|
1614
2197
|
this.mleave();
|
|
1615
2198
|
this.valueChange.next(this.numberValue);
|
|
2199
|
+
this.formControlValidator();
|
|
1616
2200
|
this.modelChange();
|
|
1617
2201
|
this.inputStartCom.inputFocus();
|
|
1618
2202
|
this.cdr.detectChanges();
|
|
@@ -1649,22 +2233,32 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1649
2233
|
if (this.portalAttached()) {
|
|
1650
2234
|
this.portal?.overlayRef?.detach();
|
|
1651
2235
|
this.active = false;
|
|
1652
|
-
|
|
1653
|
-
if (!this.value || this.value.length === 0) {
|
|
1654
|
-
this.startDisplay = '';
|
|
1655
|
-
this.endDisplay = '';
|
|
1656
|
-
this.numberValue = [];
|
|
1657
|
-
}
|
|
1658
|
-
else {
|
|
1659
|
-
this.numberValue = this.getNumberValue();
|
|
1660
|
-
this.setDisplayValue(this.numberValue);
|
|
1661
|
-
}
|
|
1662
|
-
}
|
|
2236
|
+
this.closeReduction();
|
|
1663
2237
|
this.cdr.detectChanges();
|
|
1664
2238
|
return true;
|
|
1665
2239
|
}
|
|
1666
2240
|
return false;
|
|
1667
2241
|
}
|
|
2242
|
+
closeReduction() {
|
|
2243
|
+
if (!this.numberValue || this.numberValue.length === 0 || this.numberValue.includes(null)) {
|
|
2244
|
+
if (!this.value || this.value.length === 0) {
|
|
2245
|
+
this.startDisplay = '';
|
|
2246
|
+
this.endDisplay = '';
|
|
2247
|
+
this.numberValue = [];
|
|
2248
|
+
}
|
|
2249
|
+
else {
|
|
2250
|
+
this.numberValue = this.getNumberValue();
|
|
2251
|
+
this.setDisplayValue(this.numberValue);
|
|
2252
|
+
}
|
|
2253
|
+
}
|
|
2254
|
+
if (!this.numberValue.includes(null) && !this.value.includes(null)) {
|
|
2255
|
+
let numberValue = this.getNumberValue();
|
|
2256
|
+
if (this.numberValue[0] !== numberValue[0] || this.numberValue[1] !== numberValue[1]) {
|
|
2257
|
+
this.numberValue = numberValue;
|
|
2258
|
+
this.setDisplayValue(this.numberValue);
|
|
2259
|
+
}
|
|
2260
|
+
}
|
|
2261
|
+
}
|
|
1668
2262
|
destroyPortal() {
|
|
1669
2263
|
this.portal?.overlayRef?.dispose();
|
|
1670
2264
|
}
|
|
@@ -1714,7 +2308,6 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1714
2308
|
type: this.type,
|
|
1715
2309
|
value: this.numberValue,
|
|
1716
2310
|
placement: this.placement,
|
|
1717
|
-
preset: this.preset,
|
|
1718
2311
|
valueChange: this.valueChange,
|
|
1719
2312
|
positionChange: this.positionChange,
|
|
1720
2313
|
activeType: this.activeType,
|
|
@@ -1722,23 +2315,23 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1722
2315
|
closePortal: () => this.closeSubject.next(),
|
|
1723
2316
|
destroyPortal: () => this.destroyPortal(),
|
|
1724
2317
|
nodeEmit: (dates, close = true) => this.onNodeClick(dates, close),
|
|
1725
|
-
startNodeEmit: (node, close = false) => this.startNodeClick(node, close),
|
|
1726
|
-
endNodeEmit: (node, close = false) => this.endNodeClick(node, close),
|
|
2318
|
+
startNodeEmit: (node, close = false, isDatePicker = true) => this.startNodeClick(node, close, isDatePicker),
|
|
2319
|
+
endNodeEmit: (node, close = false, isDatePicker = true) => this.endNodeClick(node, close, isDatePicker),
|
|
1727
2320
|
animating: (ing) => (this.animating = ing)
|
|
1728
2321
|
});
|
|
1729
2322
|
componentRef.changeDetectorRef.detectChanges();
|
|
1730
2323
|
}
|
|
1731
|
-
startNodeClick(node, close = false) {
|
|
2324
|
+
startNodeClick(node, close = false, isDatePicker = true) {
|
|
1732
2325
|
this.startDisplay = !node ? '' : this.datePipe.transform(node, this.format);
|
|
1733
|
-
if (!close) {
|
|
2326
|
+
if (!close && isDatePicker) {
|
|
1734
2327
|
this.inputEndCom.inputFocus('after');
|
|
1735
2328
|
this.activeTypeChange.next('end');
|
|
1736
2329
|
}
|
|
1737
2330
|
this.cdr.detectChanges();
|
|
1738
2331
|
}
|
|
1739
|
-
endNodeClick(node, close = false) {
|
|
2332
|
+
endNodeClick(node, close = false, isDatePicker = true) {
|
|
1740
2333
|
this.endDisplay = !node ? '' : this.datePipe.transform(node, this.format);
|
|
1741
|
-
if (!close) {
|
|
2334
|
+
if (!close && isDatePicker) {
|
|
1742
2335
|
this.inputStartCom.inputFocus('after');
|
|
1743
2336
|
this.activeTypeChange.next('start');
|
|
1744
2337
|
}
|
|
@@ -1749,6 +2342,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1749
2342
|
this.numberValue = dates.map((x) => x.getTime());
|
|
1750
2343
|
this.value = this.getValue();
|
|
1751
2344
|
this.setDisplayValue(this.numberValue);
|
|
2345
|
+
this.formControlValidator();
|
|
1752
2346
|
if (close) {
|
|
1753
2347
|
this.closeSubject.next();
|
|
1754
2348
|
}
|
|
@@ -1762,6 +2356,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1762
2356
|
this.activeChange.next(this.activeType);
|
|
1763
2357
|
}
|
|
1764
2358
|
setDisplayValue(dateNumber) {
|
|
2359
|
+
console.log(dateNumber);
|
|
1765
2360
|
if (!dateNumber)
|
|
1766
2361
|
return;
|
|
1767
2362
|
if (!XIsNull(dateNumber[0])) {
|
|
@@ -1782,7 +2377,8 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1782
2377
|
this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());
|
|
1783
2378
|
}
|
|
1784
2379
|
setClassMap() {
|
|
1785
|
-
XClearClass(this.labelMap);
|
|
2380
|
+
XClearClass(this.classMap, this.labelMap);
|
|
2381
|
+
this.classMap[`${XDateRangePrefix}-${this.size}`] = this.size ? true : false;
|
|
1786
2382
|
this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
|
|
1787
2383
|
}
|
|
1788
2384
|
formControlChanges() {
|
|
@@ -1790,12 +2386,12 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1790
2386
|
this.cdr.detectChanges();
|
|
1791
2387
|
}
|
|
1792
2388
|
}
|
|
1793
|
-
/** @nocollapse */ XDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeComponent, deps: [{ token: i0.Renderer2 }, { token: i2.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i1.DatePipe }, { token:
|
|
1794
|
-
/** @nocollapse */ XDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeComponent, selector: "x-date-range", providers: [XValueAccessor(XDateRangeComponent), DatePipe], viewQueries: [{ propertyName: "dateRange", first: true, predicate: ["dateRange"], descendants: true, static: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, static: true }, { propertyName: "inputStartCom", first: true, predicate: ["inputStartCom"], descendants: true, static: true }, { propertyName: "inputEndCom", first: true, predicate: ["inputEndCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n placeholder=\"\u5F00\u59CB\u65E5\u671F\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n ></x-input>\r\n <x-icon class=\"x-date-range-icon\" type=\"fto-arrow-right\"></x-icon>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n placeholder=\"\u7ED3\u675F\u65E5\u671F\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n <div *ngIf=\"active\" class=\"x-date-range-active-bar\"></div>\r\n </x-input-group>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-range{display:inline-block}.x-date-range{margin:0;padding:0;width:100%}.x-date-range-row{flex:1;display:flex;align-items:center}.x-date-range-group{display:inline-flex;flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow)}.x-date-range-group .x-input-group{display:flex;align-items:center;position:relative}.x-date-range-group .x-input-group .x-date-range-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2;font-size:1rem;width:1.8rem}.x-date-range-group .x-input-group>x-input input{padding-left:0!important;padding-right:0!important;background-color:transparent;margin-left:.4rem;margin-right:.4rem;border-radius:0}.x-date-range-group .x-input-group>x-input.x-data-range-input-start{width:6rem}.x-date-range-group .x-input-group>x-input.x-data-range-input-end{width:7.8rem}.x-date-range-group:hover{border-color:var(--x-primary-300)}.x-date-range-active-bar{position:absolute;height:.125rem;margin-left:.4rem;bottom:-.0625rem;width:calc(50% - 2.2rem);background-color:var(--x-primary);transition:var(--x-animation-duration-base)}.x-date-range-active .x-date-range-group{border-color:var(--x-primary)}.x-date-range-active-start .x-date-range-active-bar{left:0}.x-date-range-active-end .x-date-range-active-bar{left:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }, { kind: "component", type: i6.XInputGroupComponent, selector: "x-input-group" }, { kind: "component", type: i7.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2389
|
+
/** @nocollapse */ XDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i1.DatePipe }, { token: i5$1.Overlay }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2390
|
+
/** @nocollapse */ XDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeComponent, selector: "x-date-range", providers: [XValueAccessor(XDateRangeComponent), DatePipe], viewQueries: [{ propertyName: "dateRange", first: true, predicate: ["dateRange"], descendants: true, static: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, static: true }, { propertyName: "inputStartCom", first: true, predicate: ["inputStartCom"], descendants: true, static: true }, { propertyName: "inputEndCom", first: true, predicate: ["inputEndCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-date-range-bordered]=\"bordered\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <label *ngIf=\"label\" [class.x-date-range-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getStartPlaceholder\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getEndPlaceholder\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n <div *ngIf=\"active\" class=\"x-date-range-active-bar\"></div>\r\n </x-input-group>\r\n <span class=\"x-date-range-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-range{display:inline-block;width:15.6rem}x-date-range.x-date-range-date-time{width:23rem}x-date-range.x-date-range-date-minute{width:21rem}x-date-range.x-date-range-date-hour{width:19rem}.x-date-range{margin:0;padding:0;width:100%}.x-date-range.x-flex{display:flex}.x-date-range.x-justify-start{justify-content:flex-start}.x-date-range.x-justify-center{justify-content:center}.x-date-range.x-justify-end{justify-content:flex-end}.x-date-range.x-justify-space-between{justify-content:space-between}.x-date-range.x-justify-space-around{justify-content:space-around}.x-date-range.x-align-start{align-items:flex-start}.x-date-range.x-align-center{align-items:center}.x-date-range.x-align-end{align-items:flex-end}.x-date-range.x-direction-column{flex-direction:column}.x-date-range.x-direction-column-reverse{flex-direction:column-reverse}.x-date-range.x-direction-row{flex-direction:row}.x-date-range.x-direction-row-reverse{flex-direction:row-reverse}.x-date-range>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-date-range>label.x-text-align-start{text-align:start}.x-date-range>label.x-text-align-center{text-align:center}.x-date-range>label.x-text-align-end{text-align:end}.x-date-range.x-direction-row>label{padding:0 .5rem 0 0}.x-date-range.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-date-range.x-direction-column,.x-date-range.x-direction-column-reverse{align-items:inherit}.x-date-range-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-date-range-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-date-range.x-invalid>label,.x-date-range.x-required>label{color:var(--x-danger)}.x-date-range.x-invalid .x-date-range-input x-icon,.x-date-range.x-required .x-date-range-input x-icon{color:var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error,.x-date-range.x-required .x-date-range-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-top-left,.x-date-range.x-required .x-date-range-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-top-right,.x-date-range.x-required .x-date-range-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-bottom-left,.x-date-range.x-required .x-date-range-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-bottom-right,.x-date-range.x-required .x-date-range-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-date-range-row{flex:1;display:flex;align-items:center;position:relative}.x-date-range-group{width:100%;font-size:var(--x-font-size);background-image:none;box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow)}.x-date-range-group .x-input-group{display:flex;align-items:center;position:relative}.x-date-range-group .x-input-group>x-input{flex:1;width:50%}.x-date-range-group .x-input-group>x-input input{padding-left:.4rem!important;padding-right:.4rem!important}.x-date-range-bordered .x-date-range-group{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius)}.x-date-range-bordered .x-date-range-group .x-input-group>x-input input{background-color:transparent;border-radius:0}.x-date-range-bordered:not(.x-disabled) .x-date-range-group:hover{border-color:var(--x-primary-300)}.x-date-range-active-bar{position:absolute;height:.125rem;margin-left:.4rem;bottom:-.0625rem;width:calc(50% - 2.2rem);background-color:var(--x-primary);transition:var(--x-animation-duration-base)}.x-date-range-active .x-date-range-group{border-color:var(--x-primary)}.x-date-range-active-start .x-date-range-active-bar{left:0}.x-date-range-active-end .x-date-range-active-bar{left:50%}.x-date-range-big>.x-date-range-row .x-date-range-input input{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-big>.x-date-range-row{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-large>.x-date-range-row .x-date-range-input input{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-large>.x-date-range-row{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-medium>.x-date-range-row .x-date-range-input input{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-medium>.x-date-range-row{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-small>.x-date-range-row .x-date-range-input input{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-small>.x-date-range-row{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-mini>.x-date-range-row .x-date-range-input input{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-date-range-mini>.x-date-range-row{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-date-range-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }, { kind: "component", type: i7.XInputGroupComponent, selector: "x-input-group" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1795
2391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeComponent, decorators: [{
|
|
1796
2392
|
type: Component,
|
|
1797
|
-
args: [{ selector: `${XDateRangePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDateRangeComponent), DatePipe], template: "<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n
|
|
1798
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i2.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i1.DatePipe }, { type:
|
|
2393
|
+
args: [{ selector: `${XDateRangePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDateRangeComponent), DatePipe], template: "<div\r\n #dateRange\r\n class=\"x-date-range\"\r\n [ngClass]=\"classMap\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-date-range-bordered]=\"bordered\"\r\n [class.x-date-range-active]=\"active\"\r\n [class.x-date-range-active-start]=\"activeType === 'start'\"\r\n [class.x-date-range-active-end]=\"activeType === 'end'\"\r\n>\r\n <label *ngIf=\"label\" [class.x-date-range-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" (mouseenter)=\"menter()\" (mouseleave)=\"mleave()\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n class=\"x-data-range-input x-data-range-input-start\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getStartPlaceholder\"\r\n (xFocus)=\"onFocus('start')\"\r\n (xClick)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n icon=\"fto-arrow-right\"\r\n ></x-input>\r\n <x-input\r\n #inputEndCom\r\n class=\"x-data-range-input x-data-range-input-end\"\r\n type=\"text\"\r\n bordered=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"getEndPlaceholder\"\r\n (xFocus)=\"onFocus('end')\"\r\n (xClick)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n [icon]=\"icon\"\r\n (clearEmit)=\"clearEmit()\"\r\n [clearable]=\"showClearable\"\r\n ></x-input>\r\n <div *ngIf=\"active\" class=\"x-date-range-active-bar\"></div>\r\n </x-input-group>\r\n <span class=\"x-date-range-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-range{display:inline-block;width:15.6rem}x-date-range.x-date-range-date-time{width:23rem}x-date-range.x-date-range-date-minute{width:21rem}x-date-range.x-date-range-date-hour{width:19rem}.x-date-range{margin:0;padding:0;width:100%}.x-date-range.x-flex{display:flex}.x-date-range.x-justify-start{justify-content:flex-start}.x-date-range.x-justify-center{justify-content:center}.x-date-range.x-justify-end{justify-content:flex-end}.x-date-range.x-justify-space-between{justify-content:space-between}.x-date-range.x-justify-space-around{justify-content:space-around}.x-date-range.x-align-start{align-items:flex-start}.x-date-range.x-align-center{align-items:center}.x-date-range.x-align-end{align-items:flex-end}.x-date-range.x-direction-column{flex-direction:column}.x-date-range.x-direction-column-reverse{flex-direction:column-reverse}.x-date-range.x-direction-row{flex-direction:row}.x-date-range.x-direction-row-reverse{flex-direction:row-reverse}.x-date-range>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-date-range>label.x-text-align-start{text-align:start}.x-date-range>label.x-text-align-center{text-align:center}.x-date-range>label.x-text-align-end{text-align:end}.x-date-range.x-direction-row>label{padding:0 .5rem 0 0}.x-date-range.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-date-range.x-direction-column,.x-date-range.x-direction-column-reverse{align-items:inherit}.x-date-range-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-date-range-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-date-range.x-invalid>label,.x-date-range.x-required>label{color:var(--x-danger)}.x-date-range.x-invalid .x-date-range-input x-icon,.x-date-range.x-required .x-date-range-input x-icon{color:var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error,.x-date-range.x-required .x-date-range-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-top-left,.x-date-range.x-required .x-date-range-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-top-right,.x-date-range.x-required .x-date-range-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-bottom-left,.x-date-range.x-required .x-date-range-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-date-range.x-invalid .x-date-range-row .x-border-error.x-bottom-right,.x-date-range.x-required .x-date-range-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-date-range-row{flex:1;display:flex;align-items:center;position:relative}.x-date-range-group{width:100%;font-size:var(--x-font-size);background-image:none;box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow)}.x-date-range-group .x-input-group{display:flex;align-items:center;position:relative}.x-date-range-group .x-input-group>x-input{flex:1;width:50%}.x-date-range-group .x-input-group>x-input input{padding-left:.4rem!important;padding-right:.4rem!important}.x-date-range-bordered .x-date-range-group{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius)}.x-date-range-bordered .x-date-range-group .x-input-group>x-input input{background-color:transparent;border-radius:0}.x-date-range-bordered:not(.x-disabled) .x-date-range-group:hover{border-color:var(--x-primary-300)}.x-date-range-active-bar{position:absolute;height:.125rem;margin-left:.4rem;bottom:-.0625rem;width:calc(50% - 2.2rem);background-color:var(--x-primary);transition:var(--x-animation-duration-base)}.x-date-range-active .x-date-range-group{border-color:var(--x-primary)}.x-date-range-active-start .x-date-range-active-bar{left:0}.x-date-range-active-end .x-date-range-active-bar{left:50%}.x-date-range-big>.x-date-range-row .x-date-range-input input{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-big>.x-date-range-row{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-date-range-large>.x-date-range-row .x-date-range-input input{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-large>.x-date-range-row{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-date-range-medium>.x-date-range-row .x-date-range-input input{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-medium>.x-date-range-row{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-date-range-small>.x-date-range-row .x-date-range-input input{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-small>.x-date-range-row{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-date-range-mini>.x-date-range-row .x-date-range-input input{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-date-range-mini>.x-date-range-row{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-date-range-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
|
|
2394
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i1.DatePipe }, { type: i5$1.Overlay }, { type: i3.XI18nService }]; }, propDecorators: { dateRange: [{
|
|
1799
2395
|
type: ViewChild,
|
|
1800
2396
|
args: ['dateRange', { static: true }]
|
|
1801
2397
|
}], inputGroup: [{
|
|
@@ -1829,6 +2425,7 @@ class XDatePickerModule {
|
|
|
1829
2425
|
XPortalModule,
|
|
1830
2426
|
XTimePickerModule,
|
|
1831
2427
|
XInputModule,
|
|
2428
|
+
XLinkModule,
|
|
1832
2429
|
XButtonModule,
|
|
1833
2430
|
XIconModule,
|
|
1834
2431
|
XI18nModule,
|
|
@@ -1844,6 +2441,7 @@ class XDatePickerModule {
|
|
|
1844
2441
|
XPortalModule,
|
|
1845
2442
|
XTimePickerModule,
|
|
1846
2443
|
XInputModule,
|
|
2444
|
+
XLinkModule,
|
|
1847
2445
|
XButtonModule,
|
|
1848
2446
|
XIconModule,
|
|
1849
2447
|
XI18nModule,
|
|
@@ -1880,6 +2478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
1880
2478
|
XPortalModule,
|
|
1881
2479
|
XTimePickerModule,
|
|
1882
2480
|
XInputModule,
|
|
2481
|
+
XLinkModule,
|
|
1883
2482
|
XButtonModule,
|
|
1884
2483
|
XIconModule,
|
|
1885
2484
|
XI18nModule,
|