@ng-nest/ui 15.0.6 → 15.0.7
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/core/functions/date.d.ts +1 -0
- package/date-picker/date-picker.property.d.ts +129 -3
- package/date-picker/date-range-portal.component.d.ts +9 -8
- package/date-picker/date-range.component.d.ts +12 -10
- package/date-picker/picker-date.component.d.ts +15 -6
- package/esm2020/core/functions/date.mjs +20 -29
- package/esm2020/date-picker/date-picker.property.mjs +23 -2
- package/esm2020/date-picker/date-range-portal.component.mjs +36 -33
- package/esm2020/date-picker/date-range.component.mjs +75 -53
- package/esm2020/date-picker/picker-date.component.mjs +133 -17
- package/esm2020/input/input.component.mjs +2 -2
- package/esm2020/loading/loading.component.mjs +13 -6
- package/esm2020/loading/loading.property.mjs +1 -1
- package/esm2020/switch/switch.component.mjs +13 -6
- package/esm2020/switch/switch.module.mjs +6 -4
- package/esm2020/switch/switch.property.mjs +33 -4
- package/esm2020/table/drag.directive.mjs +13 -5
- package/esm2020/table/table-head.component.mjs +20 -6
- package/esm2020/table/table.property.mjs +23 -2
- package/fesm2015/ng-nest-ui-anchor.mjs +1 -0
- package/fesm2015/ng-nest-ui-api.mjs +1 -0
- package/fesm2015/ng-nest-ui-auto-complete.mjs +1 -0
- package/fesm2015/ng-nest-ui-avatar.mjs +1 -0
- package/fesm2015/ng-nest-ui-back-top.mjs +1 -0
- package/fesm2015/ng-nest-ui-badge.mjs +1 -0
- package/fesm2015/ng-nest-ui-base-form.mjs +1 -0
- package/fesm2015/ng-nest-ui-border.mjs +1 -0
- package/fesm2015/ng-nest-ui-button.mjs +1 -0
- package/fesm2015/ng-nest-ui-calendar.mjs +1 -0
- package/fesm2015/ng-nest-ui-card.mjs +1 -0
- package/fesm2015/ng-nest-ui-carousel.mjs +1 -0
- package/fesm2015/ng-nest-ui-cascade.mjs +1 -0
- package/fesm2015/ng-nest-ui-checkbox.mjs +1 -0
- package/fesm2015/ng-nest-ui-collapse.mjs +1 -0
- package/fesm2015/ng-nest-ui-color-picker.mjs +1 -0
- package/fesm2015/ng-nest-ui-color.mjs +1 -0
- package/fesm2015/ng-nest-ui-comment.mjs +1 -0
- package/fesm2015/ng-nest-ui-container.mjs +1 -0
- package/fesm2015/ng-nest-ui-core.mjs +20 -29
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +262 -99
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +1 -0
- package/fesm2015/ng-nest-ui-drawer.mjs +1 -0
- package/fesm2015/ng-nest-ui-dropdown.mjs +1 -0
- package/fesm2015/ng-nest-ui-find.mjs +1 -0
- package/fesm2015/ng-nest-ui-highlight.mjs +1 -0
- package/fesm2015/ng-nest-ui-icon.mjs +1 -0
- package/fesm2015/ng-nest-ui-image.mjs +1 -0
- package/fesm2015/ng-nest-ui-inner.mjs +1 -0
- package/fesm2015/ng-nest-ui-input-number.mjs +1 -0
- package/fesm2015/ng-nest-ui-input.mjs +1 -1
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-link.mjs +1 -0
- package/fesm2015/ng-nest-ui-list.mjs +1 -0
- package/fesm2015/ng-nest-ui-loading.mjs +12 -5
- package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-menu.mjs +1 -0
- package/fesm2015/ng-nest-ui-message-box.mjs +1 -0
- package/fesm2015/ng-nest-ui-message.mjs +1 -0
- package/fesm2015/ng-nest-ui-notification.mjs +1 -0
- package/fesm2015/ng-nest-ui-pagination.mjs +1 -0
- package/fesm2015/ng-nest-ui-popconfirm.mjs +1 -0
- package/fesm2015/ng-nest-ui-popover.mjs +1 -0
- package/fesm2015/ng-nest-ui-progress.mjs +1 -0
- package/fesm2015/ng-nest-ui-radio.mjs +1 -0
- package/fesm2015/ng-nest-ui-rate.mjs +1 -0
- package/fesm2015/ng-nest-ui-result.mjs +1 -0
- package/fesm2015/ng-nest-ui-select.mjs +1 -0
- package/fesm2015/ng-nest-ui-skeleton.mjs +1 -0
- package/fesm2015/ng-nest-ui-slider-select.mjs +1 -0
- package/fesm2015/ng-nest-ui-slider.mjs +1 -0
- package/fesm2015/ng-nest-ui-steps.mjs +1 -0
- package/fesm2015/ng-nest-ui-switch.mjs +48 -11
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +53 -10
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +1 -0
- package/fesm2015/ng-nest-ui-tag.mjs +1 -0
- package/fesm2015/ng-nest-ui-text-retract.mjs +1 -0
- package/fesm2015/ng-nest-ui-textarea.mjs +1 -0
- package/fesm2015/ng-nest-ui-timeline.mjs +1 -0
- package/fesm2015/ng-nest-ui-tooltip.mjs +1 -0
- package/fesm2015/ng-nest-ui-transfer.mjs +1 -0
- package/fesm2015/ng-nest-ui-tree-file.mjs +1 -0
- package/fesm2015/ng-nest-ui-tree-select.mjs +1 -0
- package/fesm2015/ng-nest-ui-tree.mjs +1 -0
- package/fesm2015/ng-nest-ui-upload.mjs +1 -0
- package/fesm2020/ng-nest-ui-anchor.mjs +1 -0
- package/fesm2020/ng-nest-ui-api.mjs +1 -0
- package/fesm2020/ng-nest-ui-auto-complete.mjs +1 -0
- package/fesm2020/ng-nest-ui-avatar.mjs +1 -0
- package/fesm2020/ng-nest-ui-back-top.mjs +1 -0
- package/fesm2020/ng-nest-ui-badge.mjs +1 -0
- package/fesm2020/ng-nest-ui-base-form.mjs +1 -0
- package/fesm2020/ng-nest-ui-border.mjs +1 -0
- package/fesm2020/ng-nest-ui-button.mjs +1 -0
- package/fesm2020/ng-nest-ui-calendar.mjs +1 -0
- package/fesm2020/ng-nest-ui-card.mjs +1 -0
- package/fesm2020/ng-nest-ui-carousel.mjs +1 -0
- package/fesm2020/ng-nest-ui-cascade.mjs +1 -0
- package/fesm2020/ng-nest-ui-checkbox.mjs +1 -0
- package/fesm2020/ng-nest-ui-collapse.mjs +1 -0
- package/fesm2020/ng-nest-ui-color-picker.mjs +1 -0
- package/fesm2020/ng-nest-ui-color.mjs +1 -0
- package/fesm2020/ng-nest-ui-comment.mjs +1 -0
- package/fesm2020/ng-nest-ui-container.mjs +1 -0
- package/fesm2020/ng-nest-ui-core.mjs +20 -29
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +261 -99
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +1 -0
- package/fesm2020/ng-nest-ui-drawer.mjs +1 -0
- package/fesm2020/ng-nest-ui-dropdown.mjs +1 -0
- package/fesm2020/ng-nest-ui-find.mjs +1 -0
- package/fesm2020/ng-nest-ui-highlight.mjs +1 -0
- package/fesm2020/ng-nest-ui-icon.mjs +1 -0
- package/fesm2020/ng-nest-ui-image.mjs +1 -0
- package/fesm2020/ng-nest-ui-inner.mjs +1 -0
- package/fesm2020/ng-nest-ui-input-number.mjs +1 -0
- package/fesm2020/ng-nest-ui-input.mjs +1 -1
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-link.mjs +1 -0
- package/fesm2020/ng-nest-ui-list.mjs +1 -0
- package/fesm2020/ng-nest-ui-loading.mjs +12 -5
- package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-menu.mjs +1 -0
- package/fesm2020/ng-nest-ui-message-box.mjs +1 -0
- package/fesm2020/ng-nest-ui-message.mjs +1 -0
- package/fesm2020/ng-nest-ui-notification.mjs +1 -0
- package/fesm2020/ng-nest-ui-pagination.mjs +1 -0
- package/fesm2020/ng-nest-ui-popconfirm.mjs +1 -0
- package/fesm2020/ng-nest-ui-popover.mjs +1 -0
- package/fesm2020/ng-nest-ui-progress.mjs +1 -0
- package/fesm2020/ng-nest-ui-radio.mjs +1 -0
- package/fesm2020/ng-nest-ui-rate.mjs +1 -0
- package/fesm2020/ng-nest-ui-result.mjs +1 -0
- package/fesm2020/ng-nest-ui-select.mjs +1 -0
- package/fesm2020/ng-nest-ui-skeleton.mjs +1 -0
- package/fesm2020/ng-nest-ui-slider-select.mjs +1 -0
- package/fesm2020/ng-nest-ui-slider.mjs +1 -0
- package/fesm2020/ng-nest-ui-steps.mjs +1 -0
- package/fesm2020/ng-nest-ui-switch.mjs +48 -11
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +53 -10
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +1 -0
- package/fesm2020/ng-nest-ui-tag.mjs +1 -0
- package/fesm2020/ng-nest-ui-text-retract.mjs +1 -0
- package/fesm2020/ng-nest-ui-textarea.mjs +1 -0
- package/fesm2020/ng-nest-ui-timeline.mjs +1 -0
- package/fesm2020/ng-nest-ui-tooltip.mjs +1 -0
- package/fesm2020/ng-nest-ui-transfer.mjs +1 -0
- package/fesm2020/ng-nest-ui-tree-file.mjs +1 -0
- package/fesm2020/ng-nest-ui-tree-select.mjs +1 -0
- package/fesm2020/ng-nest-ui-tree.mjs +1 -0
- package/fesm2020/ng-nest-ui-upload.mjs +1 -0
- package/loading/loading.component.d.ts +1 -0
- package/loading/loading.property.d.ts +1 -1
- package/package.json +1 -1
- package/switch/switch.component.d.ts +2 -1
- package/switch/switch.module.d.ts +3 -1
- package/switch/switch.property.d.ts +42 -1
- package/table/drag.directive.d.ts +12 -2
- package/table/table-head.component.d.ts +11 -1
- package/table/table.property.d.ts +50 -1
|
@@ -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, XChunk, XIsEmpty, XAddDays, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString,
|
|
5
|
+
import { XWithConfig, XInputBoolean, XDataConvert, XProperty, XIsChange, XIsNull, XChunk, XIsEmpty, XAddDays, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass, XAddMonths, XAddYears, XIsUndefined } 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';
|
|
@@ -262,10 +262,25 @@ class XPickerDateProperty extends XProperty {
|
|
|
262
262
|
* @en_US display date event
|
|
263
263
|
*/
|
|
264
264
|
this.displayChange = new EventEmitter();
|
|
265
|
+
/**
|
|
266
|
+
* @zh_CN 范围日期 mouseenter 事件
|
|
267
|
+
* @en_US Date mouseenter event
|
|
268
|
+
*/
|
|
269
|
+
this.rangeTdMouseenter = new EventEmitter();
|
|
270
|
+
/**
|
|
271
|
+
* @zh_CN 范围日期 mouseleave 事件
|
|
272
|
+
* @en_US Date mouseleave event
|
|
273
|
+
*/
|
|
274
|
+
this.rangeTdMouseleave = new EventEmitter();
|
|
275
|
+
/**
|
|
276
|
+
* @zh_CN 范围中的日期点击事件
|
|
277
|
+
* @en_US Range date click event
|
|
278
|
+
*/
|
|
279
|
+
this.rangeDateClick = new EventEmitter();
|
|
265
280
|
}
|
|
266
281
|
}
|
|
267
282
|
/** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
-
/** @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" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
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 });
|
|
269
284
|
__decorate([
|
|
270
285
|
XInputBoolean()
|
|
271
286
|
], XPickerDateProperty.prototype, "showHeader", void 0);
|
|
@@ -323,6 +338,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
323
338
|
type: Output
|
|
324
339
|
}], displayChange: [{
|
|
325
340
|
type: Output
|
|
341
|
+
}], rangeTdMouseenter: [{
|
|
342
|
+
type: Output
|
|
343
|
+
}], rangeTdMouseleave: [{
|
|
344
|
+
type: Output
|
|
345
|
+
}], rangeDateClick: [{
|
|
346
|
+
type: Output
|
|
326
347
|
}] } });
|
|
327
348
|
/**
|
|
328
349
|
* PickerMonth
|
|
@@ -481,6 +502,7 @@ class XPickerDateComponent extends XPickerDateProperty {
|
|
|
481
502
|
];
|
|
482
503
|
this.now = new Date();
|
|
483
504
|
this.dates = [];
|
|
505
|
+
this.weekDates = [];
|
|
484
506
|
this.locale = {};
|
|
485
507
|
this._unSubject = new Subject();
|
|
486
508
|
}
|
|
@@ -515,6 +537,94 @@ class XPickerDateComponent extends XPickerDateProperty {
|
|
|
515
537
|
init() {
|
|
516
538
|
this.setDays(this.display);
|
|
517
539
|
}
|
|
540
|
+
isStartDate(date) {
|
|
541
|
+
if (!this.rangeType || !this.rangeValue)
|
|
542
|
+
return;
|
|
543
|
+
if (!XIsNull(this.rangeValue[0])) {
|
|
544
|
+
return this.datePipe.transform(this.rangeValue[0], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');
|
|
545
|
+
}
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
isEndDate(date) {
|
|
549
|
+
if (!this.rangeType || !this.rangeValue)
|
|
550
|
+
return;
|
|
551
|
+
if (!XIsNull(this.rangeValue[1])) {
|
|
552
|
+
return this.datePipe.transform(this.rangeValue[1], 'yyyyMMdd') === this.datePipe.transform(date, 'yyyyMMdd');
|
|
553
|
+
}
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
setDatesState(cell) {
|
|
557
|
+
this.clearState(...this.dates);
|
|
558
|
+
for (let item of this.dates) {
|
|
559
|
+
this.setDayState(item);
|
|
560
|
+
}
|
|
561
|
+
this.onTdMouseenter(cell, false);
|
|
562
|
+
}
|
|
563
|
+
onTdMouseenter(cell, isEmit = true) {
|
|
564
|
+
const [start, end] = this.rangeValue;
|
|
565
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
566
|
+
const time = cell.date.getTime();
|
|
567
|
+
for (let item of this.dates) {
|
|
568
|
+
const itemTime = item.date.getTime();
|
|
569
|
+
this.clearState(item);
|
|
570
|
+
if (!XIsNull(start) && XIsNull(end)) {
|
|
571
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
572
|
+
item.isRangeHoverStartRight = time > start && itemTime === start;
|
|
573
|
+
item.isRangeHover =
|
|
574
|
+
(time < start && itemTime >= time && itemTime < start) || (time > start && itemTime > start && itemTime <= time);
|
|
575
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
576
|
+
item.isRangeHoverEnd = itemTime === time && time > start;
|
|
577
|
+
}
|
|
578
|
+
else if (XIsNull(start) && !XIsNull(end)) {
|
|
579
|
+
item.isRangeHoverEndLeft = time < end && itemTime === end;
|
|
580
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
581
|
+
item.isRangeHover = (time < end && itemTime >= time && itemTime < end) || (time > end && itemTime > end && itemTime <= time);
|
|
582
|
+
item.isRangeHoverStart = itemTime === time && time < end;
|
|
583
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
584
|
+
}
|
|
585
|
+
else if (!XIsNull(start) && !XIsNull(end)) {
|
|
586
|
+
item.isRangeHoverStartLeft = time < start && itemTime === start;
|
|
587
|
+
item.isRangeHoverEndRight = time > end && itemTime === end;
|
|
588
|
+
item.isRangeHover =
|
|
589
|
+
(time < start && itemTime >= time && itemTime < start) || (time > end && itemTime > end && itemTime <= time);
|
|
590
|
+
item.isRangeHoverStart = itemTime === time && time < start;
|
|
591
|
+
item.isRangeHoverEnd = itemTime === time && time > end;
|
|
592
|
+
if (this.rangeType === 'start') {
|
|
593
|
+
item.isInRangeHover = itemTime >= time && itemTime <= end;
|
|
594
|
+
}
|
|
595
|
+
else if (this.rangeType === 'end') {
|
|
596
|
+
item.isInRangeHover = itemTime >= start && itemTime <= time;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
if (isEmit) {
|
|
601
|
+
this.rangeTdMouseenter.emit(cell);
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
this.cdr.detectChanges();
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
onTdMouseleave(cell, isEmit = true) {
|
|
609
|
+
const [start, end] = this.rangeValue;
|
|
610
|
+
if (!XIsNull(start) || !XIsNull(end)) {
|
|
611
|
+
this.clearState(...this.dates);
|
|
612
|
+
if (isEmit)
|
|
613
|
+
this.rangeTdMouseleave.emit(cell);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
clearState(...cells) {
|
|
617
|
+
for (let cell of cells) {
|
|
618
|
+
cell.isInRangeHover = false;
|
|
619
|
+
cell.isRangeHover = false;
|
|
620
|
+
cell.isRangeHoverStart = false;
|
|
621
|
+
cell.isRangeHoverEnd = false;
|
|
622
|
+
cell.isRangeHoverStartLeft = false;
|
|
623
|
+
cell.isRangeHoverStartRight = false;
|
|
624
|
+
cell.isRangeHoverEndLeft = false;
|
|
625
|
+
cell.isRangeHoverEndRight = false;
|
|
626
|
+
}
|
|
627
|
+
}
|
|
518
628
|
setDays(date) {
|
|
519
629
|
let dates = [];
|
|
520
630
|
const year = date.getFullYear();
|
|
@@ -528,33 +638,61 @@ class XPickerDateComponent extends XPickerDateProperty {
|
|
|
528
638
|
let index = 1;
|
|
529
639
|
while (day !== 1) {
|
|
530
640
|
index--;
|
|
531
|
-
|
|
532
|
-
dates = [
|
|
533
|
-
day = date.getDay();
|
|
641
|
+
const cell = { date: new Date(year, month, index) };
|
|
642
|
+
dates = [this.setDayState(cell), ...dates];
|
|
643
|
+
day = cell.date.getDay();
|
|
534
644
|
}
|
|
535
645
|
index = 1;
|
|
536
646
|
do {
|
|
537
|
-
|
|
647
|
+
const cell = { date: new Date(year, month, index), isFirstDay: index === 1, isLastDay: index === lastDate };
|
|
648
|
+
dates = [...dates, this.setDayState(cell)];
|
|
538
649
|
index++;
|
|
539
650
|
} while (index <= lastDate);
|
|
540
651
|
index = 0;
|
|
541
652
|
day = lastDay;
|
|
542
653
|
while (day !== 0 || dates.length !== 7 * 6) {
|
|
543
654
|
index++;
|
|
544
|
-
|
|
545
|
-
dates = [...dates,
|
|
546
|
-
day = date.getDay();
|
|
655
|
+
const cell = { date: new Date(year, month + 1, index) };
|
|
656
|
+
dates = [...dates, this.setDayState(cell)];
|
|
657
|
+
day = cell.date.getDay();
|
|
547
658
|
}
|
|
548
|
-
this.dates =
|
|
659
|
+
this.dates = dates;
|
|
660
|
+
this.weekDates = XChunk(dates, 7);
|
|
549
661
|
if (this.dates.length > 0) {
|
|
550
|
-
this.rangeChange.emit([dates[0], dates[dates.length - 1]]);
|
|
662
|
+
this.rangeChange.emit([dates[0].date, dates[dates.length - 1].date]);
|
|
551
663
|
}
|
|
552
664
|
this.cdr.detectChanges();
|
|
553
665
|
}
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
this.
|
|
666
|
+
setDayState(cell) {
|
|
667
|
+
var _a;
|
|
668
|
+
const time = (_a = cell.date) === null || _a === void 0 ? void 0 : _a.getTime();
|
|
669
|
+
const fdate = this.datePipe.transform(cell.date, 'yyyyMMdd');
|
|
670
|
+
const fdatem = this.datePipe.transform(cell.date, 'yyyyMM');
|
|
671
|
+
const fdisplaym = this.datePipe.transform(this.display, 'yyyyMM');
|
|
672
|
+
const fnow = this.datePipe.transform(this.now, 'yyyyMMdd');
|
|
673
|
+
cell.isLastOrNext = fdatem !== fdisplaym;
|
|
674
|
+
cell.isNow = fdate === fnow;
|
|
675
|
+
if (this.rangePicker) {
|
|
676
|
+
if (!this.rangeValue)
|
|
677
|
+
return cell;
|
|
678
|
+
const [start, end] = this.rangeValue;
|
|
679
|
+
cell.isInRange = !!start && !!end && time >= start && time <= end;
|
|
680
|
+
cell.isRangeStartRight = !!start && !!end && fdate === this.datePipe.transform(start, 'yyyyMMdd');
|
|
681
|
+
cell.isRangeEndLeft = !!start && !!end && fdate === this.datePipe.transform(end, 'yyyyMMdd');
|
|
682
|
+
}
|
|
683
|
+
return cell;
|
|
684
|
+
}
|
|
685
|
+
dateClick(cell) {
|
|
686
|
+
this.model = cell.date;
|
|
687
|
+
this.modelChange.emit(cell.date);
|
|
688
|
+
if (this.rangePicker) {
|
|
689
|
+
this.clearState(...this.dates);
|
|
690
|
+
for (let item of this.dates) {
|
|
691
|
+
this.setDayState(item);
|
|
692
|
+
}
|
|
693
|
+
this.rangeDateClick.emit(cell);
|
|
694
|
+
}
|
|
695
|
+
this.cdr.detectChanges();
|
|
558
696
|
}
|
|
559
697
|
getLocaleMonth(date) {
|
|
560
698
|
return this.locale[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL'))];
|
|
@@ -597,10 +735,10 @@ class XPickerDateComponent extends XPickerDateProperty {
|
|
|
597
735
|
}
|
|
598
736
|
}
|
|
599
737
|
/** @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 });
|
|
600
|
-
/** @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 dates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"(week | date: 'yyyyMM') !== (display | date: 'yyyyMM')\"\r\n [class.x-date-now]=\"(week | date: 'yyyyMMdd') === (now | date: 'yyyyMMdd')\"\r\n (click)=\"dateTemp && dateClick(week)\"\r\n >\r\n <x-button\r\n *ngIf=\"!dateTemp\"\r\n type=\"text\"\r\n size=\"mini\"\r\n title=\"{{ week | date: 'yyyy-MM-dd' }}\"\r\n [activated]=\"!rangePicker && (week | date: 'yyyyMMdd') === (model | date: 'yyyyMMdd')\"\r\n [disabled]=\"false\"\r\n (click)=\"dateClick(week)\"\r\n >{{ week | date: 'd' }}</x-button\r\n >\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week }\"></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}.x-picker-date-body>table td x-button .x-button{width:1.625rem;height:1.5rem;margin:0 auto;border:.0625rem solid transparent}.x-picker-date-body>table td x-button .x-button:hover{background-color:var(--x-primary-900)}.x-picker-date-body>table td x-button .x-button-activated{color:var(--x-background-100);background-color:var(--x-primary)}.x-picker-date-body>table td x-button .x-button-activated:hover{color:var(--x-background-100);background-color:var(--x-primary)}.x-picker-date-body>table td.x-date-last-or-next x-button .x-button{color:var(--x-text-700)}.x-picker-date-body>table td.x-date-now x-button .x-button:not(.x-button-activated){color:var(--x-primary);background-color:transparent;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 });
|
|
738
|
+
/** @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 });
|
|
601
739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateComponent, decorators: [{
|
|
602
740
|
type: Component,
|
|
603
|
-
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 dates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"(week | date: 'yyyyMM') !== (display | date: 'yyyyMM')\"\r\n [class.x-date-now]=\"(week | date: 'yyyyMMdd') === (now | date: 'yyyyMMdd')\"\r\n (click)=\"dateTemp && dateClick(week)\"\r\n >\r\n <x-button\r\n *ngIf=\"!dateTemp\"\r\n type=\"text\"\r\n size=\"mini\"\r\n title=\"{{ week | date: 'yyyy-MM-dd' }}\"\r\n [activated]=\"!rangePicker && (week | date: 'yyyyMMdd') === (model | date: 'yyyyMMdd')\"\r\n [disabled]=\"false\"\r\n (click)=\"dateClick(week)\"\r\n >{{ week | date: 'd' }}</x-button\r\n >\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week }\"></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}.x-picker-date-body>table td x-button .x-button{width:1.625rem;height:1.5rem;margin:0 auto;border:.0625rem solid transparent}.x-picker-date-body>table td x-button .x-button:hover{background-color:var(--x-primary-900)}.x-picker-date-body>table td x-button .x-button-activated{color:var(--x-background-100);background-color:var(--x-primary)}.x-picker-date-body>table td x-button .x-button-activated:hover{color:var(--x-background-100);background-color:var(--x-primary)}.x-picker-date-body>table td.x-date-last-or-next x-button .x-button{color:var(--x-text-700)}.x-picker-date-body>table td.x-date-now x-button .x-button:not(.x-button-activated){color:var(--x-primary);background-color:transparent;border-color:var(--x-primary)}.x-picker-date .x-visibility{visibility:hidden}\n"] }]
|
|
741
|
+
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"] }]
|
|
604
742
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }, { type: i3.XI18nService }]; } });
|
|
605
743
|
|
|
606
744
|
class XPickerMonthComponent extends XPickerMonthProperty {
|
|
@@ -1152,6 +1290,7 @@ class XDateRangePortalComponent {
|
|
|
1152
1290
|
this.value = [];
|
|
1153
1291
|
this.locale = {};
|
|
1154
1292
|
this.preset = [];
|
|
1293
|
+
this.nodeClickCount = 0;
|
|
1155
1294
|
this._unSubject = new Subject();
|
|
1156
1295
|
}
|
|
1157
1296
|
done(event) {
|
|
@@ -1170,9 +1309,8 @@ class XDateRangePortalComponent {
|
|
|
1170
1309
|
this.placement = x;
|
|
1171
1310
|
this.cdr.detectChanges();
|
|
1172
1311
|
});
|
|
1173
|
-
this.
|
|
1312
|
+
this.activeTypeChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
|
|
1174
1313
|
this.activeType = x;
|
|
1175
|
-
this.setDefault();
|
|
1176
1314
|
});
|
|
1177
1315
|
this.i18n.localeChange
|
|
1178
1316
|
.pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
|
|
@@ -1193,7 +1331,7 @@ class XDateRangePortalComponent {
|
|
|
1193
1331
|
this.setDefault();
|
|
1194
1332
|
}
|
|
1195
1333
|
else {
|
|
1196
|
-
this.value = [];
|
|
1334
|
+
this.value = [null, null];
|
|
1197
1335
|
this.model = this.display;
|
|
1198
1336
|
this.startModel = this.model;
|
|
1199
1337
|
this.endModel = XAddMonths(this.model, 1);
|
|
@@ -1226,35 +1364,38 @@ class XDateRangePortalComponent {
|
|
|
1226
1364
|
this.startDisplay = this.display;
|
|
1227
1365
|
this.endDisplay = XAddMonths(this.display, 1);
|
|
1228
1366
|
}
|
|
1229
|
-
dateChange(date
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
this.value =
|
|
1242
|
-
this.
|
|
1243
|
-
this.endNodeEmit(new Date(this.value[1]));
|
|
1367
|
+
dateChange(date) {
|
|
1368
|
+
this.nodeClickCount++;
|
|
1369
|
+
let close = this.nodeClickCount === 2;
|
|
1370
|
+
const time = date.getTime();
|
|
1371
|
+
if (this.activeType === 'start') {
|
|
1372
|
+
this.value[0] = time;
|
|
1373
|
+
if (!XIsNull(this.value[1]) && time > this.value[1]) {
|
|
1374
|
+
if (this.nodeClickCount === 2) {
|
|
1375
|
+
this.nodeClickCount--;
|
|
1376
|
+
}
|
|
1377
|
+
close = false;
|
|
1378
|
+
this.endModel = null;
|
|
1379
|
+
this.value[1] = null;
|
|
1380
|
+
this.endNodeEmit(null, close);
|
|
1244
1381
|
}
|
|
1245
|
-
this.
|
|
1382
|
+
this.startNodeEmit(date, close);
|
|
1246
1383
|
}
|
|
1247
|
-
else {
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
this.
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
this.
|
|
1255
|
-
this.
|
|
1384
|
+
else if (this.activeType === 'end') {
|
|
1385
|
+
this.value[1] = time;
|
|
1386
|
+
if (!XIsNull(this.value[0]) && time < this.value[0]) {
|
|
1387
|
+
if (this.nodeClickCount === 2) {
|
|
1388
|
+
this.nodeClickCount--;
|
|
1389
|
+
}
|
|
1390
|
+
close = false;
|
|
1391
|
+
this.startModel = null;
|
|
1392
|
+
this.value[0] = null;
|
|
1393
|
+
this.startNodeEmit(null, close);
|
|
1256
1394
|
}
|
|
1257
|
-
this.
|
|
1395
|
+
this.endNodeEmit(date, close);
|
|
1396
|
+
}
|
|
1397
|
+
if (!this.value.includes(null)) {
|
|
1398
|
+
this.nodeEmit(this.value.map((x) => new Date(x)), close);
|
|
1258
1399
|
}
|
|
1259
1400
|
}
|
|
1260
1401
|
typeChange(type) {
|
|
@@ -1332,10 +1473,10 @@ class XDateRangePortalComponent {
|
|
|
1332
1473
|
}
|
|
1333
1474
|
}
|
|
1334
1475
|
/** @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 });
|
|
1335
|
-
/** @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 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
|
|
1476
|
+
/** @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 });
|
|
1336
1477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangePortalComponent, decorators: [{
|
|
1337
1478
|
type: Component,
|
|
1338
|
-
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 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
|
|
1479
|
+
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"] }]
|
|
1339
1480
|
}], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i3.XI18nService }]; }, propDecorators: { placement: [{
|
|
1340
1481
|
type: HostBinding,
|
|
1341
1482
|
args: ['@x-connect-base-animation']
|
|
@@ -1359,6 +1500,7 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1359
1500
|
this.overlay = overlay;
|
|
1360
1501
|
this.modelType = 'date';
|
|
1361
1502
|
this.isInput = false;
|
|
1503
|
+
this.showClearable = false;
|
|
1362
1504
|
this.enter = false;
|
|
1363
1505
|
this.inputClearable = false;
|
|
1364
1506
|
this.animating = false;
|
|
@@ -1369,24 +1511,22 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1369
1511
|
this.valueChange = new Subject();
|
|
1370
1512
|
this.dataChange = new Subject();
|
|
1371
1513
|
this.positionChange = new Subject();
|
|
1372
|
-
this.inputActiveChange = new Subject();
|
|
1373
1514
|
this.closeSubject = new Subject();
|
|
1515
|
+
this.activeTypeChange = new Subject();
|
|
1374
1516
|
this.startDisplay = '';
|
|
1375
1517
|
this.endDisplay = '';
|
|
1376
|
-
this.startActive = false;
|
|
1377
|
-
this.endActive = false;
|
|
1378
1518
|
this._unSubject = new Subject();
|
|
1379
1519
|
}
|
|
1380
1520
|
get getRequired() {
|
|
1381
1521
|
return this.required && XIsEmpty(this.value);
|
|
1382
1522
|
}
|
|
1383
1523
|
writeValue(value) {
|
|
1384
|
-
if (XIsUndefined(value))
|
|
1524
|
+
if (XIsUndefined(value) || XIsNull(value))
|
|
1385
1525
|
value = [];
|
|
1386
1526
|
if (value.length > 0) {
|
|
1387
1527
|
if (XIsDate(value[0])) {
|
|
1388
1528
|
this.modelType = 'date';
|
|
1389
|
-
this.numberValue = value.getTime();
|
|
1529
|
+
this.numberValue = value.map((x) => x.getTime());
|
|
1390
1530
|
}
|
|
1391
1531
|
else if (XIsNumber(value[0])) {
|
|
1392
1532
|
this.modelType = 'number';
|
|
@@ -1451,32 +1591,41 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1451
1591
|
}
|
|
1452
1592
|
}
|
|
1453
1593
|
menter() {
|
|
1454
|
-
if (this.disabled)
|
|
1594
|
+
if (this.disabled || !this.clearable)
|
|
1455
1595
|
return;
|
|
1456
1596
|
this.enter = true;
|
|
1457
1597
|
if (!XIsEmpty(this.numberValue)) {
|
|
1458
1598
|
this.icon = '';
|
|
1459
|
-
this.
|
|
1599
|
+
this.showClearable = true;
|
|
1460
1600
|
this.cdr.detectChanges();
|
|
1461
1601
|
}
|
|
1462
1602
|
}
|
|
1463
1603
|
mleave() {
|
|
1464
|
-
if (this.disabled)
|
|
1604
|
+
if (this.disabled || !this.clearable)
|
|
1465
1605
|
return;
|
|
1466
1606
|
this.enter = false;
|
|
1467
|
-
if (this.
|
|
1607
|
+
if (this.clearable) {
|
|
1468
1608
|
this.icon = 'fto-calendar';
|
|
1469
|
-
this.
|
|
1609
|
+
this.showClearable = false;
|
|
1470
1610
|
this.cdr.detectChanges();
|
|
1471
1611
|
}
|
|
1472
1612
|
}
|
|
1473
1613
|
clearEmit() {
|
|
1474
1614
|
this.value = [];
|
|
1475
1615
|
this.numberValue = [];
|
|
1476
|
-
this.
|
|
1616
|
+
this.startDisplay = '';
|
|
1617
|
+
this.endDisplay = '';
|
|
1477
1618
|
this.mleave();
|
|
1478
1619
|
this.valueChange.next(this.numberValue);
|
|
1479
1620
|
this.modelChange();
|
|
1621
|
+
this.inputStartCom.inputFocus();
|
|
1622
|
+
this.cdr.detectChanges();
|
|
1623
|
+
}
|
|
1624
|
+
onIconClick(event) {
|
|
1625
|
+
if (this.icon === 'fto-x') {
|
|
1626
|
+
this.clearEmit();
|
|
1627
|
+
}
|
|
1628
|
+
event.stopPropagation();
|
|
1480
1629
|
}
|
|
1481
1630
|
modelChange() {
|
|
1482
1631
|
if (this.onChange) {
|
|
@@ -1490,6 +1639,13 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1490
1639
|
? this.numberValue.map((x) => this.datePipe.transform(x, this.format))
|
|
1491
1640
|
: this.numberValue;
|
|
1492
1641
|
}
|
|
1642
|
+
getNumberValue() {
|
|
1643
|
+
return this.modelType === 'date'
|
|
1644
|
+
? this.value.map((x) => x.getTime())
|
|
1645
|
+
: this.modelType === 'string'
|
|
1646
|
+
? this.value.map((x) => new Date(x).getTime())
|
|
1647
|
+
: this.value;
|
|
1648
|
+
}
|
|
1493
1649
|
portalAttached() {
|
|
1494
1650
|
var _a, _b;
|
|
1495
1651
|
return (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.hasAttached();
|
|
@@ -1499,8 +1655,17 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1499
1655
|
if (this.portalAttached()) {
|
|
1500
1656
|
(_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
|
|
1501
1657
|
this.active = false;
|
|
1502
|
-
this.
|
|
1503
|
-
|
|
1658
|
+
if (!this.numberValue || this.numberValue.length === 0 || this.numberValue.includes(null)) {
|
|
1659
|
+
if (!this.value || this.value.length === 0) {
|
|
1660
|
+
this.startDisplay = '';
|
|
1661
|
+
this.endDisplay = '';
|
|
1662
|
+
this.numberValue = [];
|
|
1663
|
+
}
|
|
1664
|
+
else {
|
|
1665
|
+
this.numberValue = this.getNumberValue();
|
|
1666
|
+
this.setDisplayValue(this.numberValue);
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1504
1669
|
this.cdr.detectChanges();
|
|
1505
1670
|
return true;
|
|
1506
1671
|
}
|
|
@@ -1515,10 +1680,8 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1515
1680
|
type && $event.stopPropagation();
|
|
1516
1681
|
if (this.disabled || this.animating)
|
|
1517
1682
|
return;
|
|
1518
|
-
this.
|
|
1519
|
-
this.
|
|
1520
|
-
this.activeType = type;
|
|
1521
|
-
this.activeType && this.inputActiveChange.next(this.activeType);
|
|
1683
|
+
this.activeType = type || 'start';
|
|
1684
|
+
this.activeTypeChange.next(this.activeType);
|
|
1522
1685
|
if (this.active)
|
|
1523
1686
|
return;
|
|
1524
1687
|
this.active = true;
|
|
@@ -1536,7 +1699,6 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1536
1699
|
(_a = this.portal.overlayRef) === null || _a === void 0 ? void 0 : _a.outsidePointerEvents().pipe(takeUntil(this._unSubject)).subscribe((event) => {
|
|
1537
1700
|
const clickTarget = event.target;
|
|
1538
1701
|
if (clickTarget !== this.inputStartCom.inputRef.nativeElement && clickTarget !== this.inputEndCom.inputRef.nativeElement) {
|
|
1539
|
-
this.setDisplayValue(this.numberValue);
|
|
1540
1702
|
this.closeSubject.next();
|
|
1541
1703
|
}
|
|
1542
1704
|
});
|
|
@@ -1561,58 +1723,59 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1561
1723
|
preset: this.preset,
|
|
1562
1724
|
valueChange: this.valueChange,
|
|
1563
1725
|
positionChange: this.positionChange,
|
|
1564
|
-
inputActiveChange: this.inputActiveChange,
|
|
1565
1726
|
activeType: this.activeType,
|
|
1727
|
+
activeTypeChange: this.activeTypeChange,
|
|
1566
1728
|
closePortal: () => this.closeSubject.next(),
|
|
1567
1729
|
destroyPortal: () => this.destroyPortal(),
|
|
1568
|
-
nodeEmit: (dates,
|
|
1569
|
-
startNodeEmit: (node) => this.startNodeClick(node),
|
|
1570
|
-
endNodeEmit: (node) => this.endNodeClick(node),
|
|
1730
|
+
nodeEmit: (dates, close = true) => this.onNodeClick(dates, close),
|
|
1731
|
+
startNodeEmit: (node, close = false) => this.startNodeClick(node, close),
|
|
1732
|
+
endNodeEmit: (node, close = false) => this.endNodeClick(node, close),
|
|
1571
1733
|
animating: (ing) => (this.animating = ing)
|
|
1572
1734
|
});
|
|
1573
1735
|
componentRef.changeDetectorRef.detectChanges();
|
|
1574
1736
|
}
|
|
1575
|
-
startNodeClick(node) {
|
|
1576
|
-
this.startDisplay = this.datePipe.transform(node, this.format);
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1737
|
+
startNodeClick(node, close = false) {
|
|
1738
|
+
this.startDisplay = !node ? '' : this.datePipe.transform(node, this.format);
|
|
1739
|
+
if (!close) {
|
|
1740
|
+
this.inputEndCom.inputFocus('after');
|
|
1741
|
+
this.activeTypeChange.next('end');
|
|
1742
|
+
}
|
|
1580
1743
|
this.cdr.detectChanges();
|
|
1581
1744
|
}
|
|
1582
|
-
endNodeClick(node) {
|
|
1583
|
-
this.endDisplay = this.datePipe.transform(node, this.format);
|
|
1745
|
+
endNodeClick(node, close = false) {
|
|
1746
|
+
this.endDisplay = !node ? '' : this.datePipe.transform(node, this.format);
|
|
1747
|
+
if (!close) {
|
|
1748
|
+
this.inputStartCom.inputFocus('after');
|
|
1749
|
+
this.activeTypeChange.next('start');
|
|
1750
|
+
}
|
|
1584
1751
|
this.cdr.detectChanges();
|
|
1585
1752
|
}
|
|
1586
|
-
onNodeClick(dates,
|
|
1753
|
+
onNodeClick(dates, close = true) {
|
|
1587
1754
|
this.isInput = false;
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1755
|
+
this.numberValue = dates.map((x) => x.getTime());
|
|
1756
|
+
this.value = this.getValue();
|
|
1757
|
+
this.setDisplayValue(this.numberValue);
|
|
1758
|
+
if (close) {
|
|
1592
1759
|
this.closeSubject.next();
|
|
1593
|
-
this.modelChange();
|
|
1594
|
-
this.nodeEmit.emit(this.numberValue);
|
|
1595
|
-
}
|
|
1596
|
-
else {
|
|
1597
|
-
this.setDisplayValue(dates.map((x) => x.getTime()));
|
|
1598
|
-
this.cdr.markForCheck();
|
|
1599
1760
|
}
|
|
1761
|
+
this.modelChange();
|
|
1600
1762
|
}
|
|
1601
1763
|
onInput() {
|
|
1602
1764
|
this.isInput = true;
|
|
1603
1765
|
}
|
|
1766
|
+
onFocus(type) {
|
|
1767
|
+
this.activeType = type;
|
|
1768
|
+
this.activeChange.next(this.activeType);
|
|
1769
|
+
}
|
|
1604
1770
|
setDisplayValue(dateNumber) {
|
|
1605
|
-
// if (this.isInput && isNaN(this.startDisplay) && !isNaN(Date.parse(this.displayValue))) {
|
|
1606
|
-
// this.displayValue = this.datePipe.transform(this.displayValue, this.format);
|
|
1607
|
-
// this.numberValue = new Date(this.displayValue).getTime();
|
|
1608
|
-
// this.value = this.getValue();
|
|
1609
|
-
// this.modelChange();
|
|
1610
|
-
// this.isInput = false;
|
|
1611
|
-
// } else {
|
|
1612
1771
|
if (!dateNumber)
|
|
1613
1772
|
return;
|
|
1614
|
-
|
|
1615
|
-
|
|
1773
|
+
if (!XIsNull(dateNumber[0])) {
|
|
1774
|
+
this.startDisplay = this.datePipe.transform(dateNumber[0], this.format);
|
|
1775
|
+
}
|
|
1776
|
+
if (!XIsNull(dateNumber[1])) {
|
|
1777
|
+
this.endDisplay = this.datePipe.transform(dateNumber[1], this.format);
|
|
1778
|
+
}
|
|
1616
1779
|
}
|
|
1617
1780
|
setPlacement() {
|
|
1618
1781
|
return this.portalService.setPlacement({
|
|
@@ -1635,10 +1798,10 @@ class XDateRangeComponent extends XDateRangeProperty {
|
|
|
1635
1798
|
}
|
|
1636
1799
|
}
|
|
1637
1800
|
/** @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: i4$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
1638
|
-
/** @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
|
|
1801
|
+
/** @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 });
|
|
1639
1802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeComponent, decorators: [{
|
|
1640
1803
|
type: Component,
|
|
1641
|
-
args: [{ selector: `${XDateRangePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDateRangeComponent), DatePipe], template: "<div
|
|
1804
|
+
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 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"] }]
|
|
1642
1805
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i2.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i1.DatePipe }, { type: i4$1.Overlay }]; }, propDecorators: { dateRange: [{
|
|
1643
1806
|
type: ViewChild,
|
|
1644
1807
|
args: ['dateRange', { static: true }]
|