@datarailsshared/datarailsshared 1.4.53-dragons → 1.4.55

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.
Files changed (22) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +76 -19
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.55.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +1 -0
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +2 -1
  7. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +11 -9
  8. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +19 -4
  9. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +12 -0
  10. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +19 -3
  11. package/esm2015/lib/dr-inputs/dr-inputs.module.js +4 -2
  12. package/esm2015/lib/models/datePicker.js +3 -1
  13. package/esm2015/lib/utils/dr-shared-utils.js +3 -1
  14. package/fesm2015/datarailsshared-datarailsshared.js +63 -14
  15. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  16. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +3 -1
  17. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +2 -1
  18. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +6 -0
  19. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +2 -1
  20. package/lib/models/datePicker.d.ts +4 -1
  21. package/package.json +1 -1
  22. package/datarailsshared-datarailsshared-1.4.53-dragons.tgz +0 -0
@@ -3488,6 +3488,7 @@
3488
3488
  DateFromats["YEAR_FORMAT"] = "yyyy";
3489
3489
  DateFromats["MONTH_YEAR_FORMAT"] = "MM/yyyy";
3490
3490
  DateFromats["QUARTER_FORMAT"] = "Q/yyyy";
3491
+ DateFromats["WEEK_FORMAT"] = "W/yyyy";
3491
3492
  })(exports.DateFromats || (exports.DateFromats = {}));
3492
3493
  var CustomDateFormat = /** @class */ (function () {
3493
3494
  function CustomDateFormat() {
@@ -3544,6 +3545,7 @@
3544
3545
  TimeframeOption["DAY"] = "day";
3545
3546
  TimeframeOption["MONTH"] = "month";
3546
3547
  TimeframeOption["QUARTER"] = "quarter";
3548
+ TimeframeOption["WEEK"] = "week";
3547
3549
  TimeframeOption["YEAR"] = "year";
3548
3550
  })(exports.TimeframeOption || (exports.TimeframeOption = {}));
3549
3551
  exports.CalendarView = void 0;
@@ -3652,6 +3654,8 @@
3652
3654
  return exports.TimeframeOption.QUARTER;
3653
3655
  case lowerCaseFormat.includes('d'):
3654
3656
  return exports.TimeframeOption.DAY;
3657
+ case lowerCaseFormat.includes('w'):
3658
+ return exports.TimeframeOption.WEEK;
3655
3659
  case lowerCaseFormat.includes('m'):
3656
3660
  return exports.TimeframeOption.MONTH;
3657
3661
  case lowerCaseFormat.includes('y'):
@@ -3669,15 +3673,31 @@
3669
3673
  this.timeframe = exports.TimeframeOption.DAY;
3670
3674
  this.format$ = new rxjs.BehaviorSubject(exports.DateFromats.MAT_DEFAULT_DATE_FORMAT);
3671
3675
  this.updatedQuarter$ = new rxjs.Subject();
3676
+ this.availableTimeframes = [
3677
+ exports.TimeframeOption.DAY,
3678
+ exports.TimeframeOption.WEEK,
3679
+ exports.TimeframeOption.MONTH,
3680
+ exports.TimeframeOption.QUARTER,
3681
+ exports.TimeframeOption.YEAR
3682
+ ];
3672
3683
  this.formatConfig = {
3673
3684
  day: exports.DateFromats.MAT_DEFAULT_DATE_FORMAT,
3674
3685
  month: exports.DateFromats.MONTH_YEAR_FORMAT,
3675
3686
  year: exports.DateFromats.YEAR_FORMAT,
3676
3687
  quarter: exports.DateFromats.QUARTER_FORMAT,
3688
+ week: exports.DateFromats.WEEK_FORMAT
3677
3689
  };
3678
3690
  }
