@spicainternational/ngx-sds-components 5.1.0 → 5.2.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/public-api.mjs +2 -1
- package/esm2020/src/lib/date-picker/date-picker.component.mjs +19 -7
- package/esm2020/src/lib/date-picker/date-picker.model.mjs +1 -1
- package/esm2020/src/lib/tooltip/components/tooltip.component.mjs +21 -0
- package/esm2020/src/lib/tooltip/public-api.mjs +3 -0
- package/esm2020/src/lib/tooltip/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +5 -0
- package/esm2020/src/lib/tooltip/tooltip.directive.mjs +155 -0
- package/esm2020/src/lib/tooltip/tooltip.module.mjs +29 -0
- package/esm2020/src/lib/tooltip/tooltip.types.mjs +2 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +19 -7
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +205 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -0
- package/fesm2015/spicainternational-ngx-sds-components.mjs +1 -0
- package/fesm2015/spicainternational-ngx-sds-components.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +17 -5
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +205 -0
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -0
- package/fesm2020/spicainternational-ngx-sds-components.mjs +1 -0
- package/fesm2020/spicainternational-ngx-sds-components.mjs.map +1 -1
- package/package.json +9 -1
- package/public-api.d.ts +1 -0
- package/src/lib/date-picker/date-picker.model.d.ts +1 -0
- package/src/lib/tooltip/components/tooltip.component.d.ts +15 -0
- package/src/lib/tooltip/package.json +10 -0
- package/src/lib/tooltip/public-api.d.ts +2 -0
- package/src/lib/tooltip/spicainternational-ngx-sds-components-src-lib-tooltip.d.ts +5 -0
- package/src/lib/tooltip/tooltip.directive.d.ts +32 -0
- package/src/lib/tooltip/tooltip.module.d.ts +9 -0
- package/src/lib/tooltip/tooltip.types.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spicainternational-ngx-sds-components-src-lib-tooltip.mjs","sources":["../../../projects/ngx-sds-components/src/lib/tooltip/components/tooltip.component.ts","../../../projects/ngx-sds-components/src/lib/tooltip/components/tooltip.component.html","../../../projects/ngx-sds-components/src/lib/tooltip/tooltip.directive.ts","../../../projects/ngx-sds-components/src/lib/tooltip/tooltip.module.ts","../../../projects/ngx-sds-components/src/lib/tooltip/spicainternational-ngx-sds-components-src-lib-tooltip.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { TooltipPosition, TooltipTheme } from '../tooltip.types';\r\n\r\n@Component({\r\n selector: 'sds-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.scss'],\r\n})\r\nexport class SdsTooltipComponent implements OnInit {\r\n\r\n public tooltip: string = '';\r\n public left: number = 0;\r\n public top: number = 0;\r\n public visible: boolean = false;\r\n\r\n public position: TooltipPosition = 'above';\r\n public theme: TooltipTheme = 'dark';\r\n\r\n\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"sds-tooltip\"\r\n [ngClass]=\"['sds-tooltip-' + position, 'sds-tooltip-' + theme]\"\r\n [class.sds-tooltip-visible]=\"visible\"\r\n [style.left.px]=\"left\"\r\n [style.top.px]=\"top\"\r\n >\r\n <small>\r\n {{ tooltip }}\r\n </small>\r\n</div>\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n HostListener,\r\n Injector,\r\n Input,\r\n Renderer2,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { SdsTooltipComponent } from './components/tooltip.component';\r\nimport { TooltipPosition, TooltipTheme } from './tooltip.types';\r\n\r\n@Directive({\r\n selector: '[sdsTooltip]',\r\n})\r\nexport class TooltipDirective {\r\n @Input() tooltip = '';\r\n @Input() position: TooltipPosition = 'above';\r\n @Input() theme: TooltipTheme = 'dark';\r\n @Input() showDelay = 0;\r\n @Input() hideDelay = 0;\r\n\r\n private componentRef: ComponentRef<any> | null = null;\r\n private showTimeout?: number;\r\n private hideTimeout?: number;\r\n private touchTimeout?: number;\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private appRef: ApplicationRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n // private viewContainerRef: ViewContainerRef,\r\n private injector: Injector,\r\n // private renderer2: Renderer2\r\n ) {\r\n // this.renderer2.listen('window', 'scroll', (_) => {\r\n // console.log('scroll');\r\n // this.setHideTooltipTimeout();\r\n // });\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter(): void {\r\n this.initializeTooltip();\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave(): void {\r\n this.setHideTooltipTimeout();\r\n }\r\n\r\n // @HostListener(\"window:scroll\", [])\r\n // onWindowScroll() {\r\n // console.log('scroll');\r\n // this.setHideTooltipTimeout();\r\n // }\r\n\r\n // @HostListener('window:scroll') onScroll(e: Event): void {\r\n // console.log((e.target as Element).scrollTop);\r\n // }\r\n\r\n // @HostListener('scroll') onScrollHost(e: Event): void {\r\n // console.log((e.target as Element).scrollTop);\r\n // }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMouseMove($event: MouseEvent): void {\r\n if (this.componentRef !== null && this.position === 'dynamic') {\r\n this.componentRef.instance.left = $event.clientX;\r\n this.componentRef.instance.top = $event.clientY;\r\n this.componentRef.instance.tooltip = this.tooltip;\r\n }\r\n }\r\n\r\n @HostListener('touchstart', ['$event'])\r\n onTouchStart($event: TouchEvent): void {\r\n $event.preventDefault();\r\n window.clearTimeout(this.touchTimeout);\r\n this.touchTimeout = window.setTimeout(this.initializeTooltip.bind(this), 500);\r\n }\r\n\r\n @HostListener('touchend')\r\n onTouchEnd(): void {\r\n window.clearTimeout(this.touchTimeout);\r\n this.setHideTooltipTimeout();\r\n }\r\n\r\n private initializeTooltip() {\r\n if (this.componentRef === null) {\r\n window.clearInterval(this.hideDelay);\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(SdsTooltipComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n\r\n this.appRef.attachView(this.componentRef.hostView);\r\n const [tooltipDOMElement] = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes;\r\n\r\n this.setTooltipComponentProperties();\r\n\r\n document.body.appendChild(tooltipDOMElement);\r\n this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);\r\n }\r\n }\r\n\r\n private setTooltipComponentProperties() {\r\n if (this.componentRef !== null) {\r\n this.componentRef.instance.tooltip = this.tooltip;\r\n this.componentRef.instance.position = this.position;\r\n this.componentRef.instance.theme = this.theme;\r\n\r\n const { left, right, top, bottom } = this.elementRef.nativeElement.getBoundingClientRect();\r\n\r\n switch (this.position) {\r\n case 'below': {\r\n this.componentRef.instance.left = Math.round((right - left) / 2 + left);\r\n this.componentRef.instance.top = Math.round(bottom);\r\n break;\r\n }\r\n case 'above': {\r\n this.componentRef.instance.left = Math.round((right - left) / 2 + left);\r\n this.componentRef.instance.top = Math.round(top);\r\n break;\r\n }\r\n case 'right': {\r\n this.componentRef.instance.left = Math.round(right);\r\n this.componentRef.instance.top = Math.round(top + (bottom - top) / 2);\r\n break;\r\n }\r\n case 'left': {\r\n this.componentRef.instance.left = Math.round(left);\r\n this.componentRef.instance.top = Math.round(top + (bottom - top) / 2);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private showTooltip() {\r\n if (this.componentRef !== null) {\r\n this.componentRef.instance.visible = true;\r\n }\r\n }\r\n\r\n private setHideTooltipTimeout() {\r\n this.hideTimeout = window.setTimeout(this.destroy.bind(this), this.hideDelay);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n destroy(): void {\r\n if (this.componentRef !== null) {\r\n window.clearInterval(this.showTimeout);\r\n window.clearInterval(this.hideDelay);\r\n this.appRef.detachView(this.componentRef.hostView);\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsTooltipComponent } from '../tooltip/components/tooltip.component';\r\nimport { TooltipDirective } from './tooltip.directive';\r\nimport { TooltipPosition, TooltipTheme } from './tooltip.types';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsTooltipComponent,\r\n TooltipDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n TooltipDirective\r\n ]\r\n})\r\nexport class SdsTooltipModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export * from '@spicainternational/ngx-sds-components/src/lib/pane';
|
|
|
10
10
|
export * from '@spicainternational/ngx-sds-components/src/lib/quick-info';
|
|
11
11
|
export * from '@spicainternational/ngx-sds-components/src/lib/segmented-control';
|
|
12
12
|
export * from '@spicainternational/ngx-sds-components/src/lib/side-bar';
|
|
13
|
+
export * from '@spicainternational/ngx-sds-components/src/lib/tooltip';
|
|
13
14
|
|
|
14
15
|
/*
|
|
15
16
|
* Public API Surface of ngx-sds-components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spicainternational-ngx-sds-components.mjs","sources":["../../../projects/ngx-sds-components/src/public-api.ts","../../../projects/ngx-sds-components/src/spicainternational-ngx-sds-components.ts"],"sourcesContent":["/*\r\n * Public API Surface of ngx-sds-components\r\n */\r\n\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/app-switcher';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/avatar';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/callout';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/color-picker';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/date-picker';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/date-pipes';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/modal';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/navigation';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/pane';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/quick-info';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/segmented-control';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/side-bar'
|
|
1
|
+
{"version":3,"file":"spicainternational-ngx-sds-components.mjs","sources":["../../../projects/ngx-sds-components/src/public-api.ts","../../../projects/ngx-sds-components/src/spicainternational-ngx-sds-components.ts"],"sourcesContent":["/*\r\n * Public API Surface of ngx-sds-components\r\n */\r\n\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/app-switcher';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/avatar';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/callout';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/color-picker';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/date-picker';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/date-pipes';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/modal';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/navigation';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/pane';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/quick-info';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/segmented-control';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/side-bar';\r\nexport * from '@spicainternational/ngx-sds-components/src/lib/tooltip';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
|
|
@@ -184,9 +184,10 @@ class SdsDatePickerComponent {
|
|
|
184
184
|
this.showDatepicker = false;
|
|
185
185
|
this.translations = {
|
|
186
186
|
cancel: 'Cancel',
|
|
187
|
-
apply: 'Apply'
|
|
187
|
+
apply: 'Apply',
|
|
188
|
+
custom: 'Custom',
|
|
188
189
|
};
|
|
189
|
-
this.customDateRange = new PeriodPickerDateRange(
|
|
190
|
+
this.customDateRange = new PeriodPickerDateRange(this.translations.custom, undefined, undefined);
|
|
190
191
|
this.selectedDateRange = this.customDateRange;
|
|
191
192
|
const singleDateSelectorDefaultDate = startOfDay(new Date());
|
|
192
193
|
this.selectedDateInternal = singleDateSelectorDefaultDate;
|
|
@@ -209,6 +210,11 @@ class SdsDatePickerComponent {
|
|
|
209
210
|
if (changes['dateRangeDefinitions']) {
|
|
210
211
|
this.generateDateRanges(true);
|
|
211
212
|
}
|
|
213
|
+
if (changes['translations']) {
|
|
214
|
+
this.customDateRange.name = this.translations?.custom
|
|
215
|
+
? this.translations.custom
|
|
216
|
+
: '';
|
|
217
|
+
}
|
|
212
218
|
if (changes['selectedDateStart'] || changes['selectedDateEnd']) {
|
|
213
219
|
this.dateStartOld = this.selectedDateStart;
|
|
214
220
|
this.dateEndOld = this.selectedDateEnd;
|
|
@@ -426,7 +432,10 @@ class SdsDatePickerComponent {
|
|
|
426
432
|
this.selectedDateEndChange.emit(this.selectedDateEnd);
|
|
427
433
|
}
|
|
428
434
|
if (startDateChanged || endDateChanged) {
|
|
429
|
-
this.periodChange.emit([
|
|
435
|
+
this.periodChange.emit([
|
|
436
|
+
this.selectedDateStart,
|
|
437
|
+
this.selectedDateEnd,
|
|
438
|
+
]);
|
|
430
439
|
}
|
|
431
440
|
}
|
|
432
441
|
}
|
|
@@ -587,9 +596,12 @@ class SdsDatePickerComponent {
|
|
|
587
596
|
}
|
|
588
597
|
generateDateRanges(force) {
|
|
589
598
|
const today = startOfDay(new Date());
|
|
590
|
-
if (force ||
|
|
599
|
+
if (force ||
|
|
600
|
+
!this.predefinedDateRangesGeneratedDate ||
|
|
601
|
+
!isSameDay(this.predefinedDateRangesGeneratedDate, today)) {
|
|
591
602
|
this.predefinedDateRangesGeneratedDate = today;
|
|
592
|
-
this.predefinedDateRanges =
|
|
603
|
+
this.predefinedDateRanges =
|
|
604
|
+
this.datePickerService.getPredefinedDateRanges(this.dateRangeDefinitions, today);
|
|
593
605
|
this.dateRanges = [...this.predefinedDateRanges];
|
|
594
606
|
this.dateRanges.push(this.customDateRange);
|
|
595
607
|
}
|
|
@@ -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, dateTo?: Date) {\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 interface PeriodPickerTranslations {\r\n cancel: string;\r\n apply: 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 ): 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 );\r\n dateTo = endOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\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, PeriodPickerDateRangeDefinition, 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 \r\n // public interface\r\n @Input() selectionKind: 'period' | 'single' = 'period';\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 @Input() selectedDateEnd: string | number | Date;\r\n @Output() selectedDateEndChange = new EventEmitter();\r\n @Output() periodChange = new EventEmitter();\r\n \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 @Input() fixedWidth: number = 280;\r\n @Input() occupiedDays: any[] = [];\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\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 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 };\r\n\r\n this.customDateRange = new PeriodPickerDateRange(\r\n 'Custom',\r\n undefined,\r\n undefined\r\n );\r\n\r\n this.selectedDateRange = this.customDateRange;\r\n\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(singleDateSelectorDefaultDate, singleDateSelectorDefaultDate);\r\n this.matchDateRange(singleDateSelectorDefaultDate, singleDateSelectorDefaultDate); \r\n } else {\r\n this.setDateRangeText(periodSelectorDefaultStartDate, periodSelectorDefaultEndDate);\r\n this.matchDateRange(periodSelectorDefaultStartDate, periodSelectorDefaultEndDate); \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['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 console.log('selectedDate changed');\r\n const value = changes['selectedDate'].currentValue as Date;\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\r\n public randomIdReference: number = Math.floor(\r\n Math.random() * Number.MAX_SAFE_INTEGER\r\n );\r\n\r\n public disabledDates: Function = (data: any) => {\r\n return (\r\n data.view === 'month' &&\r\n this.occupiedDays.some((date) => isSameDay(date, data.date))\r\n );\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.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() {\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 true\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 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.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 &&\r\n !isSameDay(this.dateStartOld, dateStartNew);\r\n const endDateChanged =\r\n this.dateEndOld instanceof Date &&\r\n !isSameDay(this.dateEndOld, dateEndNew);\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([this.selectedDateStart, this.selectedDateEnd]);\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(this.selectedDateStart, this.selectedDateEnd, setNext ? 'next' : 'previous');\r\n this.setSelectedDate(range[0], range[1]);\r\n }\r\n\r\n public getCellCssClass(date: any) {\r\n const calendarDate = date as Date;\r\n let css = '';\r\n\r\n if (this.selectionKind == 'period') {\r\n if (\r\n isAfter(\r\n calendarDate,\r\n startOfDay(this.selectedDateStart as Date)\r\n ) &&\r\n isBefore(\r\n calendarDate,\r\n startOfDay(this.selectedDateEnd as Date)\r\n ) &&\r\n !this.occupiedDays.some((day) => isSameDay(calendarDate, day))\r\n ) {\r\n css += ' bg-secondary text-dark rounded-0';\r\n } else {\r\n if (isSameDay(calendarDate, this.selectedDateStart as Date)) {\r\n css += ' bg-primary text-white rounded-left';\r\n }\r\n if (isSameDay(calendarDate, this.selectedDateEnd as Date)) {\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 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 console.log('open popup');\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 (force || !this.predefinedDateRangesGeneratedDate || !isSameDay(this.predefinedDateRangesGeneratedDate, today)){\r\n this.predefinedDateRangesGeneratedDate = today;\r\n\r\n this.predefinedDateRanges = this.datePickerService.getPredefinedDateRanges(this.dateRangeDefinitions, today);\r\n\r\n this.dateRanges = [...this.predefinedDateRanges];\r\n this.dateRanges.push(this.customDateRange);\r\n }\r\n }\r\n\r\n @HostListener('document:keyup', ['$event']) onKeyupHandler(\r\n event: KeyboardEvent\r\n ) {\r\n if (event.keyCode === 27) {\r\n this.closeDatepickerPopup();\r\n }\r\n }\r\n\r\n // private methods\r\n}\r\n","<div id=\"datepickerbuttons\">\r\n <div\r\n class=\"d-flex\"\r\n role=\"group\"\r\n aria-label=\"Date picker\"\r\n >\r\n <div\r\n class=\"btn-group\"\r\n role=\"group\"\r\n >\r\n <button\r\n id=\"pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n class=\"\r\n btn btn-white\r\n border\r\n rounded-start\r\n border-end-0 border-color-muted\r\n dropdown-toggle\r\n preselect-options-fixed-width\r\n text-truncate\"\r\n [disabled]=\"disabled\"\r\n (click)=\"toggleDateRangeSelectorVisibility()\"\r\n >\r\n {{selectedDateRange.name}}\r\n </button>\r\n\r\n <dx-popover\r\n target=\"#pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showPredefinedOptionsSelector\"\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\"\r\n [class.font-weight-500]=\"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 class=\"btn btn-white border rounded-0 border-end-0 border-color-muted pe-2\"\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 rounded-0 border-start-0 border-end-0 border-color-muted text-truncate px-0\"\r\n [class.w-100]=\"!!!fixedWidth\"\r\n [disabled]=\"disabled\"\r\n type=\"button\"\r\n (click)=\"showDatepicker ? closeDatepickerPopup() : openDatepickerPopup()\"\r\n [style.width.px]=\"fixedWidth\"\r\n >\r\n <div\r\n *ngIf=\"true || this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-center align-items-center\"\r\n >\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 class=\"btn btn-white border rounded-end border-start-0 border-color-muted ps-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 (onHiding)=\"closeDatepickerPopup()\"\r\n class=\"m-0 p-0\"\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 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 #selectedDateStartBox\r\n class=\"border p-1 m-0 text-center rounded-pill 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-pill 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\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-pill 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 >\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\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-end align-items-center mt-3\"\r\n >\r\n <button\r\n class=\"btn btn-secondary btn-sm\"\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 btn-sm mx-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 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 ): 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 );\r\n dateTo = endOfWeek(\r\n addWeeks(\r\n referenceDay,\r\n dateRangeDefinition.modifier\r\n )\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 @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 @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 @Input() fixedWidth: number = 280;\r\n @Input() occupiedDays: any[] = [];\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 // 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.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['translations']) {\r\n this.customDateRange.name = this.translations?.custom\r\n ? this.translations.custom\r\n : '';\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 console.log('selectedDate changed');\r\n const value = changes['selectedDate'].currentValue as Date;\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\r\n public randomIdReference: number = Math.floor(\r\n Math.random() * Number.MAX_SAFE_INTEGER\r\n );\r\n\r\n public disabledDates: Function = (data: any) => {\r\n return (\r\n data.view === 'month' &&\r\n this.occupiedDays.some((date) => isSameDay(date, data.date))\r\n );\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.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() {\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 true\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 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.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 &&\r\n !isSameDay(this.dateStartOld, dateStartNew);\r\n const endDateChanged =\r\n this.dateEndOld instanceof Date &&\r\n !isSameDay(this.dateEndOld, dateEndNew);\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 = date as Date;\r\n let css = '';\r\n\r\n if (this.selectionKind == 'period') {\r\n if (\r\n isAfter(\r\n calendarDate,\r\n startOfDay(this.selectedDateStart as Date)\r\n ) &&\r\n isBefore(\r\n calendarDate,\r\n startOfDay(this.selectedDateEnd as Date)\r\n ) &&\r\n !this.occupiedDays.some((day) => isSameDay(calendarDate, day))\r\n ) {\r\n css += ' bg-secondary text-dark rounded-0';\r\n } else {\r\n if (isSameDay(calendarDate, this.selectedDateStart as Date)) {\r\n css += ' bg-primary text-white rounded-left';\r\n }\r\n if (isSameDay(calendarDate, this.selectedDateEnd as Date)) {\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 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 console.log('open popup');\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 );\r\n\r\n this.dateRanges = [...this.predefinedDateRanges];\r\n this.dateRanges.push(this.customDateRange);\r\n }\r\n }\r\n\r\n @HostListener('document:keyup', ['$event']) onKeyupHandler(\r\n event: KeyboardEvent\r\n ) {\r\n if (event.keyCode === 27) {\r\n this.closeDatepickerPopup();\r\n }\r\n }\r\n\r\n // private methods\r\n}\r\n","<div id=\"datepickerbuttons\">\r\n <div\r\n class=\"d-flex\"\r\n role=\"group\"\r\n aria-label=\"Date picker\"\r\n >\r\n <div\r\n class=\"btn-group\"\r\n role=\"group\"\r\n >\r\n <button\r\n id=\"pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n class=\"\r\n btn btn-white\r\n border\r\n rounded-start\r\n border-end-0 border-color-muted\r\n dropdown-toggle\r\n preselect-options-fixed-width\r\n text-truncate\"\r\n [disabled]=\"disabled\"\r\n (click)=\"toggleDateRangeSelectorVisibility()\"\r\n >\r\n {{selectedDateRange.name}}\r\n </button>\r\n\r\n <dx-popover\r\n target=\"#pickerPredefinedRangeDropdown{{ randomIdReference }}\"\r\n position=\"bottom\"\r\n [(visible)]=\"showPredefinedOptionsSelector\"\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\"\r\n [class.font-weight-500]=\"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 class=\"btn btn-white border rounded-0 border-end-0 border-color-muted pe-2\"\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 rounded-0 border-start-0 border-end-0 border-color-muted text-truncate px-0\"\r\n [class.w-100]=\"!!!fixedWidth\"\r\n [disabled]=\"disabled\"\r\n type=\"button\"\r\n (click)=\"showDatepicker ? closeDatepickerPopup() : openDatepickerPopup()\"\r\n [style.width.px]=\"fixedWidth\"\r\n >\r\n <div\r\n *ngIf=\"true || this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-center align-items-center\"\r\n >\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 class=\"btn btn-white border rounded-end border-start-0 border-color-muted ps-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 (onHiding)=\"closeDatepickerPopup()\"\r\n class=\"m-0 p-0\"\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 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 #selectedDateStartBox\r\n class=\"border p-1 m-0 text-center rounded-pill 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-pill 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\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-pill 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 >\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\r\n <div\r\n *ngIf=\"this.selectionKind == 'period'\"\r\n class=\"d-flex justify-content-end align-items-center mt-3\"\r\n >\r\n <button\r\n class=\"btn btn-secondary btn-sm\"\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 btn-sm mx-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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"}
|