@datarailsshared/datarailsshared 1.4.23 → 1.4.24-tigers
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/bundles/datarailsshared-datarailsshared.umd.js +1420 -1297
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.4.24-tigers.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +5 -3
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +6 -4
- package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +152 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +72 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +128 -0
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +55 -0
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +13 -9
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +13 -3
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +43 -10
- package/esm2015/lib/models/datePicker.js +8 -1
- package/esm2015/public-api.js +3 -3
- package/fesm2015/datarailsshared-datarailsshared.js +624 -523
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-inputs/{dr-date-picker → date-pickers/directives}/dr-date-picker-format.directive.d.ts +1 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +55 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +26 -0
- package/lib/dr-inputs/{dr-date-picker → date-pickers}/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +4 -4
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +18 -0
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -0
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +4 -0
- package/lib/models/datePicker.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/datarailsshared-datarailsshared-1.4.23.tgz +0 -0
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +0 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +0 -183
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.service.js +0 -41
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -129
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +0 -54
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.service.d.ts +0 -12
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from "@angular/core";
|
|
2
|
-
import { Subject } from "rxjs";
|
|
3
|
-
import { take, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { MatCalendar } from '@angular/material/datepicker';
|
|
5
|
-
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
6
|
-
import { CustomDateFormat, MAT_DEFAULT_DATE_FORMAT, MONTH_YEAR_FORMAT, QUARTER_FORMAT, YEAR_FORMAT } from "../../../models/datePicker";
|
|
7
|
-
import { DrDatePickerService } from "../dr-date-picker.service";
|
|
8
|
-
const moment = require('moment');
|
|
9
|
-
export class DrDatePickerCustomHeaderComponent {
|
|
10
|
-
constructor(_calendar, _dateAdapter, _dateFormats, cdr, datePickerService) {
|
|
11
|
-
this._calendar = _calendar;
|
|
12
|
-
this._dateAdapter = _dateAdapter;
|
|
13
|
-
this._dateFormats = _dateFormats;
|
|
14
|
-
this.cdr = cdr;
|
|
15
|
-
this.datePickerService = datePickerService;
|
|
16
|
-
this._destroyed = new Subject();
|
|
17
|
-
this.quarters = [1, 2, 3, 4];
|
|
18
|
-
this.selectedQuarter = 1;
|
|
19
|
-
this.timeframeOptions = [{
|
|
20
|
-
title: 'Day',
|
|
21
|
-
value: 'month',
|
|
22
|
-
format: MAT_DEFAULT_DATE_FORMAT,
|
|
23
|
-
periodLabel: () => this._dateAdapter
|
|
24
|
-
.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)
|
|
25
|
-
.toLocaleUpperCase()
|
|
26
|
-
}, {
|
|
27
|
-
title: 'Month',
|
|
28
|
-
value: 'year',
|
|
29
|
-
format: MONTH_YEAR_FORMAT,
|
|
30
|
-
periodLabel: () => String(moment(this._calendar.activeDate).year())
|
|
31
|
-
}, {
|
|
32
|
-
title: 'Quarter',
|
|
33
|
-
value: 'none',
|
|
34
|
-
format: QUARTER_FORMAT,
|
|
35
|
-
periodLabel: () => String(moment(this._calendar.activeDate).year())
|
|
36
|
-
}, {
|
|
37
|
-
title: 'Year',
|
|
38
|
-
value: 'multi-year',
|
|
39
|
-
format: YEAR_FORMAT,
|
|
40
|
-
periodLabel: () => {
|
|
41
|
-
const currentYear = moment(this._calendar.activeDate).year();
|
|
42
|
-
const startPeriod = Math.floor(currentYear / 24) * 24;
|
|
43
|
-
return startPeriod + '-' + (startPeriod + 23);
|
|
44
|
-
}
|
|
45
|
-
}];
|
|
46
|
-
this.pagingSetup = {
|
|
47
|
-
'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),
|
|
48
|
-
'none': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),
|
|
49
|
-
'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),
|
|
50
|
-
'multi-year': (forward) => this.pagingDateChange('addCalendarYears', 24, forward)
|
|
51
|
-
};
|
|
52
|
-
this.selectedTimeframe = 'month';
|
|
53
|
-
this.timeframeSelection = false;
|
|
54
|
-
this.periodMonthLabel = '';
|
|
55
|
-
this.periodYearLabel = '';
|
|
56
|
-
_calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());
|
|
57
|
-
this.datePickerService.format
|
|
58
|
-
.pipe(take(1))
|
|
59
|
-
.subscribe(value => {
|
|
60
|
-
this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;
|
|
61
|
-
this.setPeriodLabels();
|
|
62
|
-
});
|
|
63
|
-
_calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());
|
|
64
|
-
}
|
|
65
|
-
ngOnDestroy() {
|
|
66
|
-
this._destroyed.next();
|
|
67
|
-
this._destroyed.complete();
|
|
68
|
-
}
|
|
69
|
-
setPeriodLabels() {
|
|
70
|
-
const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];
|
|
71
|
-
const fullPeriodLabel = currentTimeframeOption.periodLabel();
|
|
72
|
-
if (this._calendar.currentView === 'month') {
|
|
73
|
-
this.periodMonthLabel = fullPeriodLabel.slice(0, 3);
|
|
74
|
-
this.periodYearLabel = fullPeriodLabel.slice(4);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.periodMonthLabel = '';
|
|
78
|
-
this.periodYearLabel = fullPeriodLabel;
|
|
79
|
-
}
|
|
80
|
-
this.cdr.markForCheck();
|
|
81
|
-
}
|
|
82
|
-
setTimeframe() {
|
|
83
|
-
this.timeframeSelection = false;
|
|
84
|
-
this._calendar.currentView = this.selectedTimeframe;
|
|
85
|
-
const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];
|
|
86
|
-
this.datePickerService.format.next(chosenTimeframeOption.format);
|
|
87
|
-
this.datePickerService.setTimeframe(chosenTimeframeOption.format);
|
|
88
|
-
if (this.selectedTimeframe == 'none') {
|
|
89
|
-
this.selectedQuarter = moment(this._calendar.activeDate).quarter();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
get currentViewIsQuater() {
|
|
93
|
-
return !['month', 'year', 'multi-year'].includes(this._calendar.currentView);
|
|
94
|
-
}
|
|
95
|
-
switchViewOnClickOnPeriodLabel(view) {
|
|
96
|
-
this._calendar.currentView = view;
|
|
97
|
-
}
|
|
98
|
-
onSelectQuater(quarterNumber) {
|
|
99
|
-
const monthsInQuarter = 3;
|
|
100
|
-
this.selectedQuarter = moment(this._calendar.activeDate).quarter();
|
|
101
|
-
const unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate, monthsInQuarter * (quarterNumber - this.selectedQuarter));
|
|
102
|
-
this._calendar.activeDate = unadaptedDate;
|
|
103
|
-
this.datePickerService.updatedQuater.next(moment(unadaptedDate));
|
|
104
|
-
this.datePickerService.calendarInstance.close();
|
|
105
|
-
}
|
|
106
|
-
pagingClicked(forward) {
|
|
107
|
-
this.pagingSetup[this._calendar.currentView] && this.pagingSetup[this._calendar.currentView](forward);
|
|
108
|
-
}
|
|
109
|
-
pagingDateChange(actionCall, amount, forward) {
|
|
110
|
-
this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);
|
|
111
|
-
this.setPeriodLabels();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
DrDatePickerCustomHeaderComponent.decorators = [
|
|
115
|
-
{ type: Component, args: [{
|
|
116
|
-
selector: 'dr-date-picker_custom-header.component',
|
|
117
|
-
template: "<div class=\"dr-datepicker__timeframe-select__wrapper\">\n <dr-select \n class=\"dr-datepicker__timeframe-select\"\n [(ngModel)]=\"selectedTimeframe\"\n [items]=\"timeframeOptions\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe()\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i> \n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel('year')\">{{periodMonthLabel + ' '}}</span> \n <span (click)=\"switchViewOnClickOnPeriodLabel('multi-year')\">{{periodYearLabel}}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuater\">\n <div *ngFor=\"let quarter of quarters\" \n class=\"quarter-selector\" (click)=\"onSelectQuater(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
|
|
118
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
119
|
-
styles: [":host{height:54px;align-items:center;font-family:\"Poppins\";font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 8px;grid-gap:4px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#F2F2FB;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#F2F2FB;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}\n"]
|
|
120
|
-
},] }
|
|
121
|
-
];
|
|
122
|
-
DrDatePickerCustomHeaderComponent.ctorParameters = () => [
|
|
123
|
-
{ type: MatCalendar },
|
|
124
|
-
{ type: DateAdapter },
|
|
125
|
-
{ type: CustomDateFormat, decorators: [{ type: Inject, args: [MAT_DATE_FORMATS,] }] },
|
|
126
|
-
{ type: ChangeDetectorRef },
|
|
127
|
-
{ type: DrDatePickerService }
|
|
128
|
-
];
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQWEsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFpQmpDLE1BQU0sT0FBTyxpQ0FBaUM7SUEyQzFDLFlBQ1ksU0FBOEIsRUFDOUIsWUFBaUMsRUFDUCxZQUE4QixFQUN4RCxHQUFzQixFQUN0QixpQkFBc0M7UUFKdEMsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ1AsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQ3hELFFBQUcsR0FB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MENBQTBEO2dCQUUxRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFFaEQ7OztZQXBCTSxXQUFXO1lBQ1gsV0FBVztZQUNYLGdCQUFnQix1QkFrRWhCLE1BQU0sU0FBQyxnQkFBZ0I7WUF2RWEsaUJBQWlCO1lBTXJELG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXRDYWxlbmRhclZpZXcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEN1c3RvbURhdGVGb3JtYXQsIE1BVF9ERUZBVUxUX0RBVEVfRk9STUFULCBNT05USF9ZRUFSX0ZPUk1BVCwgUVVBUlRFUl9GT1JNQVQsIFlFQVJfRk9STUFUIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyXCI7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2RyLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcblxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVmcmFtZU9wdGlvbiB7XG4gICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgdmFsdWU6IE1hdENhbGVuZGFyVmlldyxcbiAgICAgIGZvcm1hdDogc3RyaW5nLFxuICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IHN0cmluZ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxuICAgIFxuICB9KVxuXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50PE1vbWVudD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcXVhcnRlcnMgPSBbMSwgMiwgMywgNF07XG4gICAgc2VsZWN0ZWRRdWFydGVyID0gMTtcbiAgICB0aW1lZnJhbWVPcHRpb25zOiBJVGltZWZyYW1lT3B0aW9uW10gPSBbe1xuICAgICAgdGl0bGU6ICdEYXknLFxuICAgICAgdmFsdWU6ICdtb250aCcsXG4gICAgICBmb3JtYXQ6IE1BVF9ERUZBVUxUX0RBVEVfRk9STUFULFxuICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IHRoaXMuX2RhdGVBZGFwdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLl9kYXRlRm9ybWF0cy5kaXNwbGF5Lm1vbnRoWWVhckxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvY2FsZVVwcGVyQ2FzZSgpXG4gICAgfSx7XG4gICAgICB0aXRsZTogJ01vbnRoJyxcbiAgICAgIHZhbHVlOiAneWVhcicsXG4gICAgICBmb3JtYXQ6IE1PTlRIX1lFQVJfRk9STUFULFxuICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkueWVhcigpKVxuICAgIH0se1xuICAgICAgdGl0bGU6ICdRdWFydGVyJyxcbiAgICAgIHZhbHVlOiA8TWF0Q2FsZW5kYXJWaWV3PiAnbm9uZScsXG4gICAgICBmb3JtYXQ6IFFVQVJURVJfRk9STUFULFxuICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkueWVhcigpKVxuICAgIH0se1xuICAgICAgdGl0bGU6ICdZZWFyJyxcbiAgICAgIHZhbHVlOiAnbXVsdGkteWVhcicsXG4gICAgICBmb3JtYXQ6IFlFQVJfRk9STUFULFxuICAgICAgcGVyaW9kTGFiZWw6ICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gbW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnllYXIoKTtcbiAgICAgICAgY29uc3Qgc3RhcnRQZXJpb2QgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyLzI0KSoyNDtcbiAgICAgICAgcmV0dXJuIHN0YXJ0UGVyaW9kICsgJy0nICsgKHN0YXJ0UGVyaW9kICsgMjMpO1xuICAgICAgfVxuICAgIH1dXG5cbiAgICBwYWdpbmdTZXR1cCA9IHtcbiAgICAgICd5ZWFyJzogKGZvcndhcmQpID0+ICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICdub25lJzogKGZvcndhcmQpID0+ICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICdtb250aCc6IChmb3J3YXJkKSA9PiAgdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhck1vbnRocycsIDEsIGZvcndhcmQpLFxuICAgICAgJ211bHRpLXllYXInOiAoZm9yd2FyZCkgPT4gIHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDI0LCBmb3J3YXJkKVxuICAgIH1cbiAgICAgXG4gICAgc2VsZWN0ZWRUaW1lZnJhbWU6IE1hdENhbGVuZGFyVmlldyA9ICdtb250aCc7XG4gICAgdGltZWZyYW1lU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgcGVyaW9kTW9udGhMYWJlbCA9ICcnO1xuICAgIHBlcmlvZFllYXJMYWJlbCA9ICcnO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jYWxlbmRhcjogTWF0Q2FsZW5kYXI8TW9tZW50PixcbiAgICAgICAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPE1vbWVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSBfZGF0ZUZvcm1hdHM6IEN1c3RvbURhdGVGb3JtYXQsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBkYXRlUGlja2VyU2VydmljZTogRHJEYXRlUGlja2VyU2VydmljZSkge1xuICAgICAgICAgIF9jYWxlbmRhci5zdGF0ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGVyaW9kTGFiZWxzKCkpO1xuICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0XG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSggdmFsdWUgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWZyYW1lID0gdGhpcy50aW1lZnJhbWVPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLmZvcm1hdCA9PSB2YWx1ZSlbMF0udmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBfY2FsZW5kYXIudmlld0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGVyaW9kTGFiZWxzKCkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNldFBlcmlvZExhYmVscygpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3KVswXTtcbiAgICAgIGNvbnN0IGZ1bGxQZXJpb2RMYWJlbCA9IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24ucGVyaW9kTGFiZWwoKTtcbiAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwuc2xpY2UoMCwzKTtcbiAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwuc2xpY2UoNCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWw7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgXG4gICAgc2V0VGltZWZyYW1lKCkge1xuICAgICAgdGhpcy50aW1lZnJhbWVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZTtcbiAgICAgIGNvbnN0IGNob3NlblRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdC5uZXh0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpOyAgXG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldFRpbWVmcmFtZShjaG9zZW5UaW1lZnJhbWVPcHRpb24uZm9ybWF0KTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09IDxNYXRDYWxlbmRhclZpZXc+J25vbmUnKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gbW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnF1YXJ0ZXIoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY3VycmVudFZpZXdJc1F1YXRlcigpIHtcbiAgICAgIHJldHVybiAhWydtb250aCcsICd5ZWFyJywgJ211bHRpLXllYXInXS5pbmNsdWRlcyh0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlldyk7XG4gICAgfVxuIFxuICAgIHN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbCh2aWV3OiAneWVhcicgfCAnbXVsdGkteWVhcicpIHtcbiAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdmlldztcbiAgICB9XG5cbiAgICBvblNlbGVjdFF1YXRlcihxdWFydGVyTnVtYmVyOiBudW1iZXIpIHtcbiAgICAgIGNvbnN0IG1vbnRoc0luUXVhcnRlciA9IDM7XG4gICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IG1vbWVudCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKS5xdWFydGVyKCk7XG5cbiAgICAgIGNvbnN0IHVuYWRhcHRlZERhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLFxuICAgICAgICBtb250aHNJblF1YXJ0ZXIgKiAocXVhcnRlck51bWJlciAtIHRoaXMuc2VsZWN0ZWRRdWFydGVyKSk7XG4gICAgICB0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlID0gdW5hZGFwdGVkRGF0ZTtcbiAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXRlci5uZXh0KG1vbWVudCh1bmFkYXB0ZWREYXRlKSk7XG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwYWdpbmdDbGlja2VkKGZvcndhcmQpIHtcbiAgICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddICYmIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddKGZvcndhcmQpO1xuICAgIH1cblxuICAgIHBhZ2luZ0RhdGVDaGFuZ2UoYWN0aW9uQ2FsbDogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgZm9yd2FyZDogYm9vbGVhbikge1xuICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyW2FjdGlvbkNhbGxdKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIGZvcndhcmQ/IGFtb3VudDogLSBhbW91bnQpO1xuICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICB9XG4gIH0iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, AfterViewInit, OnDestroy, EventEmitter } from '@angular/core';
|
|
2
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
-
import { MatDatepicker } from '@angular/material/datepicker';
|
|
4
|
-
import { Moment } from 'moment';
|
|
5
|
-
import { DrDatePickerCustomHeaderComponent } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';
|
|
6
|
-
import { DateAdapter } from '@angular/material/core';
|
|
7
|
-
import { DrDatePickerService } from './dr-date-picker.service';
|
|
8
|
-
export declare class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {
|
|
9
|
-
private cdr;
|
|
10
|
-
private _dateAdapter;
|
|
11
|
-
private datePickerService;
|
|
12
|
-
private _destroyed;
|
|
13
|
-
readonly: boolean;
|
|
14
|
-
_format: string;
|
|
15
|
-
customHeader: typeof DrDatePickerCustomHeaderComponent;
|
|
16
|
-
onChangeFormat: EventEmitter<string>;
|
|
17
|
-
set format(value: any);
|
|
18
|
-
timeframeSelection: boolean;
|
|
19
|
-
takeEndOfPeriod: boolean;
|
|
20
|
-
placeholder: string;
|
|
21
|
-
min: Date;
|
|
22
|
-
max: Date;
|
|
23
|
-
dp: any;
|
|
24
|
-
ngAfterViewInit(): void;
|
|
25
|
-
calendarViewSetup: {
|
|
26
|
-
year: (calendar: any) => string;
|
|
27
|
-
month: (calendar: any) => string;
|
|
28
|
-
quarter: (calendar: any) => string;
|
|
29
|
-
day: (calendar: any) => string;
|
|
30
|
-
};
|
|
31
|
-
pagingSetup: {
|
|
32
|
-
year: (forward: any) => void;
|
|
33
|
-
quarter: (forward: any) => void;
|
|
34
|
-
month: (forward: any) => void;
|
|
35
|
-
day: (forward: any) => void;
|
|
36
|
-
};
|
|
37
|
-
private innerValue;
|
|
38
|
-
private onTouchedCallback;
|
|
39
|
-
private onChangeCallback;
|
|
40
|
-
constructor(cdr: ChangeDetectorRef, _dateAdapter: DateAdapter<any>, datePickerService: DrDatePickerService);
|
|
41
|
-
tryToNormalaizeTimeframe(normalizedRef: Moment, timeframe: moment.unitOfTime.StartOf): void;
|
|
42
|
-
get value(): number;
|
|
43
|
-
set value(v: number);
|
|
44
|
-
registerOnChange(fn: any): void;
|
|
45
|
-
registerOnTouched(fn: any): void;
|
|
46
|
-
writeValue(value: any): void;
|
|
47
|
-
get quarterDisplay(): string;
|
|
48
|
-
normalizeValue(value: any): any;
|
|
49
|
-
chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<any>): void;
|
|
50
|
-
chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<any>): void;
|
|
51
|
-
pagingClicked(forward: any): void;
|
|
52
|
-
pagingDateChange(actionCall: string, amount: number, forward: boolean): void;
|
|
53
|
-
ngOnDestroy(): void;
|
|
54
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { MatDatepicker } from "@angular/material/datepicker";
|
|
2
|
-
import { Moment } from "moment";
|
|
3
|
-
import { Subject, BehaviorSubject } from "rxjs";
|
|
4
|
-
export declare type TimeframeOption = 'day' | 'quarter' | 'month' | 'year';
|
|
5
|
-
export declare class DrDatePickerService {
|
|
6
|
-
timeframe: TimeframeOption;
|
|
7
|
-
format: BehaviorSubject<string>;
|
|
8
|
-
updatedQuater: Subject<Moment>;
|
|
9
|
-
calendarInstance: MatDatepicker<any>;
|
|
10
|
-
getQuarterDisplay(value: any, format: any): string;
|
|
11
|
-
setTimeframe(format: any): void;
|
|
12
|
-
}
|