@datarailsshared/datarailsshared 1.3.41 → 1.3.44

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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/material/core'), require('@angular/material-moment-adapter'), require('moment'), require('@angular/common'), require('rxjs'), require('rxjs/operators'), require('@angular/animations'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@angular/material/datepicker'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/button-toggle'), require('@ng-select/ng-select'), require('@angular/material/tooltip'), require('@angular/material/tabs')) :
3
3
  typeof define === 'function' && define.amd ? define('@datarailsshared/datarailsshared', ['exports', '@angular/core', '@angular/forms', '@angular/material/core', '@angular/material-moment-adapter', 'moment', '@angular/common', 'rxjs', 'rxjs/operators', '@angular/animations', '@angular/cdk/overlay', '@angular/cdk/portal', '@angular/material/datepicker', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/button-toggle', '@ng-select/ng-select', '@angular/material/tooltip', '@angular/material/tabs'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.datarailsshared = global.datarailsshared || {}, global.datarailsshared.datarailsshared = {}), global.ng.core, global.ng.forms, global.ng.material.core, global.ng.materialMomentAdapter, global.momentImported, global.ng.common, global.rxjs, global.rxjs.operators, global.ng.animations, global.ng.cdk.overlay, global.ng.cdk.portal, global.ng.material.datepicker, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.buttonToggle, global.ngSelect, global.ng.material.tooltip, global.ng.material.tabs));
5
- }(this, (function (exports, i0, forms, core, materialMomentAdapter, momentImported, common, rxjs, operators, animations, i1, portal, datepicker, formField, input, select, buttonToggle, ngSelect, tooltip, tabs) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.datarailsshared = global.datarailsshared || {}, global.datarailsshared.datarailsshared = {}), global.ng.core, global.ng.forms, global.ng.material.core, global.ng.materialMomentAdapter, global.moment$7, global.ng.common, global.rxjs, global.rxjs.operators, global.ng.animations, global.ng.cdk.overlay, global.ng.cdk.portal, global.ng.material.datepicker, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.buttonToggle, global.ngSelect, global.ng.material.tooltip, global.ng.material.tabs));
5
+ }(this, (function (exports, i0, forms, core, materialMomentAdapter, moment$7, common, rxjs, operators, animations, i1, portal, datepicker, formField, input, select, buttonToggle, ngSelect, tooltip, tabs) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -25,7 +25,7 @@
25
25
  }
26
26
 
27
27
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
28
- var momentImported__namespace = /*#__PURE__*/_interopNamespace(momentImported);
28
+ var moment__namespace = /*#__PURE__*/_interopNamespace(moment$7);
29
29
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
30
30
 
31
31
  // import {*} from ""
@@ -1041,7 +1041,7 @@
1041
1041
  tagChange: [{ type: i0.Output }]
1042
1042
  };
1043
1043
 
