@spicainternational/ngx-sds-components 2.21.1 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/lib/date-picker/date-picker.component.mjs +18 -16
- package/esm2020/src/lib/quick-info/quick-info.component.mjs +12 -18
- package/esm2020/src/lib/tooltip/tooltip.directive.mjs +11 -9
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +17 -15
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-quick-info.mjs +11 -17
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-quick-info.mjs.map +1 -1
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +10 -8
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +17 -15
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-quick-info.mjs +11 -17
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-quick-info.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +10 -8
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/date-picker/date-picker.component.d.ts +1 -0
- package/src/lib/quick-info/quick-info.component.d.ts +2 -2
|
@@ -56,13 +56,15 @@ export class TooltipDirective {
|
|
|
56
56
|
initializeTooltip() {
|
|
57
57
|
if (this.componentRef === null) {
|
|
58
58
|
window.clearInterval(this.hideDelay);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
if (this.tooltip) {
|
|
60
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(SdsTooltipComponent);
|
|
61
|
+
this.componentRef = componentFactory.create(this.injector);
|
|
62
|
+
this.appRef.attachView(this.componentRef.hostView);
|
|
63
|
+
const [tooltipDOMElement] = this.componentRef.hostView.rootNodes;
|
|
64
|
+
this.setTooltipComponentProperties();
|
|
65
|
+
document.body.appendChild(tooltipDOMElement);
|
|
66
|
+
this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);
|
|
67
|
+
}
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
setTooltipComponentProperties() {
|
|
@@ -99,7 +101,7 @@ export class TooltipDirective {
|
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
showTooltip() {
|
|
102
|
-
if (this.componentRef !== null) {
|
|
104
|
+
if (this.tooltip && this.componentRef !== null) {
|
|
103
105
|
this.componentRef.instance.visible = true;
|
|
104
106
|
}
|
|
105
107
|
}
|
|
@@ -152,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
152
154
|
type: HostListener,
|
|
153
155
|
args: ['touchend']
|
|
154
156
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBR1QsWUFBWSxFQUVaLEtBQUssR0FHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFNckUsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QixZQUNZLFVBQXNCLEVBQ3RCLE1BQXNCLEVBQ3RCLHdCQUFrRDtJQUMxRCxnREFBZ0Q7SUFDeEMsUUFBa0I7UUFKbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBRWxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFqQnJCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixhQUFRLEdBQW9CLE9BQU8sQ0FBQztRQUNwQyxVQUFLLEdBQWlCLE1BQU0sQ0FBQztRQUM3QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVmLGlCQUFZLEdBQTZCLElBQUksQ0FBQztRQWNsRCxxREFBcUQ7UUFDckQsNkJBQTZCO1FBQzdCLG9DQUFvQztRQUNwQyxNQUFNO0lBQ1YsQ0FBQztJQUdELFlBQVk7UUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBR0QsWUFBWTtRQUNSLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3QixvQ0FBb0M7SUFDcEMsSUFBSTtJQUVKLDREQUE0RDtJQUM1RCxvREFBb0Q7SUFD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QVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQW9CMUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVckMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRdEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQXBwbGljYXRpb25SZWYsXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDb21wb25lbnRSZWYsXHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkc1Rvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24sIFRvb2x0aXBUaGVtZSB9IGZyb20gJy4vdG9vbHRpcC50eXBlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3Nkc1Rvb2x0aXBdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUge1xyXG4gICAgQElucHV0KCkgdG9vbHRpcCA9ICcnO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdhYm92ZSc7XHJcbiAgICBASW5wdXQoKSB0aGVtZTogVG9vbHRpcFRoZW1lID0gJ2RhcmsnO1xyXG4gICAgQElucHV0KCkgc2hvd0RlbGF5ID0gMDtcclxuICAgIEBJbnB1dCgpIGhpZGVEZWxheSA9IDA7XHJcblxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBoaWRlVGltZW91dD86IG51bWJlcjtcclxuICAgIHByaXZhdGUgdG91Y2hUaW1lb3V0PzogbnVtYmVyO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgLy8gICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgLy8gcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMlxyXG4gICAgKSB7XHJcbiAgICAgICAgLy8gdGhpcy5yZW5kZXJlcjIubGlzdGVuKCd3aW5kb3cnLCAnc2Nyb2xsJywgKF8pID0+IHtcclxuICAgICAgICAvLyAgICAgY29uc29sZS5sb2coJ3Njcm9sbCcpO1xyXG4gICAgICAgIC8vICAgICB0aGlzLnNldEhpZGVUb29sdGlwVGltZW91dCgpO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxyXG4gICAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldEhpZGVUb29sdGlwVGltZW91dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6c2Nyb2xsXCIsIFtdKVxyXG4gICAgLy8gb25XaW5kb3dTY3JvbGwoKSB7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coJ3Njcm9sbCcpO1xyXG4gICAgLy8gICAgIHRoaXMuc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpIG9uU2Nyb2xsKGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coKGUudGFyZ2V0IGFzIEVsZW1lbnQpLnNjcm9sbFRvcCk7XHJcbiAgICAvLyAgfVxyXG5cclxuICAgIC8vICBASG9zdExpc3RlbmVyKCdzY3JvbGwnKSBvblNjcm9sbEhvc3QoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygoZS50YXJnZXQgYXMgRWxlbWVudCkuc2Nyb2xsVG9wKTtcclxuICAgIC8vICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcclxuICAgIG9uTW91c2VNb3ZlKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCAmJiB0aGlzLnBvc2l0aW9uID09PSAnZHluYW1pYycpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9ICRldmVudC5jbGllbnRYO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSAkZXZlbnQuY2xpZW50WTtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXHJcbiAgICBvblRvdWNoU3RhcnQoJGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XHJcbiAgICAgICAgdGhpcy50b3VjaFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLmluaXRpYWxpemVUb29sdGlwLmJpbmQodGhpcyksIDUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnKVxyXG4gICAgb25Ub3VjaEVuZCgpOiB2b2lkIHtcclxuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLnNldEhpZGVUb29sdGlwVGltZW91dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVRvb2x0aXAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuaGlkZURlbGF5KTtcclxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFNkc1Rvb2x0aXBDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICAgICAgICAgIGNvbnN0IFt0b29sdGlwRE9NRWxlbWVudF0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2RlcztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcclxuXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcERPTUVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodGhpcy5zaG93VG9vbHRpcC5iaW5kKHRoaXMpLCB0aGlzLnNob3dEZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXA7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudGhlbWUgPSB0aGlzLnRoZW1lO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20gfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdiZWxvdyc6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCgocmlnaHQgLSBsZWZ0KSAvIDIgKyBsZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKGJvdHRvbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhYm92ZSc6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCgocmlnaHQgLSBsZWZ0KSAvIDIgKyBsZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyaWdodCc6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChyaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyAoYm90dG9tIC0gdG9wKSAvIDIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIChib3R0b20gLSB0b3ApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzaG93VG9vbHRpcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCkge1xyXG4gICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLmRlc3Ryb3kuYmluZCh0aGlzKSwgdGhpcy5oaWRlRGVsYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuc2hvd1RpbWVvdXQpO1xyXG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmhpZGVEZWxheSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBR1QsWUFBWSxFQUVaLEtBQUssR0FHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFNckUsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QixZQUNZLFVBQXNCLEVBQ3RCLE1BQXNCLEVBQ3RCLHdCQUFrRDtJQUMxRCxnREFBZ0Q7SUFDeEMsUUFBa0I7UUFKbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBRWxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFqQnJCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixhQUFRLEdBQW9CLE9BQU8sQ0FBQztRQUNwQyxVQUFLLEdBQWlCLE1BQU0sQ0FBQztRQUM3QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVmLGlCQUFZLEdBQTZCLElBQUksQ0FBQztRQWNsRCxxREFBcUQ7UUFDckQsNkJBQTZCO1FBQzdCLG9DQUFvQztRQUNwQyxNQUFNO0lBQ1YsQ0FBQztJQUdELFlBQVk7UUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBR0QsWUFBWTtRQUNSLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3QixvQ0FBb0M7SUFDcEMsSUFBSTtJQUVKLDREQUE0RDtJQUM1RCxvREFBb0Q7SUFD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RyxTQUFTO3NCQUFqQixLQUFLO2dCQXVCTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBb0IxQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVyQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVF0QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBcHBsaWNhdGlvblJlZixcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIENvbXBvbmVudFJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2RzVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiwgVG9vbHRpcFRoZW1lIH0gZnJvbSAnLi90b29sdGlwLnR5cGVzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbc2RzVG9vbHRpcF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XHJcbiAgICBASW5wdXQoKSB0b29sdGlwID0gJyc7XHJcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ2Fib3ZlJztcclxuICAgIEBJbnB1dCgpIHRoZW1lOiBUb29sdGlwVGhlbWUgPSAnZGFyayc7XHJcbiAgICBASW5wdXQoKSBzaG93RGVsYXkgPSAwO1xyXG4gICAgQElucHV0KCkgaGlkZURlbGF5ID0gMDtcclxuXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICAgIHByaXZhdGUgc2hvd1RpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIGhpZGVUaW1lb3V0PzogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSB0b3VjaFRpbWVvdXQ/OiBudW1iZXI7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAvLyAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICAvLyBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyXHJcbiAgICApIHtcclxuICAgICAgICAvLyB0aGlzLnJlbmRlcmVyMi5saXN0ZW4oJ3dpbmRvdycsICdzY3JvbGwnLCAoXykgPT4ge1xyXG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZygnc2Nyb2xsJyk7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCk7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXHJcbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVG9vbHRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpzY3JvbGxcIiwgW10pXHJcbiAgICAvLyBvbldpbmRvd1Njcm9sbCgpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygnc2Nyb2xsJyk7XHJcbiAgICAvLyAgICAgdGhpcy5zZXRIaWRlVG9vbHRpcFRpbWVvdXQoKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJykgb25TY3JvbGwoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygoZS50YXJnZXQgYXMgRWxlbWVudCkuc2Nyb2xsVG9wKTtcclxuICAgIC8vICB9XHJcblxyXG4gICAgLy8gIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcpIG9uU2Nyb2xsSG9zdChlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKChlLnRhcmdldCBhcyBFbGVtZW50KS5zY3JvbGxUb3ApO1xyXG4gICAgLy8gIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gICAgb25Nb3VzZU1vdmUoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsICYmIHRoaXMucG9zaXRpb24gPT09ICdkeW5hbWljJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gJGV2ZW50LmNsaWVudFg7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9ICRldmVudC5jbGllbnRZO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b29sdGlwID0gdGhpcy50b29sdGlwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICAgIG9uVG91Y2hTdGFydCgkZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLnRvdWNoVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXAuYmluZCh0aGlzKSwgNTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcpXHJcbiAgICBvblRvdWNoRW5kKCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpO1xyXG4gICAgICAgIHRoaXMuc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplVG9vbHRpcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5oaWRlRGVsYXkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMudG9vbHRpcCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFNkc1Rvb2x0aXBDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFt0b29sdGlwRE9NRWxlbWVudF0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2RlcztcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0b29sdGlwRE9NRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodGhpcy5zaG93VG9vbHRpcC5iaW5kKHRoaXMpLCB0aGlzLnNob3dEZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpIHtcclxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcDtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50aGVtZSA9IHRoaXMudGhlbWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2JlbG93Jzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKChyaWdodCAtIGxlZnQpIC8gMiArIGxlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQoYm90dG9tKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Fib3ZlJzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKChyaWdodCAtIGxlZnQpIC8gMiArIGxlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0Jzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHJpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIChib3R0b20gLSB0b3ApIC8gMik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsZWZ0Jzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgKGJvdHRvbSAtIHRvcCkgLyAyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXAgJiYgdGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCkge1xyXG4gICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLmRlc3Ryb3kuYmluZCh0aGlzKSwgdGhpcy5oaWRlRGVsYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuc2hvd1RpbWVvdXQpO1xyXG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmhpZGVEZWxheSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -230,21 +230,10 @@ class SdsDatePickerComponent {
|
|
|
230
230
|
};
|
|
231
231
|
this.customDateRange = new PeriodPickerDateRange(this.translations.custom, undefined, undefined);
|
|
232
232
|
this.selectedDateRange = this.customDateRange;
|
|
233
|
-
|
|
234
|
-
this.
|
|
235
|
-
|
|
236
|
-
this.
|
|
237
|
-
const periodSelectorDefaultEndDate = startOfDay(endOfMonth(new Date()));
|
|
238
|
-
this.selectedDateEnd = periodSelectorDefaultEndDate;
|
|
239
|
-
if (this.selectionKind == 'single') {
|
|
240
|
-
this.setDateRangeText(singleDateSelectorDefaultDate, singleDateSelectorDefaultDate);
|
|
241
|
-
this.matchDateRange(singleDateSelectorDefaultDate, singleDateSelectorDefaultDate);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
this.setDateRangeText(periodSelectorDefaultStartDate, periodSelectorDefaultEndDate);
|
|
245
|
-
this.matchDateRange(periodSelectorDefaultStartDate, periodSelectorDefaultEndDate);
|
|
246
|
-
}
|
|
247
|
-
// this.dateRangeTranslations = new DateRangeTranslations();
|
|
233
|
+
this.selectedDateInternal = startOfDay(new Date());
|
|
234
|
+
this.selectedDateStart = startOfMonth(new Date());
|
|
235
|
+
this.selectedDateEnd = startOfDay(endOfMonth(new Date()));
|
|
236
|
+
this.setSelectedDateRangeText();
|
|
248
237
|
}
|
|
249
238
|
ngOnInit() { }
|
|
250
239
|
ngOnChanges(changes) {
|
|
@@ -268,6 +257,9 @@ class SdsDatePickerComponent {
|
|
|
268
257
|
if (changes['translations']) {
|
|
269
258
|
this.updateCustomText();
|
|
270
259
|
}
|
|
260
|
+
if (changes['locales']) {
|
|
261
|
+
this.setSelectedDateRangeText();
|
|
262
|
+
}
|
|
271
263
|
if (changes['selectedDateStart'] || changes['selectedDateEnd']) {
|
|
272
264
|
this.dateStartOld = this.selectedDateStart;
|
|
273
265
|
this.dateEndOld = this.selectedDateEnd;
|
|
@@ -594,6 +586,16 @@ class SdsDatePickerComponent {
|
|
|
594
586
|
(_b = element === null || element === void 0 ? void 0 : element.classList) === null || _b === void 0 ? void 0 : _b.remove('dx-calendar-selected-date');
|
|
595
587
|
}
|
|
596
588
|
}
|
|
589
|
+
setSelectedDateRangeText() {
|
|
590
|
+
if (this.selectionKind == 'single') {
|
|
591
|
+
this.setDateRangeText(new Date(this.selectedDateInternal), new Date(this.selectedDateInternal));
|
|
592
|
+
this.matchDateRange(new Date(this.selectedDateInternal), new Date(this.selectedDateInternal));
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
this.setDateRangeText(new Date(this.selectedDateStart), new Date(this.selectedDateEnd));
|
|
596
|
+
this.matchDateRange(new Date(this.selectedDateStart), new Date(this.selectedDateEnd));
|
|
597
|
+
}
|
|
598
|
+
}
|
|
597
599
|
toggleDateRangeSelectorVisibility() {
|
|
598
600
|
if (!this.showPredefinedOptionsSelector) {
|
|
599
601
|
this.generateDateRanges();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spicainternational-ngx-sds-components-src-lib-date-picker.mjs","sources":["../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.model.ts","../../../projects/ngx-sds-components/src/lib/date-picker/sds-date-picker.service.ts","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.component.ts","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.component.html","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.module.ts","../../../projects/ngx-sds-components/src/lib/date-picker/spicainternational-ngx-sds-components-src-lib-date-picker.ts"],"sourcesContent":["export class DateRangeTranslations {\r\n custom: string = '';\r\n}\r\n\r\nexport class PeriodPickerDateRangeDefinition {\r\n name: string = '';\r\n type: 'dynamic' | 'fixed' = 'fixed';\r\n\r\n dynamicDateRangeDefinition?: PeriodPickerDateRangeDynamicDefinition;\r\n\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n\r\n constructor(\r\n name: string,\r\n type: 'dynamic' | 'fixed' = 'fixed',\r\n dynamicDateRangeDefinition?: PeriodPickerDateRangeDynamicDefinition,\r\n dateFrom?: Date,\r\n dateTo?: Date\r\n ) {\r\n this.name = name;\r\n this.type = type;\r\n this.dynamicDateRangeDefinition = dynamicDateRangeDefinition;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDateRangeDynamicDefinition {\r\n dimension: 'd' | 'w' | 'm' | 'y';\r\n modifier: number;\r\n\r\n constructor(dimension: 'd' | 'w' | 'm' | 'y', modifier: number) {\r\n this.dimension = dimension;\r\n this.modifier = modifier;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDateRange {\r\n name: string;\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n\r\n constructor(name: string, dateFrom?: Date, dateTo?: Date) {\r\n this.name = name;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDynamicDateRangeDefinitionGenerator {\r\n\r\n static generateMonthlyRanges(currentMonthText: string, previousMonthText: string, nextMonthText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentMonthText, 'dynamic', {dimension: 'm', modifier: 0}))\r\n }\r\n\r\n if (nextMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextMonthText, 'dynamic', {dimension: 'm', modifier: 1}))\r\n }\r\n\r\n if (previousMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousMonthText, 'dynamic', {dimension: 'm', modifier: -1}))\r\n }\r\n\r\n return ranges;\r\n }\r\n\r\n static generateWeeklyRanges(currentWeekText: string, previousWeekText: string, nextWeekText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentWeekText, 'dynamic', {dimension: 'w', modifier: 0}))\r\n }\r\n\r\n if (nextWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextWeekText, 'dynamic', {dimension: 'w', modifier: 1}))\r\n }\r\n\r\n if (previousWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousWeekText, 'dynamic', {dimension: 'w', modifier: -1}))\r\n }\r\n \r\n return ranges;\r\n } \r\n\r\n static generateDailyRanges(currentDayText: string, previousDayText: string, nextDayText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentDayText, 'dynamic', {dimension: 'd', modifier: 0}))\r\n }\r\n\r\n if (nextDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextDayText, 'dynamic', {dimension: 'd', modifier: 1}))\r\n }\r\n\r\n if (previousDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousDayText, 'dynamic', {dimension: 'd', modifier: -1}))\r\n }\r\n \r\n return ranges;\r\n } \r\n\r\n}\r\n\r\nexport interface PeriodPickerTranslations {\r\n cancel: string;\r\n apply: string;\r\n custom: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n add,\r\n addDays,\r\n addMonths,\r\n addWeeks,\r\n addYears,\r\n differenceInDays,\r\n differenceInMonths,\r\n endOfMonth,\r\n endOfWeek,\r\n endOfYear,\r\n isSameDay,\r\n isSameMonth,\r\n startOfDay,\r\n startOfMonth,\r\n startOfWeek,\r\n startOfYear,\r\n} from 'date-fns';\r\nimport {\r\n PeriodPickerDateRange,\r\n PeriodPickerDateRangeDefinition,\r\n} from './date-picker.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdsDatePickerService {\r\n constructor() {}\r\n\r\n public getRange(\r\n currentStartDate: Date,\r\n currentEndDate: Date,\r\n direction: 'previous' | 'next'\r\n ): [Date, Date] {\r\n const modifier = direction == 'next' ? 1 : -1;\r\n\r\n let dateStart, dateEnd;\r\n if (\r\n isSameDay(currentStartDate, startOfMonth(currentStartDate)) &&\r\n isSameDay(currentEndDate, endOfMonth(currentEndDate)) &&\r\n isSameMonth(currentStartDate, currentEndDate)\r\n ) {\r\n // Month range.\r\n dateStart = add(currentStartDate, { months: modifier });\r\n dateEnd = startOfDay(\r\n endOfMonth(add(currentEndDate, { months: modifier }))\r\n );\r\n } else {\r\n // Custom range in months\r\n if (\r\n isSameDay(currentStartDate, startOfMonth(currentStartDate)) &&\r\n isSameDay(currentEndDate, endOfMonth(currentEndDate))\r\n ) {\r\n const monthsDiff =\r\n differenceInMonths(currentEndDate, currentStartDate) + 1;\r\n dateStart = add(currentStartDate, {\r\n months: monthsDiff * modifier,\r\n });\r\n dateEnd = startOfDay(\r\n endOfMonth(\r\n add(currentEndDate, { months: monthsDiff * modifier })\r\n )\r\n );\r\n } else {\r\n // Custom range in days\r\n const dayDiff =\r\n differenceInDays(currentEndDate, currentStartDate) + 1;\r\n dateStart = add(currentStartDate, { days: dayDiff * modifier });\r\n dateEnd = add(currentEndDate, { days: dayDiff * modifier });\r\n }\r\n }\r\n return [dateStart, dateEnd];\r\n }\r\n\r\n public getPredefinedDateRanges(\r\n dateRangeDefinitions: Array<PeriodPickerDateRangeDefinition>,\r\n referenceDay: Date,\r\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6\r\n ): Array<PeriodPickerDateRange> {\r\n let predefinedDateRanges = new Array<PeriodPickerDateRange>();\r\n referenceDay = startOfDay(referenceDay);\r\n\r\n dateRangeDefinitions.forEach((definition) => {\r\n if (definition.type == 'fixed') {\r\n if (\r\n definition.dateFrom !== undefined &&\r\n definition.dateTo !== undefined\r\n ) {\r\n const fixedDateRange = new PeriodPickerDateRange(\r\n definition.name,\r\n definition.dateFrom,\r\n definition.dateTo\r\n );\r\n predefinedDateRanges.push(fixedDateRange);\r\n }\r\n } else if (definition.type == 'dynamic') {\r\n const dateRangeDefinition =\r\n definition.dynamicDateRangeDefinition;\r\n\r\n if (dateRangeDefinition) {\r\n let dateFrom: Date | null = null;\r\n let dateTo: Date | null = null;\r\n\r\n switch (dateRangeDefinition.dimension) {\r\n case 'd':\r\n dateFrom = addDays(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n );\r\n dateTo = addDays(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n );\r\n break;\r\n case 'w':\r\n dateFrom = startOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n ),\r\n { weekStartsOn: firstDayOfWeek }\r\n );\r\n dateTo = endOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n ),\r\n { weekStartsOn: firstDayOfWeek }\r\n );\r\n break;\r\n\r\n case 'm':\r\n dateFrom = startOfMonth(\r\n addMonths(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n dateTo = endOfMonth(\r\n addMonths(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n break;\r\n\r\n case 'y':\r\n dateFrom = startOfYear(\r\n addYears(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n dateTo = endOfYear(\r\n addYears(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n if (dateFrom != undefined && dateTo != undefined) {\r\n const dynamicRangeDefinition =\r\n new PeriodPickerDateRange(\r\n definition.name,\r\n dateFrom,\r\n startOfDay(dateTo)\r\n );\r\n predefinedDateRanges.push(dynamicRangeDefinition);\r\n }\r\n }\r\n }\r\n });\r\n return predefinedDateRanges;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DxCalendarComponent } from 'devextreme-angular/ui/calendar';\r\nimport { DxDateBoxComponent } from 'devextreme-angular/ui/date-box';\r\n\r\nimport {\r\n isSameDay,\r\n isSameYear,\r\n isSameMonth,\r\n startOfDay,\r\n startOfMonth,\r\n endOfMonth,\r\n isAfter,\r\n isBefore,\r\n add,\r\n} from 'date-fns';\r\n\r\nimport {\r\n faAngleLeft,\r\n faAngleRight,\r\n faCalendar,\r\n} from '@fortawesome/pro-regular-svg-icons';\r\n\r\nimport { faArrowRight } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport {\r\n PeriodPickerDateRange,\r\n PeriodPickerDateRangeDefinition,\r\n PeriodPickerTranslations,\r\n} from './date-picker.model';\r\nimport { SdsDatePickerService } from './sds-date-picker.service';\r\n\r\n@Component({\r\n selector: 'sds-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdsDatePickerComponent implements OnInit, OnChanges {\r\n // public interface\r\n @Input() selectionKind: 'period' | 'single' = 'period';\r\n\r\n @Input() dateRangeDefinitions: Array<PeriodPickerDateRangeDefinition> = [];\r\n\r\n // single date selector\r\n @Input() selectedDate: Date = new Date();\r\n @Output() public selectedDateChange = new EventEmitter();\r\n\r\n // period selector\r\n @Input() selectedDateStart: string | number | Date;\r\n @Output() selectedDateStartChange = new EventEmitter();\r\n\r\n @Input() selectedDateEnd: string | number | Date;\r\n @Output() selectedDateEndChange = new EventEmitter();\r\n @Output() periodChange = new EventEmitter();\r\n\r\n @Input() minDate?: Date;\r\n @Input() maxDate?: Date;\r\n\r\n @Input() locales?: string | Array<string>;\r\n @Input() disabled: boolean = false;\r\n @Input() validationError: string = '';\r\n @Input() isValid: boolean = true;\r\n \r\n @Input() disabledDates: Date[] = [];\r\n\r\n @Input() public applyText?: string = 'close';\r\n @Input() public cancelText?: string = 'close';\r\n\r\n @Input() public translations: PeriodPickerTranslations;\r\n\r\n @Input() public firstDayOfWeek: 0 | 1 | 2 | 3 | 4 | 5 | 6 = 1;\r\n\r\n @Input() public dateRangeDefinitionsWidth: string = '11rem';\r\n @Input() public showPreviousAndNextButtons: boolean = true;\r\n\r\n @Input() public width: string = '30rem';\r\n \r\n\r\n // public properties\r\n previousPeriodIcon = faAngleLeft;\r\n nextPeriodIcon = faAngleRight;\r\n calendarIcon = faCalendar;\r\n toIcon = faArrowRight;\r\n\r\n predefinedDateRanges: Array<PeriodPickerDateRange> = [];\r\n predefinedDateRangesGeneratedDate: Date | undefined = undefined;\r\n selectedDateRange: PeriodPickerDateRange;\r\n dateRanges: Array<PeriodPickerDateRange> = [];\r\n\r\n selectedDateRangeTextSegment1: string = '';\r\n selectedDateRangeTextSegment2: string = '';\r\n\r\n minDateDefault: Date;\r\n maxDateDefault: Date;\r\n\r\n selectedDateCalendar: string | number | Date = new Date();\r\n selectedDateInternal: string | number | Date = new Date();\r\n\r\n dateStartOld: string | number | Date = '';\r\n dateStart: string | number | Date = '';\r\n dateEndOld: string | number | Date = '';\r\n dateEnd: string | number | Date = '';\r\n\r\n showDatepicker: boolean;\r\n showPredefinedOptionsSelector: boolean = false;\r\n\r\n hidingConfirmedDate: boolean = false;\r\n\r\n isSettingNotPreprocessedDate: boolean = false;\r\n isSelectedPredefinedPeriod: boolean = false;\r\n selectedDateFocus: boolean = true;\r\n\r\n // private fields\r\n private customDateRange: PeriodPickerDateRange;\r\n private initCalendarValue: boolean = true;\r\n\r\n @ViewChild('singleDatePickerBox', { static: false })\r\n private singleDatePickerBox: DxDateBoxComponent | undefined = undefined;\r\n @ViewChild('selectedDateStartBox', { static: false })\r\n private selectedDateStartBox: DxDateBoxComponent | undefined = undefined;\r\n @ViewChild('calendar', { static: false }) private calendar:\r\n | DxCalendarComponent\r\n | undefined = undefined;\r\n\r\n // public methods\r\n constructor(\r\n private changeRef: ChangeDetectorRef,\r\n private datePickerService: SdsDatePickerService\r\n ) {\r\n this.dateRangeDefinitions = [];\r\n\r\n this.minDateDefault = new Date(1900, 1, 1);\r\n this.maxDateDefault = add(startOfDay(new Date()), { years: 50 });\r\n\r\n this.showDatepicker = false;\r\n\r\n this.translations = {\r\n cancel: 'Cancel',\r\n apply: 'Apply',\r\n custom: 'Custom',\r\n };\r\n\r\n this.customDateRange = new PeriodPickerDateRange(\r\n this.translations.custom,\r\n undefined,\r\n undefined\r\n );\r\n\r\n this.selectedDateRange = this.customDateRange;\r\n\r\n const singleDateSelectorDefaultDate = startOfDay(new Date());\r\n this.selectedDateInternal = singleDateSelectorDefaultDate;\r\n\r\n const periodSelectorDefaultStartDate = startOfMonth(new Date());\r\n this.selectedDateStart = periodSelectorDefaultStartDate;\r\n const periodSelectorDefaultEndDate = startOfDay(endOfMonth(new Date()));\r\n this.selectedDateEnd = periodSelectorDefaultEndDate;\r\n\r\n if (this.selectionKind == 'single') {\r\n this.setDateRangeText(\r\n singleDateSelectorDefaultDate,\r\n singleDateSelectorDefaultDate\r\n );\r\n this.matchDateRange(\r\n singleDateSelectorDefaultDate,\r\n singleDateSelectorDefaultDate\r\n );\r\n } else {\r\n this.setDateRangeText(\r\n periodSelectorDefaultStartDate,\r\n periodSelectorDefaultEndDate\r\n );\r\n this.matchDateRange(\r\n periodSelectorDefaultStartDate,\r\n periodSelectorDefaultEndDate\r\n );\r\n }\r\n\r\n // this.dateRangeTranslations = new DateRangeTranslations();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['dateRangeDefinitions']) {\r\n this.generateDateRanges(true);\r\n }\r\n\r\n if (changes['selectionKind']){\r\n \r\n if (this.selectionKind == 'single') {\r\n const date = new Date(this.selectedDateInternal);\r\n\r\n this.setDateRangeText(date, date);\r\n this.matchDateRange(date, date);\r\n } else {\r\n const date1 = new Date(this.selectedDateStart);\r\n const date2 = new Date(this.selectedDateEnd);\r\n\r\n this.setDateRangeText(date1, date2);\r\n this.matchDateRange(date1, date2);\r\n }\r\n\r\n }\r\n\r\n if (changes['translations']) {\r\n this.updateCustomText();\r\n }\r\n\r\n if (changes['selectedDateStart'] || changes['selectedDateEnd']) {\r\n this.dateStartOld = this.selectedDateStart;\r\n this.dateEndOld = this.selectedDateEnd;\r\n }\r\n\r\n if (changes['selectedDate']) {\r\n const value = new Date(changes['selectedDate'].currentValue);\r\n\r\n this.selectedDateInternal = startOfDay(value);\r\n\r\n if (this.selectionKind == 'single') {\r\n this.dateStart = this.selectedDateInternal;\r\n this.dateEnd = this.selectedDateInternal;\r\n\r\n this.setDateRangeText(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal\r\n );\r\n this.matchDateRange(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal\r\n );\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n if (changes['selectedDateStart']) {\r\n const value = changes['selectedDateStart'].currentValue;\r\n const selectedValue = value instanceof Date ? value : new Date();\r\n if (this.selectionKind == 'period') {\r\n if (this.isSettingNotPreprocessedDate && this.showDatepicker) {\r\n this.dateStart = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n this.isSettingNotPreprocessedDate = false;\r\n } else if (\r\n !this.isSelectedPredefinedPeriod &&\r\n this.showDatepicker\r\n ) {\r\n if (this.selectedDateStartFocus) {\r\n this.dateStart = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n if (\r\n this.dateEnd instanceof Date &&\r\n (isSameDay(selectedValue, this.dateEnd) ||\r\n isAfter(selectedValue, this.dateEnd))\r\n ) {\r\n this.dateEnd = selectedValue;\r\n }\r\n }\r\n } else {\r\n this.dateStart = selectedValue;\r\n this.selectedDateFocus = false;\r\n }\r\n\r\n this.calendar?.instance?.repaint();\r\n this.removeDxDefaultCalendarFocus();\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n this.matchDateRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n }\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n if (changes['selectedDateEnd']) {\r\n const value = changes['selectedDateEnd'].currentValue;\r\n const selectedValue = value instanceof Date ? value : new Date();\r\n if (this.selectionKind == 'period') {\r\n if (!this.isSelectedPredefinedPeriod) {\r\n if (this.selectedDateEndFocus) {\r\n this.dateEnd = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n\r\n if (\r\n this.dateStart instanceof Date &&\r\n (isSameDay(selectedValue, this.dateStart) ||\r\n isAfter(this.dateStart, selectedValue))\r\n ) {\r\n this.dateStart = selectedValue;\r\n }\r\n }\r\n } else {\r\n this.dateEnd = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n }\r\n\r\n this.removeDxDefaultCalendarFocus();\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n this.matchDateRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (changes['firstDayOfWeek']) {\r\n this.generateDateRanges(true);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if (this.showDatepicker) {\r\n if (event.code === 'Escape') {\r\n event.stopPropagation();\r\n this.closeDatepickerPopup(false);\r\n } else if (event.code === 'Enter' || event.code === 'NumpadEnter') {\r\n event.stopPropagation();\r\n if (!this.disabled) {\r\n this.applyPeriodPicker();\r\n }\r\n } \r\n }\r\n } \r\n\r\n public randomIdReference: number = Math.floor(\r\n Math.random() * Number.MAX_SAFE_INTEGER\r\n );\r\n\r\n public setDateRangeDefinitions(definitions: Array<PeriodPickerDateRangeDefinition>): void {\r\n this.dateRangeDefinitions = definitions;\r\n this.generateDateRanges(true);\r\n }\r\n\r\n public setTranslations(translations: PeriodPickerTranslations){\r\n this.translations = translations;\r\n this.updateCustomText();\r\n }\r\n\r\n public get selectedDateStartFocus(): boolean {\r\n return this.selectedDateFocus;\r\n }\r\n public get selectedDateEndFocus(): boolean {\r\n return !this.selectedDateFocus;\r\n }\r\n\r\n public get isMinimumLimit() {\r\n if (\r\n this.minDate instanceof Date &&\r\n this.selectedDateInternal instanceof Date\r\n ) {\r\n return (\r\n isSameDay(this.selectedDateInternal, this.minDate) ||\r\n isBefore(this.selectedDateInternal, this.minDate)\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n public get isMaximumLimit() {\r\n if (\r\n this.maxDate instanceof Date &&\r\n this.selectedDateInternal instanceof Date\r\n ) {\r\n return (\r\n isSameDay(this.selectedDateInternal, this.maxDate) ||\r\n isAfter(this.selectedDateInternal, this.maxDate)\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n public onDateChange(event: any) {\r\n let selectedDateFromEvent = new Date(event.value);\r\n\r\n if (this.selectionKind == 'period') {\r\n if (this.selectedDateStartFocus) {\r\n this.selectedDateStart = selectedDateFromEvent;\r\n\r\n if (!this.initCalendarValue) {\r\n this.selectedDateFocus = false;\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n }\r\n } else if (this.selectedDateEndFocus) {\r\n if (\r\n isAfter(selectedDateFromEvent, this.selectedDateEnd as Date)\r\n ) {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n } else if (\r\n isBefore(\r\n selectedDateFromEvent,\r\n this.selectedDateStart as Date\r\n )\r\n ) {\r\n this.selectedDateFocus = true;\r\n this.selectedDateStart = selectedDateFromEvent;\r\n this.selectedDateFocus = false;\r\n } else if (\r\n isSameDay(\r\n selectedDateFromEvent,\r\n this.selectedDateEnd as Date\r\n )\r\n ) {\r\n this.selectedDateFocus = true;\r\n this.selectedDateStart = selectedDateFromEvent;\r\n this.selectedDateFocus = false;\r\n } else if (\r\n isSameDay(\r\n selectedDateFromEvent,\r\n this.selectedDateStart as Date\r\n )\r\n ) {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n } else {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n }\r\n }\r\n\r\n this.setSelectedDate(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n false\r\n );\r\n }\r\n }\r\n\r\n public onStartDateFocus() {\r\n this.initCalendarValue = true;\r\n this.selectedDateFocus = true;\r\n\r\n if (this.selectedDateStart) {\r\n this.selectedDateInternal = new Date(this.selectedDateStart);\r\n this.selectedDateCalendar = new Date(this.selectedDateStart);\r\n }\r\n\r\n setTimeout(() => {\r\n this.initCalendarValue = false;\r\n });\r\n }\r\n\r\n public onEndDateFocus() {\r\n this.selectedDateFocus = false;\r\n\r\n if (this.selectedDateEnd) {\r\n this.selectedDateInternal = new Date(this.selectedDateEnd);\r\n this.selectedDateCalendar = new Date(this.selectedDateEnd);\r\n }\r\n }\r\n\r\n public applyPeriodPicker() {\r\n this.hidingConfirmedDate = true;\r\n this.showDatepicker = false;\r\n this.setSelectedDate(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n true\r\n );\r\n }\r\n\r\n public openDatepickerPopup() {\r\n this.showDatepicker = true;\r\n\r\n if (this.selectionKind == 'single') {\r\n setTimeout(() => {\r\n this.singleDatePickerBox?.instance.focus();\r\n });\r\n } else {\r\n this.dateStartOld = this.selectedDateStart;\r\n this.dateEndOld = this.selectedDateEnd;\r\n this.isSettingNotPreprocessedDate = true;\r\n setTimeout(() => {\r\n this.selectedDateStartBox?.instance.focus();\r\n this.onStartDateFocus();\r\n });\r\n }\r\n }\r\n\r\n public closeDatepickerPopup(emitChange = true) {\r\n if (this.showDatepicker) {\r\n this.showDatepicker = false;\r\n if (this.selectionKind == 'single') {\r\n this.setSelectedDate(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal,\r\n emitChange\r\n );\r\n } else {\r\n if (!this.hidingConfirmedDate) {\r\n this.setSelectedDate(this.dateStartOld, this.dateEndOld, true);\r\n }\r\n this.hidingConfirmedDate = false;\r\n }\r\n }\r\n }\r\n\r\n public setSelectedDate(\r\n dateStart: string | number | Date,\r\n dateEnd: string | number | Date,\r\n emitChange = true\r\n ) {\r\n this.selectedDateStart = dateStart;\r\n this.selectedDateEnd = dateEnd;\r\n\r\n if (this.selectionKind == 'single') {\r\n this.selectedDateInternal = dateStart;\r\n }\r\n\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(this.selectedDateStart, this.selectedDateEnd);\r\n this.matchDateRange(this.selectedDateStart, this.selectedDateEnd);\r\n }\r\n\r\n this.isSelectedPredefinedPeriod = false;\r\n\r\n if (emitChange) {\r\n if (this.selectionKind == 'single') {\r\n this.selectedDate = new Date(this.selectedDateInternal);\r\n this.selectedDateChange.emit(this.selectedDateInternal);\r\n } else {\r\n const dateStartNew = new Date(this.selectedDateStart);\r\n const dateEndNew = new Date(this.selectedDateEnd);\r\n\r\n const startDateChanged =\r\n (this.dateStartOld instanceof Date && !isSameDay(this.dateStartOld, dateStartNew)) ||\r\n (typeof this.dateStartOld === 'string' && this.dateStartOld === '');\r\n const endDateChanged =\r\n (this.dateEndOld instanceof Date && !isSameDay(this.dateEndOld, dateEndNew)) || \r\n (typeof this.dateEndOld === 'string' && this.dateEndOld === '');\r\n\r\n if (startDateChanged) {\r\n this.dateStartOld = new Date(this.selectedDateStart);\r\n this.selectedDateStartChange.emit(this.selectedDateStart);\r\n }\r\n\r\n if (endDateChanged) {\r\n this.dateEndOld = new Date(this.selectedDateEnd);\r\n this.selectedDateEndChange.emit(this.selectedDateEnd);\r\n }\r\n\r\n if (startDateChanged || endDateChanged) {\r\n this.periodChange.emit([\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n ]);\r\n }\r\n }\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n public goToNextDate() {\r\n if (this.selectionKind == 'single') {\r\n this.setNextPreviousDay(true);\r\n } else {\r\n this.setNextPreviousRange(true);\r\n }\r\n }\r\n\r\n public goToPreviousDate() {\r\n if (this.selectionKind == 'single') {\r\n this.setNextPreviousDay(false);\r\n } else {\r\n this.setNextPreviousRange(false);\r\n }\r\n }\r\n\r\n public setNextPreviousDay(setNext: any) {\r\n this.isSelectedPredefinedPeriod = true;\r\n let newDate = setNext\r\n ? add(this.selectedDateInternal as Date, { days: 1 })\r\n : add(this.selectedDateInternal as Date, { days: -1 });\r\n\r\n this.selectedDateInternal = new Date(newDate);\r\n this.setSelectedDate(newDate, newDate);\r\n }\r\n\r\n public setNextPreviousRange(setNext: boolean) {\r\n this.isSelectedPredefinedPeriod = true;\r\n if (\r\n !(this.selectedDateStart instanceof Date) ||\r\n !(this.selectedDateEnd instanceof Date)\r\n ) {\r\n return;\r\n }\r\n\r\n const range = this.datePickerService.getRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n setNext ? 'next' : 'previous'\r\n );\r\n this.setSelectedDate(range[0], range[1]);\r\n }\r\n\r\n public getCellCssClass(date: any) {\r\n const calendarDate = new Date(date);\r\n let css = '';\r\n\r\n if (this.selectionKind == 'period') {\r\n const selectedDateStartAsDate = new Date(this.selectedDateStart);\r\n const selectedDateEndAsDate = new Date(this.selectedDateEnd);\r\n\r\n if (\r\n isAfter(calendarDate, startOfDay(selectedDateStartAsDate)) &&\r\n isBefore(calendarDate, startOfDay(selectedDateEndAsDate)) &&\r\n !this.disabledDates.some((day) => isSameDay(calendarDate, day))\r\n ) {\r\n css += ' bg-secondary text-dark rounded-0';\r\n } else {\r\n if (isSameDay(calendarDate, selectedDateStartAsDate)) {\r\n css += ' bg-primary text-white rounded-left';\r\n }\r\n if (isSameDay(calendarDate, selectedDateEndAsDate)) {\r\n css += ' bg-primary text-white rounded-right';\r\n }\r\n }\r\n }\r\n return css;\r\n }\r\n\r\n private updateCustomText(): void {\r\n this.customDateRange.name = this.translations?.custom\r\n ? this.translations.custom\r\n : ''; \r\n }\r\n\r\n private removeDxDefaultCalendarFocus() {\r\n const element = document.querySelector(\r\n '#datepickercomponent .dx-calendar-selected-date'\r\n );\r\n if (\r\n element &&\r\n element?.classList?.contains('dx-calendar-selected-date')\r\n ) {\r\n element?.classList?.remove('dx-calendar-selected-date');\r\n }\r\n }\r\n\r\n toggleDateRangeSelectorVisibility() {\r\n if (!this.showPredefinedOptionsSelector) {\r\n this.generateDateRanges();\r\n }\r\n\r\n this.showPredefinedOptionsSelector =\r\n !this.showPredefinedOptionsSelector;\r\n }\r\n\r\n changDateRange(range: PeriodPickerDateRange) {\r\n this.showPredefinedOptionsSelector = false;\r\n this.selectedDateRange = range;\r\n\r\n if (range === this.customDateRange) {\r\n this.openDatepickerPopup();\r\n } else {\r\n this.dateStart = range.dateFrom\r\n ? range.dateFrom\r\n : startOfDay(new Date());\r\n this.dateEnd = range.dateTo ? range.dateTo : startOfDay(new Date());\r\n this.setSelectedDate(this.dateStart, this.dateEnd, true);\r\n }\r\n }\r\n\r\n matchDateRange(dateFrom?: Date, dateTo?: Date): void {\r\n if (!dateFrom || !dateTo) {\r\n this.selectedDateRange = this.customDateRange;\r\n return;\r\n }\r\n\r\n this.generateDateRanges();\r\n\r\n const dateRange = this.predefinedDateRanges.filter(\r\n (x) =>\r\n isSameDay(x.dateFrom as Date, dateFrom) &&\r\n isSameDay(x.dateTo as Date, dateTo)\r\n );\r\n if (dateRange.length) {\r\n this.selectedDateRange = dateRange[0];\r\n } else {\r\n this.selectedDateRange = this.customDateRange;\r\n }\r\n }\r\n\r\n private setDateRangeText(dateFrom?: Date, dateTo?: Date): void {\r\n const today = new Date();\r\n this.selectedDateRangeTextSegment1 = '';\r\n this.selectedDateRangeTextSegment2 = '';\r\n\r\n if (!(dateFrom instanceof Date) || !(dateTo instanceof Date)) {\r\n return;\r\n }\r\n\r\n // full month\r\n if (\r\n isSameDay(dateFrom, startOfMonth(dateFrom)) &&\r\n isSameDay(dateTo, endOfMonth(dateTo)) &&\r\n isSameMonth(dateFrom, dateTo)\r\n ) {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n 'month'\r\n );\r\n // one day\r\n } else if (isSameDay(dateFrom, dateTo)) {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n 'day-long'\r\n );\r\n } else {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n isSameYear(dateFrom, today) ? 'day-short' : 'day'\r\n );\r\n this.selectedDateRangeTextSegment2 = this.formatDate(\r\n dateTo,\r\n isSameYear(dateTo, today) ? 'day-short' : 'day'\r\n );\r\n }\r\n }\r\n\r\n formatDate(\r\n date: Date,\r\n type?: 'month' | 'day' | 'day-long' | 'day-short' | undefined\r\n ): string {\r\n switch (type) {\r\n case 'month':\r\n return date.toLocaleDateString(this.locales, {\r\n month: 'long',\r\n year: 'numeric',\r\n day: undefined,\r\n });\r\n case 'day-long':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n weekday: 'long',\r\n });\r\n case 'day-short':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'short',\r\n });\r\n case 'day':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'short',\r\n year: 'numeric',\r\n });\r\n default:\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n });\r\n }\r\n }\r\n\r\n generateDateRanges(force?: boolean) {\r\n const today = startOfDay(new Date());\r\n\r\n if (\r\n force ||\r\n !this.predefinedDateRangesGeneratedDate ||\r\n !isSameDay(this.predefinedDateRangesGeneratedDate, today)\r\n ) {\r\n this.predefinedDateRangesGeneratedDate = today;\r\n\r\n this.predefinedDateRanges =\r\n this.datePickerService.getPredefinedDateRanges(\r\n this.dateRangeDefinitions,\r\n today,\r\n this.firstDayOfWeek\r\n );\r\n\r\n this.dateRanges = [...this.predefinedDateRanges];\r\n this.dateRanges.push(this.customDateRange);\r\n }\r\n }\r\n\r\n // private methods\r\n}\r\n","<!-- <div id=\"datepickerbuttons\"> -->\r\n <div \r\n class=\"datepicker d-flex bg-white\"\r\n role=\"group\"\r\n aria-label=\"Date picker\"\r\n [style.width]=\"width\"\r\n >\r\n <!-- <div\r\n class=\"btn-group\"\r\n role=\"group\"\r\n > -->\r\n <button\r\n *ngIf=\"dateRangeDefinitions && dateRangeDefinitions.length > 0\"\r\n id=\"pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n class=\"\r\n btn btn-white\r\n border\r\n rounded-left\r\n border-right \r\n p-0\"\r\n [disabled]=\"disabled\"\r\n [style.width]=\"dateRangeDefinitionsWidth\"\r\n (click)=\"toggleDateRangeSelectorVisibility()\"\r\n >\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"pl-2 ml-1 mr-1 date-range-text text-truncate\">\r\n {{selectedDateRange.name}}\r\n </div>\r\n <button class=\"btn btn-light date-range-dropdown-button\">\r\n <span class=\"dropdown-toggle\"></span>\r\n </button>\r\n\r\n </div>\r\n \r\n </button>\r\n\r\n <dx-popover\r\n *ngIf=\"dateRangeDefinitions && dateRangeDefinitions.length > 0\"\r\n target=\"#pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showPredefinedOptionsSelector\"\r\n [wrapperAttr]=\"{ class: 'sds-datepicker-ranges-popover' }\"\r\n [minWidth]=\"dateRangeDefinitionsWidth\"\r\n \r\n >\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <div *ngFor=\"let range of dateRanges\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"range === selectedDateRange\"\r\n (click)=\"changDateRange(range)\"\r\n > {{range.name}}\r\n </button>\r\n </div>\r\n </div>\r\n </dx-popover>\r\n <!-- </div> -->\r\n\r\n <button\r\n *ngIf=\"showPreviousAndNextButtons\"\r\n class=\"btn btn-white border border-right-0 pr-2\"\r\n [class.rounded-left] = \"!dateRangeDefinitions || dateRangeDefinitions.length === 0\"\r\n [class.border-left-0] = \"dateRangeDefinitions.length > 0\"\r\n type=\"button\"\r\n [disabled]=\"isMinimumLimit || disabled\"\r\n (click)=\"goToPreviousDate()\"\r\n >\r\n <fa-icon [icon]=\"previousPeriodIcon\"></fa-icon>\r\n\r\n </button>\r\n\r\n <button\r\n id=\"pickerDropdown{{ randomIdReference }}\"\r\n class=\"btn btn-white border-top border-bottom text-truncate px-0 selected-period\"\r\n [class.rounded-left] = \"(!dateRangeDefinitions || dateRangeDefinitions.length === 0) && !showPreviousAndNextButtons\"\r\n [class.border-left] = \"(!dateRangeDefinitions || dateRangeDefinitions.length === 0) && !showPreviousAndNextButtons\"\r\n [class.rounded-right] = \"!showPreviousAndNextButtons\"\r\n [class.border-right] = \"!showPreviousAndNextButtons\"\r\n [disabled]=\"disabled\"\r\n type=\"button\"\r\n (click)=\"showDatepicker ? closeDatepickerPopup() : openDatepickerPopup()\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <!-- <div class=\"mx-1\">\r\n <fa-icon [icon]=\"calendarIcon\" size=\"sm\"></fa-icon>\r\n </div> -->\r\n <div class=\"mx-1 text-truncate\">\r\n <span>{{selectedDateRangeTextSegment1}}</span>\r\n <fa-icon\r\n *ngIf=\"selectedDateRangeTextSegment2\"\r\n class=\"mx-2\"\r\n [icon]=\"toIcon\"\r\n size=\"sm\"\r\n ></fa-icon>\r\n <span>{{selectedDateRangeTextSegment2}}</span>\r\n </div>\r\n </div>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"showPreviousAndNextButtons\"\r\n class=\"btn btn-white border rounded-right border-left-0 pl-2\"\r\n type=\"button\"\r\n [disabled]=\"isMaximumLimit || disabled\"\r\n (click)=\"goToNextDate()\"\r\n >\r\n <fa-icon [icon]=\"nextPeriodIcon\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n <dx-popover\r\n target=\"#pickerDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showDatepicker\"\r\n class=\"m-0 p-0\"\r\n [wrapperAttr]=\"{ class: 'sds-datepicker-popover' }\"\r\n >\r\n <dxo-animation>\r\n <dxo-show\r\n type=\"pop\"\r\n [from]=\"{ scale: 0.9 }\"\r\n [to]=\"{ scale: 1 }\"\r\n ></dxo-show>\r\n <dxo-hide\r\n type=\"fade\"\r\n [from]=\"1\"\r\n [to]=\"0\"\r\n ></dxo-hide>\r\n </dxo-animation>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <div id=\"datepickercomponent\">\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n id=\"date-inputs\"\r\n class=\"d-flex flex-wrap justify-content-center align-items-center px-4 py-3\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #selectedDateStartBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input\"\r\n [class.activeInput]=\"selectedDateFocus\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateStart\"\r\n (onFocusIn)=\"onStartDateFocus()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center px-2\">\r\n <fa-icon [icon]=\"toIcon\"></fa-icon>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #selectedDateEndBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input\"\r\n [class.activeInput]=\"!selectedDateFocus\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateEnd\"\r\n (onFocusIn)=\"onEndDateFocus()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bg-white px-4 py-3\">\r\n <div\r\n *ngIf=\"this.selectionKind == 'single'\"\r\n id=\"date-inputs\"\r\n class=\"d-flex flex-wrap justify-content-center align-items-center p-2 mb-3\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #singleDatePickerBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input datepicker-input-large\"\r\n [class.activeInput]=\"true\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateInternal\"\r\n (onValueChanged)=\"closeDatepickerPopup()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-calendar\r\n #calendar\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [disabledDates]=\"disabledDates\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"this.selectionKind == 'period' ? selectedDateCalendar : selectedDateInternal\"\r\n (onValueChanged)=\"onDateChange($event)\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n >\r\n <div\r\n *dxTemplate=\"let cellData of 'cell'\"\r\n [class]=\"'h-100 pt-1' + getCellCssClass(cellData.date)\"\r\n >\r\n {{ cellData.text }}\r\n </div>\r\n </dx-calendar>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-end align-items-center px-4 py-3\"\r\n >\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"disabled\"\r\n (click)=\"closeDatepickerPopup()\"\r\n type=\"button\"\r\n >\r\n {{ translations.cancel}}\r\n </button>\r\n <button\r\n class=\"btn btn-primary ml-1\"\r\n [disabled]=\"disabled\"\r\n (click)=\"applyPeriodPicker()\"\r\n type=\"button\"\r\n >\r\n {{ translations.apply}}\r\n </button>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popover>\r\n<!-- </div> -->","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DxDateBoxModule, DxDropDownBoxModule, DxDropDownButtonModule, DxListModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { DxPopoverModule } from 'devextreme-angular';\r\nimport { DxScrollViewModule } from 'devextreme-angular';\r\nimport { DxCalendarModule } from 'devextreme-angular';\r\n\r\n// import { DxDateBoxModule } from 'devextreme-angular/ui/date-box';\r\nimport { SdsDatePickerComponent } from './date-picker.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\nconst components = [\r\n SdsDatePickerComponent\r\n]\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n\r\n FontAwesomeModule,\r\n\r\n DxDateBoxModule,\r\n DxPopoverModule,\r\n DxScrollViewModule,\r\n DxCalendarModule,\r\n\r\n DxDropDownButtonModule,\r\n DxDropDownBoxModule,\r\n DxSelectBoxModule,\r\n DxListModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsDatePickerModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsDatePickerService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spicainternational-ngx-sds-components-src-lib-date-picker.mjs","sources":["../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.model.ts","../../../projects/ngx-sds-components/src/lib/date-picker/sds-date-picker.service.ts","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.component.ts","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.component.html","../../../projects/ngx-sds-components/src/lib/date-picker/date-picker.module.ts","../../../projects/ngx-sds-components/src/lib/date-picker/spicainternational-ngx-sds-components-src-lib-date-picker.ts"],"sourcesContent":["export class DateRangeTranslations {\r\n custom: string = '';\r\n}\r\n\r\nexport class PeriodPickerDateRangeDefinition {\r\n name: string = '';\r\n type: 'dynamic' | 'fixed' = 'fixed';\r\n\r\n dynamicDateRangeDefinition?: PeriodPickerDateRangeDynamicDefinition;\r\n\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n\r\n constructor(\r\n name: string,\r\n type: 'dynamic' | 'fixed' = 'fixed',\r\n dynamicDateRangeDefinition?: PeriodPickerDateRangeDynamicDefinition,\r\n dateFrom?: Date,\r\n dateTo?: Date\r\n ) {\r\n this.name = name;\r\n this.type = type;\r\n this.dynamicDateRangeDefinition = dynamicDateRangeDefinition;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDateRangeDynamicDefinition {\r\n dimension: 'd' | 'w' | 'm' | 'y';\r\n modifier: number;\r\n\r\n constructor(dimension: 'd' | 'w' | 'm' | 'y', modifier: number) {\r\n this.dimension = dimension;\r\n this.modifier = modifier;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDateRange {\r\n name: string;\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n\r\n constructor(name: string, dateFrom?: Date, dateTo?: Date) {\r\n this.name = name;\r\n this.dateFrom = dateFrom;\r\n this.dateTo = dateTo;\r\n }\r\n}\r\n\r\nexport class PeriodPickerDynamicDateRangeDefinitionGenerator {\r\n\r\n static generateMonthlyRanges(currentMonthText: string, previousMonthText: string, nextMonthText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentMonthText, 'dynamic', {dimension: 'm', modifier: 0}))\r\n }\r\n\r\n if (nextMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextMonthText, 'dynamic', {dimension: 'm', modifier: 1}))\r\n }\r\n\r\n if (previousMonthText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousMonthText, 'dynamic', {dimension: 'm', modifier: -1}))\r\n }\r\n\r\n return ranges;\r\n }\r\n\r\n static generateWeeklyRanges(currentWeekText: string, previousWeekText: string, nextWeekText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentWeekText, 'dynamic', {dimension: 'w', modifier: 0}))\r\n }\r\n\r\n if (nextWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextWeekText, 'dynamic', {dimension: 'w', modifier: 1}))\r\n }\r\n\r\n if (previousWeekText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousWeekText, 'dynamic', {dimension: 'w', modifier: -1}))\r\n }\r\n \r\n return ranges;\r\n } \r\n\r\n static generateDailyRanges(currentDayText: string, previousDayText: string, nextDayText: string): PeriodPickerDateRangeDefinition[] {\r\n const ranges: PeriodPickerDateRangeDefinition[] = [];\r\n\r\n if (currentDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(currentDayText, 'dynamic', {dimension: 'd', modifier: 0}))\r\n }\r\n\r\n if (nextDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(nextDayText, 'dynamic', {dimension: 'd', modifier: 1}))\r\n }\r\n\r\n if (previousDayText) {\r\n ranges.push(new PeriodPickerDateRangeDefinition(previousDayText, 'dynamic', {dimension: 'd', modifier: -1}))\r\n }\r\n \r\n return ranges;\r\n } \r\n\r\n}\r\n\r\nexport interface PeriodPickerTranslations {\r\n cancel: string;\r\n apply: string;\r\n custom: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n add,\r\n addDays,\r\n addMonths,\r\n addWeeks,\r\n addYears,\r\n differenceInDays,\r\n differenceInMonths,\r\n endOfMonth,\r\n endOfWeek,\r\n endOfYear,\r\n isSameDay,\r\n isSameMonth,\r\n startOfDay,\r\n startOfMonth,\r\n startOfWeek,\r\n startOfYear,\r\n} from 'date-fns';\r\nimport {\r\n PeriodPickerDateRange,\r\n PeriodPickerDateRangeDefinition,\r\n} from './date-picker.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdsDatePickerService {\r\n constructor() {}\r\n\r\n public getRange(\r\n currentStartDate: Date,\r\n currentEndDate: Date,\r\n direction: 'previous' | 'next'\r\n ): [Date, Date] {\r\n const modifier = direction == 'next' ? 1 : -1;\r\n\r\n let dateStart, dateEnd;\r\n if (\r\n isSameDay(currentStartDate, startOfMonth(currentStartDate)) &&\r\n isSameDay(currentEndDate, endOfMonth(currentEndDate)) &&\r\n isSameMonth(currentStartDate, currentEndDate)\r\n ) {\r\n // Month range.\r\n dateStart = add(currentStartDate, { months: modifier });\r\n dateEnd = startOfDay(\r\n endOfMonth(add(currentEndDate, { months: modifier }))\r\n );\r\n } else {\r\n // Custom range in months\r\n if (\r\n isSameDay(currentStartDate, startOfMonth(currentStartDate)) &&\r\n isSameDay(currentEndDate, endOfMonth(currentEndDate))\r\n ) {\r\n const monthsDiff =\r\n differenceInMonths(currentEndDate, currentStartDate) + 1;\r\n dateStart = add(currentStartDate, {\r\n months: monthsDiff * modifier,\r\n });\r\n dateEnd = startOfDay(\r\n endOfMonth(\r\n add(currentEndDate, { months: monthsDiff * modifier })\r\n )\r\n );\r\n } else {\r\n // Custom range in days\r\n const dayDiff =\r\n differenceInDays(currentEndDate, currentStartDate) + 1;\r\n dateStart = add(currentStartDate, { days: dayDiff * modifier });\r\n dateEnd = add(currentEndDate, { days: dayDiff * modifier });\r\n }\r\n }\r\n return [dateStart, dateEnd];\r\n }\r\n\r\n public getPredefinedDateRanges(\r\n dateRangeDefinitions: Array<PeriodPickerDateRangeDefinition>,\r\n referenceDay: Date,\r\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6\r\n ): Array<PeriodPickerDateRange> {\r\n let predefinedDateRanges = new Array<PeriodPickerDateRange>();\r\n referenceDay = startOfDay(referenceDay);\r\n\r\n dateRangeDefinitions.forEach((definition) => {\r\n if (definition.type == 'fixed') {\r\n if (\r\n definition.dateFrom !== undefined &&\r\n definition.dateTo !== undefined\r\n ) {\r\n const fixedDateRange = new PeriodPickerDateRange(\r\n definition.name,\r\n definition.dateFrom,\r\n definition.dateTo\r\n );\r\n predefinedDateRanges.push(fixedDateRange);\r\n }\r\n } else if (definition.type == 'dynamic') {\r\n const dateRangeDefinition =\r\n definition.dynamicDateRangeDefinition;\r\n\r\n if (dateRangeDefinition) {\r\n let dateFrom: Date | null = null;\r\n let dateTo: Date | null = null;\r\n\r\n switch (dateRangeDefinition.dimension) {\r\n case 'd':\r\n dateFrom = addDays(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n );\r\n dateTo = addDays(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n );\r\n break;\r\n case 'w':\r\n dateFrom = startOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n ),\r\n { weekStartsOn: firstDayOfWeek }\r\n );\r\n dateTo = endOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n ),\r\n { weekStartsOn: firstDayOfWeek }\r\n );\r\n break;\r\n\r\n case 'm':\r\n dateFrom = startOfMonth(\r\n addMonths(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n dateTo = endOfMonth(\r\n addMonths(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n break;\r\n\r\n case 'y':\r\n dateFrom = startOfYear(\r\n addYears(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n dateTo = endOfYear(\r\n addYears(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n if (dateFrom != undefined && dateTo != undefined) {\r\n const dynamicRangeDefinition =\r\n new PeriodPickerDateRange(\r\n definition.name,\r\n dateFrom,\r\n startOfDay(dateTo)\r\n );\r\n predefinedDateRanges.push(dynamicRangeDefinition);\r\n }\r\n }\r\n }\r\n });\r\n return predefinedDateRanges;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DxCalendarComponent } from 'devextreme-angular/ui/calendar';\r\nimport { DxDateBoxComponent } from 'devextreme-angular/ui/date-box';\r\n\r\nimport {\r\n isSameDay,\r\n isSameYear,\r\n isSameMonth,\r\n startOfDay,\r\n startOfMonth,\r\n endOfMonth,\r\n isAfter,\r\n isBefore,\r\n add,\r\n} from 'date-fns';\r\n\r\nimport {\r\n faAngleLeft,\r\n faAngleRight,\r\n faCalendar,\r\n} from '@fortawesome/pro-regular-svg-icons';\r\n\r\nimport { faArrowRight } from '@fortawesome/pro-light-svg-icons';\r\n\r\nimport {\r\n PeriodPickerDateRange,\r\n PeriodPickerDateRangeDefinition,\r\n PeriodPickerTranslations,\r\n} from './date-picker.model';\r\nimport { SdsDatePickerService } from './sds-date-picker.service';\r\n\r\n@Component({\r\n selector: 'sds-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdsDatePickerComponent implements OnInit, OnChanges {\r\n // public interface\r\n @Input() selectionKind: 'period' | 'single' = 'period';\r\n\r\n @Input() dateRangeDefinitions: Array<PeriodPickerDateRangeDefinition> = [];\r\n\r\n // single date selector\r\n @Input() selectedDate: Date = new Date();\r\n @Output() public selectedDateChange = new EventEmitter();\r\n\r\n // period selector\r\n @Input() selectedDateStart: string | number | Date;\r\n @Output() selectedDateStartChange = new EventEmitter();\r\n\r\n @Input() selectedDateEnd: string | number | Date;\r\n @Output() selectedDateEndChange = new EventEmitter();\r\n @Output() periodChange = new EventEmitter();\r\n\r\n @Input() minDate?: Date;\r\n @Input() maxDate?: Date;\r\n\r\n @Input() locales?: string | Array<string>;\r\n @Input() disabled: boolean = false;\r\n @Input() validationError: string = '';\r\n @Input() isValid: boolean = true;\r\n \r\n @Input() disabledDates: Date[] = [];\r\n\r\n @Input() public applyText?: string = 'close';\r\n @Input() public cancelText?: string = 'close';\r\n\r\n @Input() public translations: PeriodPickerTranslations;\r\n\r\n @Input() public firstDayOfWeek: 0 | 1 | 2 | 3 | 4 | 5 | 6 = 1;\r\n\r\n @Input() public dateRangeDefinitionsWidth: string = '11rem';\r\n @Input() public showPreviousAndNextButtons: boolean = true;\r\n\r\n @Input() public width: string = '30rem';\r\n \r\n\r\n // public properties\r\n previousPeriodIcon = faAngleLeft;\r\n nextPeriodIcon = faAngleRight;\r\n calendarIcon = faCalendar;\r\n toIcon = faArrowRight;\r\n\r\n predefinedDateRanges: Array<PeriodPickerDateRange> = [];\r\n predefinedDateRangesGeneratedDate: Date | undefined = undefined;\r\n selectedDateRange: PeriodPickerDateRange;\r\n dateRanges: Array<PeriodPickerDateRange> = [];\r\n\r\n selectedDateRangeTextSegment1: string = '';\r\n selectedDateRangeTextSegment2: string = '';\r\n\r\n minDateDefault: Date;\r\n maxDateDefault: Date;\r\n\r\n selectedDateCalendar: string | number | Date = new Date();\r\n selectedDateInternal: string | number | Date = new Date();\r\n\r\n dateStartOld: string | number | Date = '';\r\n dateStart: string | number | Date = '';\r\n dateEndOld: string | number | Date = '';\r\n dateEnd: string | number | Date = '';\r\n\r\n showDatepicker: boolean;\r\n showPredefinedOptionsSelector: boolean = false;\r\n\r\n hidingConfirmedDate: boolean = false;\r\n\r\n isSettingNotPreprocessedDate: boolean = false;\r\n isSelectedPredefinedPeriod: boolean = false;\r\n selectedDateFocus: boolean = true;\r\n\r\n // private fields\r\n private customDateRange: PeriodPickerDateRange;\r\n private initCalendarValue: boolean = true;\r\n\r\n @ViewChild('singleDatePickerBox', { static: false })\r\n private singleDatePickerBox: DxDateBoxComponent | undefined = undefined;\r\n @ViewChild('selectedDateStartBox', { static: false })\r\n private selectedDateStartBox: DxDateBoxComponent | undefined = undefined;\r\n @ViewChild('calendar', { static: false }) private calendar:\r\n | DxCalendarComponent\r\n | undefined = undefined;\r\n\r\n // public methods\r\n constructor(\r\n private changeRef: ChangeDetectorRef,\r\n private datePickerService: SdsDatePickerService\r\n ) {\r\n this.dateRangeDefinitions = [];\r\n\r\n this.minDateDefault = new Date(1900, 1, 1);\r\n this.maxDateDefault = add(startOfDay(new Date()), { years: 50 });\r\n\r\n this.showDatepicker = false;\r\n\r\n this.translations = {\r\n cancel: 'Cancel',\r\n apply: 'Apply',\r\n custom: 'Custom',\r\n };\r\n\r\n this.customDateRange = new PeriodPickerDateRange(\r\n this.translations.custom,\r\n undefined,\r\n undefined\r\n );\r\n\r\n this.selectedDateRange = this.customDateRange;\r\n\r\n this.selectedDateInternal = startOfDay(new Date());\r\n\r\n this.selectedDateStart = startOfMonth(new Date());\r\n this.selectedDateEnd = startOfDay(endOfMonth(new Date()));\r\n\r\n this.setSelectedDateRangeText();\r\n\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['dateRangeDefinitions']) {\r\n this.generateDateRanges(true);\r\n }\r\n\r\n if (changes['selectionKind']){\r\n \r\n if (this.selectionKind == 'single') {\r\n const date = new Date(this.selectedDateInternal);\r\n\r\n this.setDateRangeText(date, date);\r\n this.matchDateRange(date, date);\r\n } else {\r\n const date1 = new Date(this.selectedDateStart);\r\n const date2 = new Date(this.selectedDateEnd);\r\n\r\n this.setDateRangeText(date1, date2);\r\n this.matchDateRange(date1, date2);\r\n }\r\n\r\n }\r\n\r\n if (changes['translations']) {\r\n this.updateCustomText();\r\n }\r\n\r\n if (changes['locales']) {\r\n this.setSelectedDateRangeText();\r\n }\r\n\r\n if (changes['selectedDateStart'] || changes['selectedDateEnd']) {\r\n this.dateStartOld = this.selectedDateStart;\r\n this.dateEndOld = this.selectedDateEnd;\r\n }\r\n\r\n if (changes['selectedDate']) {\r\n const value = new Date(changes['selectedDate'].currentValue);\r\n\r\n this.selectedDateInternal = startOfDay(value);\r\n\r\n if (this.selectionKind == 'single') {\r\n this.dateStart = this.selectedDateInternal;\r\n this.dateEnd = this.selectedDateInternal;\r\n\r\n this.setDateRangeText(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal\r\n );\r\n this.matchDateRange(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal\r\n );\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n if (changes['selectedDateStart']) {\r\n const value = changes['selectedDateStart'].currentValue;\r\n const selectedValue = value instanceof Date ? value : new Date();\r\n if (this.selectionKind == 'period') {\r\n if (this.isSettingNotPreprocessedDate && this.showDatepicker) {\r\n this.dateStart = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n this.isSettingNotPreprocessedDate = false;\r\n } else if (\r\n !this.isSelectedPredefinedPeriod &&\r\n this.showDatepicker\r\n ) {\r\n if (this.selectedDateStartFocus) {\r\n this.dateStart = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n if (\r\n this.dateEnd instanceof Date &&\r\n (isSameDay(selectedValue, this.dateEnd) ||\r\n isAfter(selectedValue, this.dateEnd))\r\n ) {\r\n this.dateEnd = selectedValue;\r\n }\r\n }\r\n } else {\r\n this.dateStart = selectedValue;\r\n this.selectedDateFocus = false;\r\n }\r\n\r\n this.calendar?.instance?.repaint();\r\n this.removeDxDefaultCalendarFocus();\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n this.matchDateRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n }\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n if (changes['selectedDateEnd']) {\r\n const value = changes['selectedDateEnd'].currentValue;\r\n const selectedValue = value instanceof Date ? value : new Date();\r\n if (this.selectionKind == 'period') {\r\n if (!this.isSelectedPredefinedPeriod) {\r\n if (this.selectedDateEndFocus) {\r\n this.dateEnd = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n\r\n if (\r\n this.dateStart instanceof Date &&\r\n (isSameDay(selectedValue, this.dateStart) ||\r\n isAfter(this.dateStart, selectedValue))\r\n ) {\r\n this.dateStart = selectedValue;\r\n }\r\n }\r\n } else {\r\n this.dateEnd = selectedValue;\r\n this.selectedDateInternal = selectedValue;\r\n }\r\n\r\n this.removeDxDefaultCalendarFocus();\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n this.matchDateRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (changes['firstDayOfWeek']) {\r\n this.generateDateRanges(true);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if (this.showDatepicker) {\r\n if (event.code === 'Escape') {\r\n event.stopPropagation();\r\n this.closeDatepickerPopup(false);\r\n } else if (event.code === 'Enter' || event.code === 'NumpadEnter') {\r\n event.stopPropagation();\r\n if (!this.disabled) {\r\n this.applyPeriodPicker();\r\n }\r\n } \r\n }\r\n } \r\n\r\n public randomIdReference: number = Math.floor(\r\n Math.random() * Number.MAX_SAFE_INTEGER\r\n );\r\n\r\n public setDateRangeDefinitions(definitions: Array<PeriodPickerDateRangeDefinition>): void {\r\n this.dateRangeDefinitions = definitions;\r\n this.generateDateRanges(true);\r\n }\r\n\r\n public setTranslations(translations: PeriodPickerTranslations){\r\n this.translations = translations;\r\n this.updateCustomText();\r\n }\r\n\r\n public get selectedDateStartFocus(): boolean {\r\n return this.selectedDateFocus;\r\n }\r\n public get selectedDateEndFocus(): boolean {\r\n return !this.selectedDateFocus;\r\n }\r\n\r\n public get isMinimumLimit() {\r\n if (\r\n this.minDate instanceof Date &&\r\n this.selectedDateInternal instanceof Date\r\n ) {\r\n return (\r\n isSameDay(this.selectedDateInternal, this.minDate) ||\r\n isBefore(this.selectedDateInternal, this.minDate)\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n public get isMaximumLimit() {\r\n if (\r\n this.maxDate instanceof Date &&\r\n this.selectedDateInternal instanceof Date\r\n ) {\r\n return (\r\n isSameDay(this.selectedDateInternal, this.maxDate) ||\r\n isAfter(this.selectedDateInternal, this.maxDate)\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n public onDateChange(event: any) {\r\n let selectedDateFromEvent = new Date(event.value);\r\n\r\n if (this.selectionKind == 'period') {\r\n if (this.selectedDateStartFocus) {\r\n this.selectedDateStart = selectedDateFromEvent;\r\n\r\n if (!this.initCalendarValue) {\r\n this.selectedDateFocus = false;\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n }\r\n } else if (this.selectedDateEndFocus) {\r\n if (\r\n isAfter(selectedDateFromEvent, this.selectedDateEnd as Date)\r\n ) {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n } else if (\r\n isBefore(\r\n selectedDateFromEvent,\r\n this.selectedDateStart as Date\r\n )\r\n ) {\r\n this.selectedDateFocus = true;\r\n this.selectedDateStart = selectedDateFromEvent;\r\n this.selectedDateFocus = false;\r\n } else if (\r\n isSameDay(\r\n selectedDateFromEvent,\r\n this.selectedDateEnd as Date\r\n )\r\n ) {\r\n this.selectedDateFocus = true;\r\n this.selectedDateStart = selectedDateFromEvent;\r\n this.selectedDateFocus = false;\r\n } else if (\r\n isSameDay(\r\n selectedDateFromEvent,\r\n this.selectedDateStart as Date\r\n )\r\n ) {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n } else {\r\n this.selectedDateEnd = selectedDateFromEvent;\r\n }\r\n }\r\n\r\n this.setSelectedDate(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n false\r\n );\r\n }\r\n }\r\n\r\n public onStartDateFocus() {\r\n this.initCalendarValue = true;\r\n this.selectedDateFocus = true;\r\n\r\n if (this.selectedDateStart) {\r\n this.selectedDateInternal = new Date(this.selectedDateStart);\r\n this.selectedDateCalendar = new Date(this.selectedDateStart);\r\n }\r\n\r\n setTimeout(() => {\r\n this.initCalendarValue = false;\r\n });\r\n }\r\n\r\n public onEndDateFocus() {\r\n this.selectedDateFocus = false;\r\n\r\n if (this.selectedDateEnd) {\r\n this.selectedDateInternal = new Date(this.selectedDateEnd);\r\n this.selectedDateCalendar = new Date(this.selectedDateEnd);\r\n }\r\n }\r\n\r\n public applyPeriodPicker() {\r\n this.hidingConfirmedDate = true;\r\n this.showDatepicker = false;\r\n this.setSelectedDate(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n true\r\n );\r\n }\r\n\r\n public openDatepickerPopup() {\r\n this.showDatepicker = true;\r\n\r\n if (this.selectionKind == 'single') {\r\n setTimeout(() => {\r\n this.singleDatePickerBox?.instance.focus();\r\n });\r\n } else {\r\n this.dateStartOld = this.selectedDateStart;\r\n this.dateEndOld = this.selectedDateEnd;\r\n this.isSettingNotPreprocessedDate = true;\r\n setTimeout(() => {\r\n this.selectedDateStartBox?.instance.focus();\r\n this.onStartDateFocus();\r\n });\r\n }\r\n }\r\n\r\n public closeDatepickerPopup(emitChange = true) {\r\n if (this.showDatepicker) {\r\n this.showDatepicker = false;\r\n if (this.selectionKind == 'single') {\r\n this.setSelectedDate(\r\n this.selectedDateInternal,\r\n this.selectedDateInternal,\r\n emitChange\r\n );\r\n } else {\r\n if (!this.hidingConfirmedDate) {\r\n this.setSelectedDate(this.dateStartOld, this.dateEndOld, true);\r\n }\r\n this.hidingConfirmedDate = false;\r\n }\r\n }\r\n }\r\n\r\n public setSelectedDate(\r\n dateStart: string | number | Date,\r\n dateEnd: string | number | Date,\r\n emitChange = true\r\n ) {\r\n this.selectedDateStart = dateStart;\r\n this.selectedDateEnd = dateEnd;\r\n\r\n if (this.selectionKind == 'single') {\r\n this.selectedDateInternal = dateStart;\r\n }\r\n\r\n if (\r\n this.selectedDateStart instanceof Date &&\r\n this.selectedDateEnd instanceof Date\r\n ) {\r\n this.setDateRangeText(this.selectedDateStart, this.selectedDateEnd);\r\n this.matchDateRange(this.selectedDateStart, this.selectedDateEnd);\r\n }\r\n\r\n this.isSelectedPredefinedPeriod = false;\r\n\r\n if (emitChange) {\r\n if (this.selectionKind == 'single') {\r\n this.selectedDate = new Date(this.selectedDateInternal);\r\n this.selectedDateChange.emit(this.selectedDateInternal);\r\n } else {\r\n const dateStartNew = new Date(this.selectedDateStart);\r\n const dateEndNew = new Date(this.selectedDateEnd);\r\n\r\n const startDateChanged =\r\n (this.dateStartOld instanceof Date && !isSameDay(this.dateStartOld, dateStartNew)) ||\r\n (typeof this.dateStartOld === 'string' && this.dateStartOld === '');\r\n const endDateChanged =\r\n (this.dateEndOld instanceof Date && !isSameDay(this.dateEndOld, dateEndNew)) || \r\n (typeof this.dateEndOld === 'string' && this.dateEndOld === '');\r\n\r\n if (startDateChanged) {\r\n this.dateStartOld = new Date(this.selectedDateStart);\r\n this.selectedDateStartChange.emit(this.selectedDateStart);\r\n }\r\n\r\n if (endDateChanged) {\r\n this.dateEndOld = new Date(this.selectedDateEnd);\r\n this.selectedDateEndChange.emit(this.selectedDateEnd);\r\n }\r\n\r\n if (startDateChanged || endDateChanged) {\r\n this.periodChange.emit([\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n ]);\r\n }\r\n }\r\n }\r\n this.changeRef.detectChanges();\r\n }\r\n\r\n public goToNextDate() {\r\n if (this.selectionKind == 'single') {\r\n this.setNextPreviousDay(true);\r\n } else {\r\n this.setNextPreviousRange(true);\r\n }\r\n }\r\n\r\n public goToPreviousDate() {\r\n if (this.selectionKind == 'single') {\r\n this.setNextPreviousDay(false);\r\n } else {\r\n this.setNextPreviousRange(false);\r\n }\r\n }\r\n\r\n public setNextPreviousDay(setNext: any) {\r\n this.isSelectedPredefinedPeriod = true;\r\n let newDate = setNext\r\n ? add(this.selectedDateInternal as Date, { days: 1 })\r\n : add(this.selectedDateInternal as Date, { days: -1 });\r\n\r\n this.selectedDateInternal = new Date(newDate);\r\n this.setSelectedDate(newDate, newDate);\r\n }\r\n\r\n public setNextPreviousRange(setNext: boolean) {\r\n this.isSelectedPredefinedPeriod = true;\r\n if (\r\n !(this.selectedDateStart instanceof Date) ||\r\n !(this.selectedDateEnd instanceof Date)\r\n ) {\r\n return;\r\n }\r\n\r\n const range = this.datePickerService.getRange(\r\n this.selectedDateStart,\r\n this.selectedDateEnd,\r\n setNext ? 'next' : 'previous'\r\n );\r\n this.setSelectedDate(range[0], range[1]);\r\n }\r\n\r\n public getCellCssClass(date: any) {\r\n const calendarDate = new Date(date);\r\n let css = '';\r\n\r\n if (this.selectionKind == 'period') {\r\n const selectedDateStartAsDate = new Date(this.selectedDateStart);\r\n const selectedDateEndAsDate = new Date(this.selectedDateEnd);\r\n\r\n if (\r\n isAfter(calendarDate, startOfDay(selectedDateStartAsDate)) &&\r\n isBefore(calendarDate, startOfDay(selectedDateEndAsDate)) &&\r\n !this.disabledDates.some((day) => isSameDay(calendarDate, day))\r\n ) {\r\n css += ' bg-secondary text-dark rounded-0';\r\n } else {\r\n if (isSameDay(calendarDate, selectedDateStartAsDate)) {\r\n css += ' bg-primary text-white rounded-left';\r\n }\r\n if (isSameDay(calendarDate, selectedDateEndAsDate)) {\r\n css += ' bg-primary text-white rounded-right';\r\n }\r\n }\r\n }\r\n return css;\r\n }\r\n\r\n private updateCustomText(): void {\r\n this.customDateRange.name = this.translations?.custom\r\n ? this.translations.custom\r\n : ''; \r\n }\r\n\r\n private removeDxDefaultCalendarFocus() {\r\n const element = document.querySelector(\r\n '#datepickercomponent .dx-calendar-selected-date'\r\n );\r\n if (\r\n element &&\r\n element?.classList?.contains('dx-calendar-selected-date')\r\n ) {\r\n element?.classList?.remove('dx-calendar-selected-date');\r\n }\r\n }\r\n\r\n private setSelectedDateRangeText(){\r\n if (this.selectionKind == 'single') {\r\n this.setDateRangeText(\r\n new Date(this.selectedDateInternal),\r\n new Date(this.selectedDateInternal)\r\n );\r\n this.matchDateRange(\r\n new Date(this.selectedDateInternal),\r\n new Date(this.selectedDateInternal)\r\n );\r\n } else {\r\n this.setDateRangeText(\r\n new Date(this.selectedDateStart),\r\n new Date(this.selectedDateEnd)\r\n );\r\n this.matchDateRange(\r\n new Date(this.selectedDateStart),\r\n new Date(this.selectedDateEnd)\r\n );\r\n }\r\n\r\n }\r\n\r\n toggleDateRangeSelectorVisibility() {\r\n if (!this.showPredefinedOptionsSelector) {\r\n this.generateDateRanges();\r\n }\r\n\r\n this.showPredefinedOptionsSelector =\r\n !this.showPredefinedOptionsSelector;\r\n }\r\n\r\n changDateRange(range: PeriodPickerDateRange) {\r\n this.showPredefinedOptionsSelector = false;\r\n this.selectedDateRange = range;\r\n\r\n if (range === this.customDateRange) {\r\n this.openDatepickerPopup();\r\n } else {\r\n this.dateStart = range.dateFrom\r\n ? range.dateFrom\r\n : startOfDay(new Date());\r\n this.dateEnd = range.dateTo ? range.dateTo : startOfDay(new Date());\r\n this.setSelectedDate(this.dateStart, this.dateEnd, true);\r\n }\r\n }\r\n\r\n matchDateRange(dateFrom?: Date, dateTo?: Date): void {\r\n if (!dateFrom || !dateTo) {\r\n this.selectedDateRange = this.customDateRange;\r\n return;\r\n }\r\n\r\n this.generateDateRanges();\r\n\r\n const dateRange = this.predefinedDateRanges.filter(\r\n (x) =>\r\n isSameDay(x.dateFrom as Date, dateFrom) &&\r\n isSameDay(x.dateTo as Date, dateTo)\r\n );\r\n if (dateRange.length) {\r\n this.selectedDateRange = dateRange[0];\r\n } else {\r\n this.selectedDateRange = this.customDateRange;\r\n }\r\n }\r\n\r\n private setDateRangeText(dateFrom?: Date, dateTo?: Date): void {\r\n const today = new Date();\r\n this.selectedDateRangeTextSegment1 = '';\r\n this.selectedDateRangeTextSegment2 = '';\r\n\r\n if (!(dateFrom instanceof Date) || !(dateTo instanceof Date)) {\r\n return;\r\n }\r\n\r\n // full month\r\n if (\r\n isSameDay(dateFrom, startOfMonth(dateFrom)) &&\r\n isSameDay(dateTo, endOfMonth(dateTo)) &&\r\n isSameMonth(dateFrom, dateTo)\r\n ) {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n 'month'\r\n );\r\n // one day\r\n } else if (isSameDay(dateFrom, dateTo)) {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n 'day-long'\r\n );\r\n } else {\r\n this.selectedDateRangeTextSegment1 = this.formatDate(\r\n dateFrom,\r\n isSameYear(dateFrom, today) ? 'day-short' : 'day'\r\n );\r\n this.selectedDateRangeTextSegment2 = this.formatDate(\r\n dateTo,\r\n isSameYear(dateTo, today) ? 'day-short' : 'day'\r\n );\r\n }\r\n }\r\n\r\n formatDate(\r\n date: Date,\r\n type?: 'month' | 'day' | 'day-long' | 'day-short' | undefined\r\n ): string {\r\n switch (type) {\r\n case 'month':\r\n return date.toLocaleDateString(this.locales, {\r\n month: 'long',\r\n year: 'numeric',\r\n day: undefined,\r\n });\r\n case 'day-long':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n weekday: 'long',\r\n });\r\n case 'day-short':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'short',\r\n });\r\n case 'day':\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'short',\r\n year: 'numeric',\r\n });\r\n default:\r\n return date.toLocaleDateString(this.locales, {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n });\r\n }\r\n }\r\n\r\n generateDateRanges(force?: boolean) {\r\n const today = startOfDay(new Date());\r\n\r\n if (\r\n force ||\r\n !this.predefinedDateRangesGeneratedDate ||\r\n !isSameDay(this.predefinedDateRangesGeneratedDate, today)\r\n ) {\r\n this.predefinedDateRangesGeneratedDate = today;\r\n\r\n this.predefinedDateRanges =\r\n this.datePickerService.getPredefinedDateRanges(\r\n this.dateRangeDefinitions,\r\n today,\r\n this.firstDayOfWeek\r\n );\r\n\r\n this.dateRanges = [...this.predefinedDateRanges];\r\n this.dateRanges.push(this.customDateRange);\r\n }\r\n }\r\n\r\n // private methods\r\n}\r\n","<!-- <div id=\"datepickerbuttons\"> -->\r\n <div \r\n class=\"datepicker d-flex bg-white\"\r\n role=\"group\"\r\n aria-label=\"Date picker\"\r\n [style.width]=\"width\"\r\n >\r\n <!-- <div\r\n class=\"btn-group\"\r\n role=\"group\"\r\n > -->\r\n <button\r\n *ngIf=\"dateRangeDefinitions && dateRangeDefinitions.length > 0\"\r\n id=\"pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n class=\"\r\n btn btn-white\r\n border\r\n rounded-left\r\n border-right \r\n p-0\"\r\n [disabled]=\"disabled\"\r\n [style.width]=\"dateRangeDefinitionsWidth\"\r\n (click)=\"toggleDateRangeSelectorVisibility()\"\r\n >\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"pl-2 ml-1 mr-1 date-range-text text-truncate\">\r\n {{selectedDateRange.name}}\r\n </div>\r\n <button class=\"btn btn-light date-range-dropdown-button\">\r\n <span class=\"dropdown-toggle\"></span>\r\n </button>\r\n\r\n </div>\r\n \r\n </button>\r\n\r\n <dx-popover\r\n *ngIf=\"dateRangeDefinitions && dateRangeDefinitions.length > 0\"\r\n target=\"#pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showPredefinedOptionsSelector\"\r\n [wrapperAttr]=\"{ class: 'sds-datepicker-ranges-popover' }\"\r\n [minWidth]=\"dateRangeDefinitionsWidth\"\r\n \r\n >\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <div *ngFor=\"let range of dateRanges\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"range === selectedDateRange\"\r\n (click)=\"changDateRange(range)\"\r\n > {{range.name}}\r\n </button>\r\n </div>\r\n </div>\r\n </dx-popover>\r\n <!-- </div> -->\r\n\r\n <button\r\n *ngIf=\"showPreviousAndNextButtons\"\r\n class=\"btn btn-white border border-right-0 pr-2\"\r\n [class.rounded-left] = \"!dateRangeDefinitions || dateRangeDefinitions.length === 0\"\r\n [class.border-left-0] = \"dateRangeDefinitions.length > 0\"\r\n type=\"button\"\r\n [disabled]=\"isMinimumLimit || disabled\"\r\n (click)=\"goToPreviousDate()\"\r\n >\r\n <fa-icon [icon]=\"previousPeriodIcon\"></fa-icon>\r\n\r\n </button>\r\n\r\n <button\r\n id=\"pickerDropdown{{ randomIdReference }}\"\r\n class=\"btn btn-white border-top border-bottom text-truncate px-0 selected-period\"\r\n [class.rounded-left] = \"(!dateRangeDefinitions || dateRangeDefinitions.length === 0) && !showPreviousAndNextButtons\"\r\n [class.border-left] = \"(!dateRangeDefinitions || dateRangeDefinitions.length === 0) && !showPreviousAndNextButtons\"\r\n [class.rounded-right] = \"!showPreviousAndNextButtons\"\r\n [class.border-right] = \"!showPreviousAndNextButtons\"\r\n [disabled]=\"disabled\"\r\n type=\"button\"\r\n (click)=\"showDatepicker ? closeDatepickerPopup() : openDatepickerPopup()\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <!-- <div class=\"mx-1\">\r\n <fa-icon [icon]=\"calendarIcon\" size=\"sm\"></fa-icon>\r\n </div> -->\r\n <div class=\"mx-1 text-truncate\">\r\n <span>{{selectedDateRangeTextSegment1}}</span>\r\n <fa-icon\r\n *ngIf=\"selectedDateRangeTextSegment2\"\r\n class=\"mx-2\"\r\n [icon]=\"toIcon\"\r\n size=\"sm\"\r\n ></fa-icon>\r\n <span>{{selectedDateRangeTextSegment2}}</span>\r\n </div>\r\n </div>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"showPreviousAndNextButtons\"\r\n class=\"btn btn-white border rounded-right border-left-0 pl-2\"\r\n type=\"button\"\r\n [disabled]=\"isMaximumLimit || disabled\"\r\n (click)=\"goToNextDate()\"\r\n >\r\n <fa-icon [icon]=\"nextPeriodIcon\"></fa-icon>\r\n </button>\r\n </div>\r\n\r\n <dx-popover\r\n target=\"#pickerDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showDatepicker\"\r\n class=\"m-0 p-0\"\r\n [wrapperAttr]=\"{ class: 'sds-datepicker-popover' }\"\r\n >\r\n <dxo-animation>\r\n <dxo-show\r\n type=\"pop\"\r\n [from]=\"{ scale: 0.9 }\"\r\n [to]=\"{ scale: 1 }\"\r\n ></dxo-show>\r\n <dxo-hide\r\n type=\"fade\"\r\n [from]=\"1\"\r\n [to]=\"0\"\r\n ></dxo-hide>\r\n </dxo-animation>\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <div id=\"datepickercomponent\">\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n id=\"date-inputs\"\r\n class=\"d-flex flex-wrap justify-content-center align-items-center px-4 py-3\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #selectedDateStartBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input\"\r\n [class.activeInput]=\"selectedDateFocus\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateStart\"\r\n (onFocusIn)=\"onStartDateFocus()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center px-2\">\r\n <fa-icon [icon]=\"toIcon\"></fa-icon>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #selectedDateEndBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input\"\r\n [class.activeInput]=\"!selectedDateFocus\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateEnd\"\r\n (onFocusIn)=\"onEndDateFocus()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bg-white px-4 py-3\">\r\n <div\r\n *ngIf=\"this.selectionKind == 'single'\"\r\n id=\"date-inputs\"\r\n class=\"d-flex flex-wrap justify-content-center align-items-center p-2 mb-3\"\r\n >\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-date-box\r\n #singleDatePickerBox\r\n class=\"border p-1 m-0 text-center rounded datepicker-input datepicker-input-large\"\r\n [class.activeInput]=\"true\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n [useMaskBehavior]=\"true\"\r\n displayFormat=\"shortdate\"\r\n type=\"date\"\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"selectedDateInternal\"\r\n (onValueChanged)=\"closeDatepickerPopup()\"\r\n >\r\n </dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-center align-items-center\">\r\n <dx-calendar\r\n #calendar\r\n [min]=\"minDate || minDateDefault\"\r\n [max]=\"maxDate || maxDateDefault\"\r\n [disabledDates]=\"disabledDates\"\r\n [isValid]=\"isValid\"\r\n [validationError]=\"validationError\"\r\n [disabled]=\"disabled\"\r\n [(value)]=\"this.selectionKind == 'period' ? selectedDateCalendar : selectedDateInternal\"\r\n (onValueChanged)=\"onDateChange($event)\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n >\r\n <div\r\n *dxTemplate=\"let cellData of 'cell'\"\r\n [class]=\"'h-100 pt-1' + getCellCssClass(cellData.date)\"\r\n >\r\n {{ cellData.text }}\r\n </div>\r\n </dx-calendar>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-end align-items-center px-4 py-3\"\r\n >\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"disabled\"\r\n (click)=\"closeDatepickerPopup()\"\r\n type=\"button\"\r\n >\r\n {{ translations.cancel}}\r\n </button>\r\n <button\r\n class=\"btn btn-primary ml-1\"\r\n [disabled]=\"disabled\"\r\n (click)=\"applyPeriodPicker()\"\r\n type=\"button\"\r\n >\r\n {{ translations.apply}}\r\n </button>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n </dx-popover>\r\n<!-- </div> -->","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DxDateBoxModule, DxDropDownBoxModule, DxDropDownButtonModule, DxListModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { DxPopoverModule } from 'devextreme-angular';\r\nimport { DxScrollViewModule } from 'devextreme-angular';\r\nimport { DxCalendarModule } from 'devextreme-angular';\r\n\r\n// import { DxDateBoxModule } from 'devextreme-angular/ui/date-box';\r\nimport { SdsDatePickerComponent } from './date-picker.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\nconst components = [\r\n SdsDatePickerComponent\r\n]\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n\r\n FontAwesomeModule,\r\n\r\n DxDateBoxModule,\r\n DxPopoverModule,\r\n DxScrollViewModule,\r\n DxCalendarModule,\r\n\r\n DxDropDownButtonModule,\r\n DxDropDownBoxModule,\r\n DxSelectBoxModule,\r\n DxListModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsDatePickerModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsDatePickerService"],"mappings":"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"}
|