3679
- DrDatePickerService.prototype.getQuarterDisplay = function (value) {
3680
- return 'Q' + value.quarter() + this.format$.getValue().charAt(1) + value.year();
3691
+ DrDatePickerService.prototype.getDisplayPrefix = function () {
3692
+ var formatCached = this.format$.getValue();
3693
+ switch (true) {
3694
+ case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('Q'):
3695
+ return 'Q';
3696
+ case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('W'):
3697
+ return 'W';
3698
+ default:
3699
+ return '';
3700
+ }
3681
3701
  };
3682
3702
  DrDatePickerService.prototype.getTimeframe = function (format) {
3683
3703
  return DrSharedUtils.getTimeframeByDateFormat(format);
@@ -3713,6 +3733,7 @@
3713
3733
  this.quarters = [1, 2, 3, 4];
3714
3734
  this.selectedQuarter = 1;
3715
3735
  this.timeframeOptions = [{
3736
+ timeframe: exports.TimeframeOption.DAY,
3716
3737
  title: 'Day',
3717
3738
  value: exports.CalendarView.FOR_DAYS,
3718
3739
  format: this.datePickerService.formatConfig.day,
@@ -3720,16 +3741,27 @@
3720
3741
  .format(_this._calendar.activeDate, _this._dateFormats.display.monthYearLabel)
3721
3742
  .toLocaleUpperCase(); }
3722
3743
  }, {
3744
+ timeframe: exports.TimeframeOption.WEEK,
3745
+ title: 'Week',
3746
+ value: exports.CalendarView.FOR_DAYS,
3747
+ format: this.datePickerService.formatConfig.week,
3748
+ periodLabel: function () { return _this._dateAdapter
3749
+ .format(_this._calendar.activeDate, _this._dateFormats.display.monthYearLabel)
3750
+ .toLocaleUpperCase(); }
3751
+ }, {
3752
+ timeframe: exports.TimeframeOption.MONTH,
3723
3753
  title: 'Month',
3724
3754
  value: exports.CalendarView.FOR_MONTHS,
3725
3755
  format: this.datePickerService.formatConfig.month,
3726
3756
  periodLabel: function () { return String(moment$1(_this._calendar.activeDate).year()); }
3727
3757
  }, {
3758
+ timeframe: exports.TimeframeOption.QUARTER,
3728
3759
  title: 'Quarter',
3729
3760
  value: exports.CalendarView.FOR_QUARTERS,
3730
3761
  format: this.datePickerService.formatConfig.quarter,
3731
3762
  periodLabel: function () { return String(moment$1(_this._calendar.activeDate).year()); }
3732
3763
  }, {
3764
+ timeframe: exports.TimeframeOption.YEAR,
3733
3765
  title: 'Year',
3734
3766
  value: exports.CalendarView.FOR_YEARS,
3735
3767
  format: this.datePickerService.formatConfig.year,
@@ -3757,6 +3789,9 @@
3757
3789
  _this.selectedTimeframe = _this.timeframeOptions.filter(function (option) { return option.format == value; })[0].value;
3758
3790
  _calendar.currentView = _this.selectedTimeframe;
3759
3791
  _this.setPeriodLabels();
3792
+ if (_this.selectedTimeframe === exports.CalendarView.FOR_QUARTERS) {
3793
+ _this.selectedQuarter = moment$1(_this._calendar.activeDate).quarter();
3794
+ }
3760
3795
  });
3761
3796
  _calendar.viewChanged.pipe(operators.takeUntil(this._destroyed)).subscribe(function () { return _this.setPeriodLabels(); });
3762
3797
  }
@@ -3768,7 +3803,7 @@
3768
3803
  var _this = this;
3769
3804
  var currentTimeframeOption = this.timeframeOptions.filter(function (option) { return option.value === _this._calendar.currentView; })[0];
3770
3805
  var fullPeriodLabel = currentTimeframeOption.periodLabel();
3771
- if (this._calendar.currentView === 'month') {
3806
+ if (this._calendar.currentView === exports.CalendarView.FOR_DAYS) {
3772
3807
  this.periodMonthLabel = fullPeriodLabel.slice(0, 3);
3773
3808
  this.periodYearLabel = fullPeriodLabel.slice(4);
3774
3809
  }
@@ -3818,7 +3853,7 @@
3818
3853
  DrDatePickerCustomHeaderComponent.decorators = [
3819
3854
  { type: i0.Component, args: [{
3820
3855
  selector: 'dr-date-picker_custom-header.component',
3821
- template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" 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(calendarView.FOR_MONTHS)\">{{periodMonthLabel + ' '}}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{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=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
3856
+ template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [(ngModel)]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\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(calendarView.FOR_MONTHS)\">{{periodMonthLabel + ' '}}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{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=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
3822
3857
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
3823
3858
  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"]
3824
3859
  },] }
@@ -3996,7 +4031,7 @@
3996
4031
  var DrDatePickerWithTimeframeComponent = /** @class */ (function (_super) {
3997
4032
  __extends(DrDatePickerWithTimeframeComponent, _super);
3998
4033
  function DrDatePickerWithTimeframeComponent(cdr, dateAdapter, datePickerService) {
3999
- var _b;
4034
+ var _a;
4000
4035
  var _this = _super.call(this, cdr, dateAdapter, datePickerService) || this;
4001
4036
  _this.cdr = cdr;
4002
4037
  _this.dateAdapter = dateAdapter;
@@ -4004,12 +4039,13 @@
4004
4039
  _this.isDashboardDatepicker = false;
4005
4040
  _this.canSelectTimeframe = true;
4006
4041
  _this.onChangeFormat = new i0.EventEmitter();
4007
- _this.pagingSetup = (_b = {},
4008
- _b[exports.TimeframeOption.YEAR] = function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
4009
- _b[exports.TimeframeOption.QUARTER] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 3, forward); },
4010
- _b[exports.TimeframeOption.MONTH] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
4011
- _b[exports.TimeframeOption.DAY] = function (forward) { return _this.pagingDateChange('addCalendarDays', 1, forward); },
4012
- _b);
4042
+ _this.pagingSetup = (_a = {},
4043
+ _a[exports.TimeframeOption.YEAR] = function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
4044
+ _a[exports.TimeframeOption.QUARTER] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 3, forward); },
4045
+ _a[exports.TimeframeOption.MONTH] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
4046
+ _a[exports.TimeframeOption.DAY] = function (forward) { return _this.pagingDateChange('addCalendarDays', 1, forward); },
4047
+ _a[exports.TimeframeOption.WEEK] = function (forward) { return _this.pagingDateChange('addCalendarDays', 7, forward); },
4048
+ _a);
4013
4049
  datePickerService.isTimeframeSelectionEnabled = true;
4014
4050
  datePickerService.format$
4015
4051
  .pipe(operators.takeUntil(_this.destroyed$))
@@ -4036,23 +4072,27 @@
4036
4072
  enumerable: false,
4037
4073
  configurable: true
4038
4074
  });