1044
- var moment$1 = momentImported__namespace;
1044
+ var moment$1 = moment__namespace;
1045
1045
  var ListTagComponent = /** @class */ (function () {
1046
1046
  function ListTagComponent() {
1047
1047
  this.defaultValue = "";
@@ -1681,6 +1681,7 @@
1681
1681
  this.items = [];
1682
1682
  this.appendTo = 'body';
1683
1683
  this.disabled = false;
1684
+ this.optionWithDescription = false;
1684
1685
  this.keyDownFn = function () { return true; };
1685
1686
  this.change = new i0.EventEmitter();
1686
1687
  this.onChange = function () { };
@@ -1733,13 +1734,13 @@
1733
1734
  DrSelectComponent.decorators = [
1734
1735
  { type: i0.Component, args: [{
1735
1736
  selector: 'dr-select',
1736
- template: " <ng-select [(ngModel)]=\"selectedItem\"\r\n [items]=\"items\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [multiple]=\"multiple\"\r\n [addTag]=\"addTag\"\r\n [appendTo]=\"appendTo\"\r\n [clearable]=\"clearable\"\r\n [searchable]=\"searchable\"\r\n [hideSelected]=\"hideSelected\"\r\n [placeholder]=\"placeholder\"\r\n [loading]=\"loading\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [id]=\"id\"\r\n [keyDownFn]=\"keyDownFn\"\r\n [searchFn]=\"searchFn\"\r\n (change)=\"change.emit(selectedItem); onChange(selectedItem)\"\r\n class=\"dr-select\">\r\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionFooterTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n </ng-select>\r\n",
1737
+ template: " <ng-select [(ngModel)]=\"selectedItem\"\r\n [items]=\"items\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [multiple]=\"multiple\"\r\n [addTag]=\"addTag\"\r\n [appendTo]=\"appendTo\"\r\n [clearable]=\"clearable\"\r\n [searchable]=\"searchable\"\r\n [hideSelected]=\"hideSelected\"\r\n [placeholder]=\"placeholder\"\r\n [loading]=\"loading\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [id]=\"id\"\r\n [keyDownFn]=\"keyDownFn\"\r\n [searchFn]=\"searchFn\"\r\n (change)=\"change.emit(selectedItem); onChange(selectedItem)\"\r\n class=\"dr-select\">\r\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\r\n <div class=\"dr-select__option-with-desc__wrapper\">\r\n <div>{{ item.name }}</div>\r\n <div class=\"dr-select__option-with-desc__description\"\r\n >{{ item?.description }}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\r\n <ng-container [ngTemplateOutlet]=\"optionFooterTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\r\n </ng-template>\r\n </ng-select>\r\n",
1737
1738
  providers: [{
1738
1739
  provide: forms.NG_VALUE_ACCESSOR,
1739
1740
  useExisting: DrSelectComponent,
1740
1741
  multi: true
1741
1742
  }],
1742
- styles: [":host{width:100%;height:32px}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px!important;border:1px solid #C3C4CE;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#85889c}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#21b8f1}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#151b3f;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#151a41;height:24px;padding:2px 8px;font-size:12px;margin:2px 2px 2px 0;background:#E5E6EA;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0 0 0 9px!important;color:#51566f;font-size:16px;font-weight:bold}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#E5E6EA!important;border:1px solid #E5E6EA!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#bcbcbc!important}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#de2833}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{border:1px solid #DBDEE3;border-radius:6px!important;margin-top:8px!important;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#F3F7FF;color:#151b3f}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:normal!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked:hover{background:#F6F7F8}\n"]
1743
+ styles: [":host{width:100%;height:32px}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px!important;border:1px solid #C3C4CE;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#85889c}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#21b8f1}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#151b3f;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#151a41;height:24px;padding:2px 8px;font-size:12px;margin:2px 2px 2px 0;background:#E5E6EA;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0 0 0 9px!important;color:#51566f;font-size:16px;font-weight:bold}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#E5E6EA!important;border:1px solid #E5E6EA!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#bcbcbc!important}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#de2833}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{border:1px solid #DBDEE3;border-radius:6px!important;margin-top:8px!important;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#F3F7FF;color:#151b3f}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:normal!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked:hover{background:#F6F7F8}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{max-width:97%;word-break:break-word;color:#4e566c;font-weight:400;font-size:12px;line-height:20px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected.ng-option-marked .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#0c142b}\n"]
1743
1744
  },] }
1744
1745
  ];
1745
1746
  DrSelectComponent.ctorParameters = function () { return [
@@ -1761,6 +1762,7 @@
1761
1762
  loading: [{ type: i0.Input }],
1762
1763
  readonly: [{ type: i0.Input }],
1763
1764
  disabled: [{ type: i0.Input }],
1765
+ optionWithDescription: [{ type: i0.Input }],
1764
1766
  id: [{ type: i0.Input }],
1765
1767
  keyDownFn: [{ type: i0.Input }],
1766
1768
  selectedItem: [{ type: i0.Input }],
@@ -2380,6 +2382,7 @@
2380
2382
  var DATE_INPUT_FORMAT = 'YYYY/MM/DD';
2381
2383
  var YEAR_FORMAT = 'yyyy';
2382
2384
  var MONTH_YEAR_FORMAT = 'MM/yyyy';
2385
+ var QUARTER_FORMAT = 'Q/yyyy';
2383
2386
  var CustomDateFormat = /** @class */ (function () {
2384
2387
  function CustomDateFormat() {
2385
2388
  this._parse = {
@@ -2389,7 +2392,9 @@
2389
2392
  dateInput: DATE_INPUT_FORMAT,
2390
2393
  monthYearLabel: 'MMM YYYY',
2391
2394
  dateA11yLabel: 'LL',
2392
- monthYearA11yLabel: 'MMM YYYY'
2395
+ monthYearA11yLabel: 'MMM YYYY',
2396
+ quarterYearLabel: 'Q/YYYY',
2397
+ yearLabel: 'YYYY'
2393
2398
  };
2394
2399
  }
2395
2400
  Object.defineProperty(CustomDateFormat.prototype, "parse", {
@@ -2422,51 +2427,224 @@
2422
2427
  return CustomDateFormat;
2423
2428
  }());
2424
2429
 
2430
+ var DrDatePickerService = /** @class */ (function () {
2431
+ function DrDatePickerService() {
2432
+ this.timeframe = 'day';
2433
+ this.format = new rxjs.BehaviorSubject(MAT_DEFAULT_DATE_FORMAT);
2434
+ this.updatedQuater = new rxjs.Subject();
2435
+ }
2436
+ DrDatePickerService.prototype.getQuarterDisplay = function (value, format) {
2437
+ return 'Q' + moment__namespace(value).quarter() + format.charAt(1) + moment__namespace(value).year();
2438
+ };
2439
+ DrDatePickerService.prototype.setTimeframe = function (format) {
2440
+ var lowerCaseFormat = format.toLowerCase();
2441
+ switch (true) {
2442
+ case lowerCaseFormat.includes('q'):
2443
+ this.timeframe = 'quarter';
2444
+ break;
2445
+ case lowerCaseFormat.includes('d'):
2446
+ this.timeframe = 'day';
2447
+ break;
2448
+ case lowerCaseFormat.includes('m'):
2449
+ this.timeframe = 'month';
2450
+ break;
2451
+ case lowerCaseFormat.includes('y'):
2452
+ this.timeframe = 'year';
2453
+ break;
2454
+ default:
2455
+ this.timeframe = 'day';
2456
+ }
2457
+ };
2458
+ return DrDatePickerService;
2459
+ }());
2460
+ DrDatePickerService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DrDatePickerService_Factory() { return new DrDatePickerService(); }, token: DrDatePickerService, providedIn: "root" });
2461
+ DrDatePickerService.decorators = [
2462
+ { type: i0.Injectable, args: [{
2463
+ providedIn: 'root',
2464
+ },] }
2465
+ ];
2466
+
2467
+ var DrDatePickerCustomHeaderComponent = /** @class */ (function () {
2468
+ function DrDatePickerCustomHeaderComponent(_calendar, _dateAdapter, _dateFormats, cdr, datePickerService) {
2469
+ var _this = this;
2470
+ this._calendar = _calendar;
2471
+ this._dateAdapter = _dateAdapter;
2472
+ this._dateFormats = _dateFormats;
2473
+ this.cdr = cdr;
2474
+ this.datePickerService = datePickerService;
2475
+ this._destroyed = new rxjs.Subject();
2476
+ this.quarters = [1, 2, 3, 4];
2477
+ this.selectedQuarter = 1;
2478
+ this.timeframeOptions = [{
2479
+ title: 'Day',
2480
+ value: 'month',
2481
+ format: MAT_DEFAULT_DATE_FORMAT,
2482
+ periodLabel: function () { return _this._dateAdapter
2483
+ .format(_this._calendar.activeDate, _this._dateFormats.display.monthYearLabel)
2484
+ .toLocaleUpperCase(); }
2485
+ }, {
2486
+ title: 'Month',
2487
+ value: 'year',
2488
+ format: MONTH_YEAR_FORMAT,
2489
+ periodLabel: function () { return String(moment__namespace(_this._calendar.activeDate).year()); }
2490
+ }, {
2491
+ title: 'Quarter',
2492
+ value: 'none',
2493
+ format: QUARTER_FORMAT,
2494
+ periodLabel: function () { return String(moment__namespace(_this._calendar.activeDate).year()); }
2495
+ }, {
2496
+ title: 'Year',
2497
+ value: 'multi-year',
2498
+ format: YEAR_FORMAT,
2499
+ periodLabel: function () {
2500
+ var currentYear = moment__namespace(_this._calendar.activeDate).year();
2501
+ var startPeriod = Math.floor(currentYear / 24) * 24;
2502
+ return startPeriod + '-' + (startPeriod + 23);
2503
+ }
2504
+ }];
2505
+ this.pagingSetup = {
2506
+ 'year': function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
2507
+ 'none': function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
2508
+ 'month': function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
2509
+ 'multi-year': function (forward) { return _this.pagingDateChange('addCalendarYears', 24, forward); }
2510
+ };
2511
+ this.selectedTimeframe = 'month';
2512
+ this.timeframeSelection = false;
2513
+ this.periodMonthLabel = '';
2514
+ this.periodYearLabel = '';
2515
+ _calendar.stateChanges
2516
+ .pipe(operators.takeUntil(this._destroyed))
2517
+ .subscribe(function () { return cdr.markForCheck(); });
2518
+ this.datePickerService.format
2519
+ .pipe(operators.take(1))
2520
+ .subscribe(function (value) {
2521
+ _this.selectedTimeframe = _this.timeframeOptions.filter(function (option) { return option.format == value; })[0].value;
2522
+ });
2523
+ }
2524
+ DrDatePickerCustomHeaderComponent.prototype.ngOnDestroy = function () {
2525
+ this._destroyed.next();
2526
+ this._destroyed.complete();
2527
+ };
2528
+ DrDatePickerCustomHeaderComponent.prototype.setPeriodLabels = function (currentTimeframeOption) {
2529
+ var fullPeriodLabel = currentTimeframeOption.periodLabel();
2530
+ if (this.selectedTimeframe === 'month') {
2531
+ this.periodMonthLabel = fullPeriodLabel.slice(0, 3);
2532
+ this.periodYearLabel = fullPeriodLabel.slice(4);
2533
+ }
2534
+ else {
2535
+ this.periodMonthLabel = '';
2536
+ this.periodYearLabel = fullPeriodLabel;
2537
+ }
2538
+ };
2539
+ DrDatePickerCustomHeaderComponent.prototype.setTimeframe = function () {
2540
+ var _this = this;
2541
+ this.timeframeSelection = false;
2542
+ this._calendar.currentView = this.selectedTimeframe;
2543
+ var chosenTimeframeOption = this.timeframeOptions.filter(function (option) { return option.value === _this.selectedTimeframe; })[0];
2544
+ this.setPeriodLabels(chosenTimeframeOption);
2545
+ this.datePickerService.format.next(chosenTimeframeOption.format);
2546
+ this.datePickerService.setTimeframe(chosenTimeframeOption.format);
2547
+ if (this.selectedTimeframe == null) {
2548
+ this.selectedQuarter = moment__namespace(this._calendar.activeDate).quarter();
2549
+ }
2550
+ };
2551
+ Object.defineProperty(DrDatePickerCustomHeaderComponent.prototype, "currentViewIsQuater", {
2552
+ get: function () {
2553
+ return !['month', 'year', 'multi-year'].includes(this._calendar.currentView);
2554
+ },
2555
+ enumerable: false,
2556
+ configurable: true
2557
+ });
2558
+ DrDatePickerCustomHeaderComponent.prototype.switchViewOnClickOnPeriodLabel = function (view) {
2559
+ this._calendar.currentView = view;
2560
+ };
2561
+ DrDatePickerCustomHeaderComponent.prototype.onSelectQuater = function (quarterNumber) {
2562
+ var monthsInQuarter = 3;
2563
+ this.selectedQuarter = moment__namespace(this._calendar.activeDate).quarter();
2564
+ var unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate, monthsInQuarter * (quarterNumber - this.selectedQuarter));
2565
+ this._calendar.activeDate = unadaptedDate;
2566
+ this.datePickerService.updatedQuater.next(moment__namespace(unadaptedDate));
2567
+ this.datePickerService.calendarInstance.close();
2568
+ };
2569
+ DrDatePickerCustomHeaderComponent.prototype.pagingClicked = function (forward) {
2570
+ this.pagingSetup[this.selectedTimeframe] && this.pagingSetup[this.selectedTimeframe](forward);
2571
+ };
2572
+ DrDatePickerCustomHeaderComponent.prototype.pagingDateChange = function (actionCall, amount, forward) {
2573
+ var _this = this;
2574
+ this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);
2575
+ var chosenTimeframeOption = this.timeframeOptions.filter(function (option) { return option.value === _this.selectedTimeframe; })[0];
2576
+ this.setPeriodLabels(chosenTimeframeOption);
2577
+ };
2578
+ return DrDatePickerCustomHeaderComponent;
2579
+ }());
2580
+ DrDatePickerCustomHeaderComponent.decorators = [
2581
+ { type: i0.Component, args: [{
2582
+ selector: 'dr-date-picker_custom-header.component',
2583
+ template: "<div class=\"dr-datepicker__timeframe-select__wrapper\">\r\n <dr-select \r\n class=\"dr-datepicker__timeframe-select\"\r\n [(ngModel)]=\"selectedTimeframe\"\r\n [items]=\"timeframeOptions\"\r\n bindLabel=\"title\"\r\n bindValue=\"value\"\r\n (ngModelChange)=\"setTimeframe()\">\r\n </dr-select>\r\n</div>\r\n\r\n<div class=\"dr-date-paging\">\r\n <div class=\"dr-date-paging flip-page-button\"\r\n (click)=\"pagingClicked(false)\">\r\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i> \r\n </div>\r\n <span class=\"example-header-label\">\r\n <span (click)=\"switchViewOnClickOnPeriodLabel('year')\">{{periodMonthLabel + ' '}}</span> \r\n <span (click)=\"switchViewOnClickOnPeriodLabel('multi-year')\">{{periodYearLabel}}</span>\r\n </span>\r\n <div class=\"dr-date-paging flip-page-button\"\r\n (click)=\"pagingClicked(true)\">\r\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\r\n </div>\r\n</div>\r\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuater\">\r\n <div *ngFor=\"let quarter of quarters\" \r\n class=\"quarter-selector\" (click)=\"onSelectQuater(quarter)\"\r\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\r\n >Q{{quarter}}</div>\r\n</div>\r\n\r\n",
2584
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2585
+ 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}.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"]
2586
+ },] }
2587
+ ];
2588
+ DrDatePickerCustomHeaderComponent.ctorParameters = function () { return [
2589
+ { type: datepicker.MatCalendar },
2590
+ { type: core.DateAdapter },
2591
+ { type: CustomDateFormat, decorators: [{ type: i0.Inject, args: [core.MAT_DATE_FORMATS,] }] },
2592
+ { type: i0.ChangeDetectorRef },
2593
+ { type: DrDatePickerService }
2594
+ ]; };
2595
+
2425
2596
  var noop = function () { };
2426
2597
  var ɵ0$1 = noop;
2427
2598
  var DrDatePickerComponent = /** @class */ (function () {
2428
- function DrDatePickerComponent(cdr) {
2599
+ function DrDatePickerComponent(cdr, _dateAdapter, datePickerService) {
2600
+ var _this = this;
2429
2601
  this.cdr = cdr;
2602
+ this._dateAdapter = _dateAdapter;
2603
+ this.datePickerService = datePickerService;
2604
+ this._destroyed = new rxjs.Subject();
2430
2605
  this.readonly = true;
2431
- this._lastView = 'month';
2432
2606
  this._format = MAT_DEFAULT_DATE_FORMAT;
2607
+ this.customHeader = DrDatePickerCustomHeaderComponent;
2608
+ this.onChangeFormat = new i0.EventEmitter();
2609
+ this.timeframeSelection = false;
2433
2610
  this.placeholder = 'Select';
2434
2611
  this.min = null;
2435
2612
  this.max = null;
2613
+ this.calendarViewSetup = {
2614
+ 'year': function (calendar) { return calendar.currentView = 'multi-year'; },
2615
+ 'month': function (calendar) { return calendar.currentView = 'year'; },
2616
+ 'quarter': function (calendar) { return calendar.currentView = 'none'; },
2617
+ 'day': function (calendar) { return calendar.currentView = 'month'; }
2618
+ };
2619
+ this.pagingSetup = {
2620
+ 'year': function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
2621
+ 'quarter': function (forward) { return _this.pagingDateChange('addCalendarMonths', 3, forward); },
2622
+ 'month': function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
2623
+ 'day': function (forward) { return _this.pagingDateChange('addCalendarDays', 1, forward); }
2624
+ };
2436
2625
  this.innerValue = null;
2437
2626
  this.onTouchedCallback = noop;
2438
2627
  this.onChangeCallback = noop;
2628
+ datePickerService.format
2629
+ .pipe(operators.takeUntil(this._destroyed))
2630
+ .subscribe(function (value) {
2631
+ _this._format = value;
2632
+ _this.onChangeFormat.emit(_this.normalizeValue(value));
2633
+ cdr.markForCheck();
2634
+ });
2635
+ datePickerService.updatedQuater
2636
+ .pipe(operators.takeUntil(this._destroyed))
2637
+ .subscribe(function (value) {
2638
+ _this.writeValue(value);
2639
+ });
2439
2640
  }
2440
- Object.defineProperty(DrDatePickerComponent.prototype, "lastView", {
2441
- set: function (view) {
2442
- switch (view) {
2443
- case 'year':
2444
- this._lastView = 'multi-year';
2445
- this._format = YEAR_FORMAT;
2446
- break;
2447
- case 'month':
2448
- this._lastView = 'year';
2449
- this._format = MONTH_YEAR_FORMAT;
2450
- break;
2451
- default:
2452
- this._lastView = 'month';
2453
- this._format = MAT_DEFAULT_DATE_FORMAT;
2454
- }
2455
- this.cdr.markForCheck();
2456
- },
2457
- enumerable: false,
2458
- configurable: true
2459
- });
2460
2641
  Object.defineProperty(DrDatePickerComponent.prototype, "format", {
2461
2642
  set: function (value) {
2462
2643
  if (value) {
2463
- if (value.includes('d')) {
2464
- value = value.replace(/d/g, 'D');
2465
- }
2466
- else if (value.includes('D')) {
2467
- value = value.replace(/D/g, 'd');
2468
- }
2644
+ value = this.normalizeValue(value);
2469
2645
  this._format = value;
2646
+ this.datePickerService.format.next(value);
2647
+ this.datePickerService.setTimeframe(value);
2470
2648
  this.cdr.markForCheck();
2471
2649
  }
2472
2650
  },
@@ -2475,20 +2653,15 @@
2475
2653
  });
2476
2654
  DrDatePickerComponent.prototype.ngAfterViewInit = function () {
2477
2655
  var _this = this;
2478
- if (this._lastView === 'month') {
2656
+ this.datePickerService.calendarInstance = this.dp;
2657
+ if (this._format === MAT_DEFAULT_DATE_FORMAT) {
2479
2658
  return;
2480
2659
  }
2481
- var lastView = this._lastView;
2482
2660
  setTimeout(function () {
2483
2661
  var popupInstance = _this.dp._popupComponentRef.instance;
2484
2662
  var calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;
2485
2663
  calenderInstance.currentPeriodClicked = function () {
2486
- if (lastView === 'multi-year') {
2487
- this.calendar.currentView = 'multi-year';
2488
- }
2489
- else if (lastView === 'year') {
2490
- this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';
2491
- }
2664
+ this.calendarViewSetup[this.datePickerService.timeframe] && this.calendarViewSetup[this.datePickerService.timeframe](this.calendar);
2492
2665
  };
2493
2666
  }, 1000);
2494
2667
  };
@@ -2515,47 +2688,87 @@
2515
2688
  DrDatePickerComponent.prototype.writeValue = function (value) {
2516
2689
  if (value !== this.innerValue) {
2517
2690
  if (value && typeof value === 'number') {
2518
- this.innerValue = momentImported__namespace.unix(value);
2691
+ this.innerValue = moment__namespace.unix(value);
2519
2692
  }
2520
2693
  else {
2521
2694
  this.innerValue = value;
2522
2695
  }
2696
+ if (this.timeframeSelection) {
2697
+ moment__namespace(value).endOf(this.datePickerService.timeframe);
2698
+ }
2523
2699
  this.cdr.markForCheck();
2524
2700
  }
2525
2701
  };
2702
+ Object.defineProperty(DrDatePickerComponent.prototype, "quarterDisplay", {
2703
+ get: function () {
2704
+ return this.datePickerService.getQuarterDisplay(this.value, this._format);
2705
+ },
2706
+ enumerable: false,
2707
+ configurable: true
2708
+ });
2709
+ DrDatePickerComponent.prototype.normalizeValue = function (value) {
2710
+ if (value.includes('d')) {
2711
+ value = value.replace(/d/g, 'D');
2712
+ }
2713
+ else if (value.includes('D')) {
2714
+ value = value.replace(/D/g, 'd');
2715
+ }
2716
+ return value;
2717
+ };
2526
2718
  DrDatePickerComponent.prototype.chosenMonthHandler = function (normalizedMonth, datepicker) {
2527
- if (this._lastView === 'year') {
2719
+ if (this.datePickerService.timeframe == 'month') {
2528
2720
  this.writeValue(normalizedMonth);
2529
2721
  this.onChangeCallback(normalizedMonth);
2530
2722
  datepicker.close();
2531
2723
  }
2532
2724
  };
2533
2725
  DrDatePickerComponent.prototype.chosenYearHandler = function (normalizedYear, datepicker) {
2534
- if (this._lastView === 'multi-year') {
2726
+ if (this.datePickerService.timeframe == 'year') {
2535
2727
  this.writeValue(normalizedYear);
2536
2728
  this.onChangeCallback(normalizedYear);
2537
2729
  datepicker.close();
2538
2730
  }
2731
+ else if (['quarter', 'day'].includes(this.datePickerService.timeframe)) {
2732
+ this.writeValue(normalizedYear);
2733
+ datepicker.close();
2734
+ }
2735
+ };
2736
+ DrDatePickerComponent.prototype.pagingClicked = function (forward) {
2737
+ this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);
2738
+ this.datePickerService.calendarInstance.close();
2739
+ };
2740
+ DrDatePickerComponent.prototype.pagingDateChange = function (actionCall, amount, forward) {
2741
+ var newValue = this._dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);
2742
+ this.writeValue(newValue);
2743
+ this.onChangeCallback(newValue);
2744
+ };
2745
+ DrDatePickerComponent.prototype.ngOnDestroy = function () {
2746
+ this._destroyed.next();
2747
+ this._destroyed.complete();
2539
2748
  };
2540
2749
  return DrDatePickerComponent;
2541
2750
  }());
2542
2751
  DrDatePickerComponent.decorators = [
2543
2752
  { type: i0.Component, args: [{
2544
2753
  selector: 'dr-date-picker',
2545
- template: "<i class=\"dr-icon-schedule\"></i>\r\n<input [(ngModel)]=\"value\"\r\n (click)=\"datePicker.open()\"\r\n [matDatepicker]=\"datePicker\"\r\n [placeholder]=\"placeholder\"\r\n [drDatePickerFormat]=\"_format\"\r\n [readonly]=\"readonly\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n/>\r\n <mat-datepicker #datePicker\r\n startView=\"{{_lastView}}\"\r\n (yearSelected)=\"chosenYearHandler($event, datePicker)\"\r\n (monthSelected)=\"chosenMonthHandler($event, datePicker)\">\r\n </mat-datepicker>\r\n\r\n",
2754
+ template: "<div class=\"dr-datepicker__with-timeframe-selection\"\r\n *ngIf=\"timeframeSelection;else noTimeframeSelection\">\r\n <div class=\"dr-input-date-paging__flip-page-button\"\r\n (click)=\"pagingClicked(false)\"\r\n >\r\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i> \r\n </div>\r\n <div class=\"dr-input-date-paging__quarter-display\"\r\n *ngIf=\"_format.includes('Q')\"\r\n (click)=\"datePicker.open()\"\r\n >{{quarterDisplay}}</div>\r\n <input [(ngModel)]=\"value\"\r\n (click)=\"datePicker.open()\"\r\n [matDatepicker]=\"datePicker\"\r\n [placeholder]=\"placeholder\"\r\n [drDatePickerFormat]=\"_format\"\r\n [readonly]=\"readonly\"\r\n [class]=\"_format.includes('Q') ? 'when-quarter' : ''\"\r\n [min]=\"min\"\r\n [max]=\"max\"/>\r\n <div class=\"dr-input-date-paging__flip-page-button\"\r\n (click)=\"pagingClicked(true)\">\r\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\r\n </div>\r\n <mat-datepicker #datePicker\r\n class=\"dr-timeframe-datepicker\"\r\n [calendarHeaderComponent]=\"customHeader\"\r\n (yearSelected)=\"chosenYearHandler($event, datePicker)\"\r\n (monthSelected)=\"chosenMonthHandler($event, datePicker)\">\r\n </mat-datepicker>\r\n</div>\r\n\r\n<ng-template class=\"dr-datepicker__no-timeframe-selection\"\r\n #noTimeframeSelection>\r\n <i class=\"dr-icon-schedule\"></i>\r\n <input [(ngModel)]=\"value\"\r\n (click)=\"datePicker.open()\"\r\n [matDatepicker]=\"datePicker\"\r\n [placeholder]=\"placeholder\"\r\n [drDatePickerFormat]=\"_format\"\r\n [readonly]=\"readonly\"\r\n [min]=\"min\"\r\n [max]=\"max\"/>\r\n <mat-datepicker #datePicker\r\n (yearSelected)=\"chosenYearHandler($event, datePicker)\"\r\n (monthSelected)=\"chosenMonthHandler($event, datePicker)\">\r\n </mat-datepicker>\r\n</ng-template>\r\n\r\n",
2546
2755
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2547
2756
  providers: [
2548
2757
  { provide: forms.NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true }
2549
2758
  ],
2550
- styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Poppins\",sans-serif;background:#fff;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#85889c}:host:focus-within{border-color:#21b8f1!important;color:#151b3f}:host.disabled{pointer-events:none;border:none;color:#85889c;background:#E5E6EA}:host.ng-valid.ng-dirty{border-color:#03a678}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#de2833!important}:host.ng-untouched.ng-valid{border-color:#c3c4ce}:host:after,:host:before{position:absolute;display:flex;border-color:#999 transparent transparent;color:#999}:host:after{content:\"\";height:0;width:0;border-style:solid;border-width:5px 5px 2.5px;right:11px;top:13px}:host i{position:absolute;color:#999;left:8px;top:3px}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important}:host input:disabled{border:none;color:#85889c;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}::ng-deep .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#F3F7FF}::ng-deep .mat-calendar-body-selected{background-color:#579bf2}::ng-deep .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-button-focus-overlay{background:#F3F7FF}::ng-deep .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#F3F7FF;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-controls .mat-calendar-period-button:hover{background:#F3F7FF;transition:background .2s cubic-bezier(.35,0,.25,1)}\n"]
2759
+ styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Poppins\",sans-serif;background-color:#fff;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;overflow:hidden;outline:none;cursor:pointer}:host.period-datepicker{border:none}:host:hover{border-color:#85889c}:host:focus-within{border-color:#21b8f1!important;color:#151b3f}:host.disabled{pointer-events:none;border:none;color:#85889c;background:#E5E6EA}:host.ng-valid.ng-dirty{border-color:#03a678}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#de2833!important}:host.ng-untouched.ng-valid{border-color:#c3c4ce}:host:after,:host:before{position:absolute;display:flex;border-color:#999999 transparent transparent;color:#999}:host:after{content:\"\";height:0;width:0;border-style:solid;border-width:5px 5px 2.5px;right:11px;top:13px}:host i{position:absolute;color:#999;left:8px;top:3px}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#85889c;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host .dr-datepicker__with-timeframe-selection{display:flex;align-items:center}:host .dr-datepicker__with-timeframe-selection .dr-input-date-paging__flip-page-button{width:25px;height:25px;border-radius:16px;padding:0;background-color:#fff}:host .dr-datepicker__with-timeframe-selection .dr-input-date-paging__flip-page-button i{position:relative;color:#0c142b;top:unset;left:unset}:host .dr-datepicker__with-timeframe-selection .dr-input-date-paging__flip-page-button:hover{background-color:#f2f2fb;color:#4646ce}:host .dr-datepicker__with-timeframe-selection input{width:90px;padding:0;border-radius:5px;text-decoration:underline;text-align:center}:host .dr-datepicker__with-timeframe-selection input:hover{background-color:#f2f2fb;color:#4646ce}:host .dr-input-date-paging__quarter-display{width:90px;height:22px;padding-left:0;text-align:center;line-height:22px;color:#0c142b;-webkit-text-decoration-line:underline;text-decoration-line:underline}:host .dr-input-date-paging__quarter-display:hover{background-color:#f2f2fb;border-radius:5px;cursor:pointer;-webkit-text-decoration-line:underline;text-decoration-line:underline;color:#4646ce}::ng-deep .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#F2F2FB;color:#4646ce;font-weight:600}::ng-deep .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-button-focus-overlay{background:#F3F7FF}::ng-deep .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#F3F7FF;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-controls .mat-calendar-period-button:hover{background:#F3F7FF;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#19181a}::ng-deep .mat-calendar-table-header-divider{display:none}::ng-deep .mat-calendar-body-label{color:#fff;padding:0}\n"]
2551
2760
  },] }
2552
2761
  ];
2553
2762
  DrDatePickerComponent.ctorParameters = function () { return [
2554
- { type: i0.ChangeDetectorRef }
2763
+ { type: i0.ChangeDetectorRef },
2764
+ { type: core.DateAdapter },
2765
+ { type: DrDatePickerService }
2555
2766
  ]; };
2556
2767
  DrDatePickerComponent.propDecorators = {
2557
- lastView: [{ type: i0.Input }],
2768
+ _format: [{ type: i0.Input }],
2769
+ onChangeFormat: [{ type: i0.Output }],
2558
2770
  format: [{ type: i0.Input }],
2771
+ timeframeSelection: [{ type: i0.Input }],
2559
2772
  placeholder: [{ type: i0.Input }],
2560
2773
  min: [{ type: i0.Input }],
2561
2774
  max: [{ type: i0.Input }],
@@ -3021,7 +3234,7 @@
3021
3234
  selector: 'dr-dropdown',
3022
3235
  template: "<div #menuContainer\r\n (mouseleave)=\"onMouseLeave()\"\r\n (clickOutside)=\"onClickedOutside()\"\r\n [drDropdownPosition]=\"option\"\r\n #dropdownPosition=\"dropdownPosition\"\r\n [position]=\"position\"\r\n [class]=\"containerClass\"\r\n class=\"dr-dropdown\">\r\n <div class=\"dr-dropdown__container\">\r\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\r\n (click)=\"action(act)\"\r\n [drTooltip]=\"tooltipToShow(act)\"\r\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\r\n [drTooltipOptions]=\"{ withoutArrow: true }\"\r\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\r\n class=\"dr-dropdown__container__item\"\r\n [class.item-disabled]=\"disabled(act)\"\r\n [class.item-selected]=\"selected(act)\">\r\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\r\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\r\n <i *ngFor=\"let actionIcon of act.actionIcons\"\r\n [class]=\"actionIcon.icon\"\r\n [class.showOnHover]=\"actionIcon.showOnHover\"\r\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\r\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\r\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\r\n </div>\r\n </div>\r\n</div>\r\n",
3023
3236
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
3024
- styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden}::ng-deep .dr-dropdown__container__item:hover .dr-dropdown{visibility:visible}::ng-deep .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item:hover{background-color:#f6f7f8}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#F3F7FF}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(45%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
3237
+ styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden}::ng-deep .dr-dropdown__container__item:hover>*>.dr-dropdown{visibility:visible}::ng-deep .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item:hover{background-color:#f9faff}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#F3F7FF}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item i{color:#4e566c}.dr-dropdown__container__item i:hover{color:#4646ce}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(15%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
3025
3238
  },] }
3026
3239
  ];
3027
3240
  DrDropdownComponent.ctorParameters = function () { return [
@@ -3684,7 +3897,8 @@
3684
3897
  DrToggleComponent,
3685
3898
  DrToggleButtonComponent,
3686
3899
  DrDatePickerComponent,
3687
- DrDatePickerFormatDirective
3900
+ DrDatePickerFormatDirective,
3901
+ DrDatePickerCustomHeaderComponent
3688
3902
  ];
3689
3903
  var DrInputsModule = /** @class */ (function () {
3690
3904
  function DrInputsModule() {
@@ -3700,7 +3914,10 @@
3700
3914
  forms.ReactiveFormsModule,
3701
3915
  common.CommonModule,
3702
3916
  ngSelect.NgSelectModule,
3703
- datepicker.MatDatepickerModule,
3917
+ datepicker.MatDatepickerModule
3918
+ ],
3919
+ providers: [
3920
+ DrDatePickerService
3704
3921
  ]
3705
3922
  },] }
3706
3923
  ];
@@ -3925,7 +4142,9 @@
3925
4142
  exports.YearTagComponent = YearTagComponent;
3926
4143
  exports.ɵa = components$2;
3927
4144
  exports.ɵb = POPUP_ANIMATION;
3928
- exports.ɵc = CustomDateFormat;
4145
+ exports.ɵc = DrDatePickerService;
4146
+ exports.ɵd = CustomDateFormat;
4147
+ exports.ɵe = DrDatePickerCustomHeaderComponent;
3929
4148
 
3930
4149
  Object.defineProperty(exports, '__esModule', { value: true });
3931
4150