4075
+ Object.defineProperty(DrDatePickerWithTimeframeComponent.prototype, "availableTimeframes", {
4076
+ set: function (value) {
4077
+ if (value && value.length) {
4078
+ this.datePickerService.availableTimeframes = value;
4079
+ }
4080
+ },
4081
+ enumerable: false,
4082
+ configurable: true
4083
+ });
4039
4084
  Object.defineProperty(DrDatePickerWithTimeframeComponent.prototype, "displayedFormattedValue", {
4040
4085
  get: function () {
4041
- var _a;
4042
4086
  if (!this.value) {
4043
4087
  return this.placeholder;
4044
4088
  }
4045
- return ((_a = this.datePickerService.format$.getValue()) === null || _a === void 0 ? void 0 : _a.includes('Q'))
4046
- ? this.datePickerService.getQuarterDisplay(this.value)
4047
- : this.value.format(this.datePickerService.format$.getValue());
4089
+ var formatCached = this.datePickerService.format$.getValue();
4090
+ return this.datePickerService.getDisplayPrefix() + this.value.format(formatCached);
4048
4091
  },
4049
4092
  enumerable: false,
4050
4093
  configurable: true
4051
4094
  });
4052
4095
  DrDatePickerWithTimeframeComponent.prototype.ngOnInit = function () {
4053
- if (this.dateFormatConfig) {
4054
- this.datePickerService.formatConfig = Object.assign(Object.assign({}, this.datePickerService.formatConfig), this.dateFormatConfig);
4055
- }
4056
4096
  this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;
4057
4097
  this.cdr.markForCheck();
4058
4098
  };
@@ -4088,6 +4128,7 @@
4088
4128
  isDashboardDatepicker: [{ type: i0.Input }],
4089
4129
  dateFormatConfig: [{ type: i0.Input }],
4090
4130
  canSelectTimeframe: [{ type: i0.Input }],
4131
+ availableTimeframes: [{ type: i0.Input }],
4091
4132
  onChangeFormat: [{ type: i0.Output }]
4092
4133
  };
4093
4134
 
@@ -4138,6 +4179,20 @@
4138
4179
  datePickerFormat: [{ type: i0.Input, args: ['drDatePickerFormat',] }]
4139
4180
  };
4140
4181
 
4182
+ var DrShowTimeframePipe = /** @class */ (function () {
4183
+ function DrShowTimeframePipe() {
4184
+ }
4185
+ DrShowTimeframePipe.prototype.transform = function (arr, showOptions) {
4186
+ return arr.filter(function (item) { return showOptions.includes(item.timeframe); });
4187
+ };
4188
+ return DrShowTimeframePipe;
4189
+ }());
4190
+ DrShowTimeframePipe.decorators = [
4191
+ { type: i0.Pipe, args: [{
4192
+ name: 'drShowTimeframePipe'
4193
+ },] }
4194
+ ];
4195
+
4141
4196
  // !!! Please do not use such approach in other places
4142
4197
  // Hard fix for 'none' calendar view selection
4143
4198
  datepicker.MatCalendar.prototype.focusActiveCell = function () {
@@ -4157,7 +4212,8 @@
4157
4212
  DrDatePickerWithTimeframeComponent,
4158
4213
  DrDatePickerFormatDirective,
4159
4214
  DrDatePickerCustomHeaderComponent,
4160
- DrModelDebounceChangeDirective
4215
+ DrModelDebounceChangeDirective,
4216
+ DrShowTimeframePipe
4161
4217
  ];
4162
4218
  var DrInputsModule = /** @class */ (function () {
4163
4219
  function DrInputsModule() {
@@ -4403,6 +4459,7 @@
4403
4459
  exports["ɵe"] = DrDatePickerWithTimeframeComponent;
4404
4460
  exports["ɵf"] = DrDatePickerFormatDirective;
4405
4461
  exports["ɵg"] = DrDatePickerCustomHeaderComponent;
4462
+ exports["ɵh"] = DrShowTimeframePipe;
4406
4463
 
4407
4464
  Object.defineProperty(exports, '__esModule', { value: true });
4408
4465