@datarailsshared/datarailsshared 1.3.39 → 1.3.42

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 (24) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +281 -56
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.3.42.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +3 -1
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +4 -2
  7. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +8 -4
  8. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +87 -41
  9. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.service.js +41 -0
  10. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +129 -0
  11. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +4 -2
  12. package/esm2015/lib/dr-inputs/dr-inputs.module.js +9 -3
  13. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +5 -3
  14. package/esm2015/lib/models/datePicker.js +5 -2
  15. package/fesm2015/datarailsshared-datarailsshared.js +268 -55
  16. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  17. package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +29 -5
  18. package/lib/dr-inputs/dr-date-picker/dr-date-picker.service.d.ts +12 -0
  19. package/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +41 -0
  20. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +4 -2
  21. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +1 -0
  22. package/lib/models/datePicker.d.ts +4 -0
  23. package/package.json +1 -1
  24. package/datarailsshared-datarailsshared-1.3.39.tgz +0 -0
@@ -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 = "";
@@ -1631,7 +1631,7 @@
1631
1631
  DrInputComponent.decorators = [
1632
1632
  { type: i0.Component, args: [{
1633
1633
  selector: 'dr-input',
1634
- template: "<ng-content select=\"[prefixIcon]\"></ng-content>\r\n<input [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n (blur)=\"blur.emit(value); onTouched()\"\r\n [disabled]=\"_disabled\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n>\r\n<span class=\"clear-icon\" (click)=\"onClear($event)\"></span>\r\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked($event)\"></span>\r\n<ng-content select=\"[suffixIcon]\"></ng-content>\r\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\"\r\n (click)=\"onButtonClicked($event)\">\r\n {{_buttonOptions.text}}\r\n</button>\r\n",
1634
+ template: "<ng-content select=\"[prefixIcon]\"></ng-content>\r\n<input [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n (blur)=\"blur.emit(value); onTouched()\"\r\n [disabled]=\"_disabled\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [name]=\"name\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [minLength]=\"minLength\"\r\n [maxlength]=\"maxlength\"\r\n [step]=\"step\"\r\n>\r\n<span class=\"clear-icon\" (click)=\"onClear($event)\"></span>\r\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked($event)\"></span>\r\n<ng-content select=\"[suffixIcon]\"></ng-content>\r\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\"\r\n (click)=\"onButtonClicked($event)\">\r\n {{_buttonOptions.text}}\r\n</button>\r\n",
1635
1635
  providers: [{
1636
1636
  provide: forms.NG_VALUE_ACCESSOR,
1637
1637
  useExisting: i0.forwardRef(function () { return DrInputComponent; }),
@@ -1656,6 +1656,8 @@
1656
1656
  clearable: [{ type: i0.Input }],
1657
1657
  min: [{ type: i0.Input }],
1658
1658
  max: [{ type: i0.Input }],
1659
+ minLength: [{ type: i0.Input }],
1660
+ maxlength: [{ type: i0.Input }],
1659
1661
  step: [{ type: i0.Input }],
1660
1662
  blur: [{ type: i0.Output }],
1661
1663
  elementClass: [{ type: i0.HostBinding, args: ['class',] }],
@@ -1679,6 +1681,7 @@
1679
1681
  this.items = [];
1680
1682
  this.appendTo = 'body';
1681
1683
  this.disabled = false;
1684
+ this.optionWithDescription = false;
1682
1685
  this.keyDownFn = function () { return true; };
1683
1686
  this.change = new i0.EventEmitter();
1684
1687
  this.onChange = function () { };
@@ -1731,13 +1734,13 @@
1731
1734
  DrSelectComponent.decorators = [
1732
1735
  { type: i0.Component, args: [{
1733
1736
  selector: 'dr-select',
1734
- 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",
1735
1738
  providers: [{
1736
1739
  provide: forms.NG_VALUE_ACCESSOR,
1737
1740
  useExisting: DrSelectComponent,
1738
1741
  multi: true
1739
1742
  }],
1740
- 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"]
1741
1744
  },] }
1742
1745
  ];
1743
1746
  DrSelectComponent.ctorParameters = function () { return [
@@ -1759,6 +1762,7 @@
1759
1762
  loading: [{ type: i0.Input }],
1760
1763
  readonly: [{ type: i0.Input }],
1761
1764
  disabled: [{ type: i0.Input }],
1765
+ optionWithDescription: [{ type: i0.Input }],
1762
1766
  id: [{ type: i0.Input }],
1763
1767
  keyDownFn: [{ type: i0.Input }],
1764
1768
  selectedItem: [{ type: i0.Input }],
@@ -2378,6 +2382,7 @@
2378
2382
  var DATE_INPUT_FORMAT = 'YYYY/MM/DD';
2379
2383
  var YEAR_FORMAT = 'yyyy';
2380
2384
  var MONTH_YEAR_FORMAT = 'MM/yyyy';
2385
+ var QUARTER_FORMAT = 'Q/yyyy';
2381
2386
  var CustomDateFormat = /** @class */ (function () {
2382
2387
  function CustomDateFormat() {
2383
2388
  this._parse = {
@@ -2387,7 +2392,9 @@
2387
2392
  dateInput: DATE_INPUT_FORMAT,
2388
2393
  monthYearLabel: 'MMM YYYY',
2389
2394
  dateA11yLabel: 'LL',
2390
- monthYearA11yLabel: 'MMM YYYY'
2395
+ monthYearA11yLabel: 'MMM YYYY',
2396
+ quarterYearLabel: 'Q/YYYY',
2397
+ yearLabel: 'YYYY'
2391
2398
  };
2392
2399
  }
2393
2400
  Object.defineProperty(CustomDateFormat.prototype, "parse", {
@@ -2420,51 +2427,224 @@
2420
2427
  return CustomDateFormat;
2421
2428
  }());
2422
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
+
2423
2596
  var noop = function () { };
2424
2597
  var ɵ0$1 = noop;
2425
2598
  var DrDatePickerComponent = /** @class */ (function () {
2426
- function DrDatePickerComponent(cdr) {
2599
+ function DrDatePickerComponent(cdr, _dateAdapter, datePickerService) {
2600
+ var _this = this;
2427
2601
  this.cdr = cdr;
2602
+ this._dateAdapter = _dateAdapter;
2603
+ this.datePickerService = datePickerService;
2604
+ this._destroyed = new rxjs.Subject();
2428
2605
  this.readonly = true;
2429
- this._lastView = 'month';
2430
2606
  this._format = MAT_DEFAULT_DATE_FORMAT;
2607
+ this.customHeader = DrDatePickerCustomHeaderComponent;
2608
+ this.onChangeFormat = new i0.EventEmitter();
2609
+ this.timeframeSelection = false;
2431
2610
  this.placeholder = 'Select';
2432
2611
  this.min = null;
2433
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
+ };
2434
2625
  this.innerValue = null;
2435
2626
  this.onTouchedCallback = noop;
2436
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
+ });
2437
2640
  }
2438
- Object.defineProperty(DrDatePickerComponent.prototype, "lastView", {
2439
- set: function (view) {
2440
- switch (view) {
2441
- case 'year':
2442
- this._lastView = 'multi-year';
2443
- this._format = YEAR_FORMAT;
2444
- break;
2445
- case 'month':
2446
- this._lastView = 'year';
2447
- this._format = MONTH_YEAR_FORMAT;
2448
- break;
2449
- default:
2450
- this._lastView = 'month';
2451
- this._format = MAT_DEFAULT_DATE_FORMAT;
2452
- }
2453
- this.cdr.markForCheck();
2454
- },
2455
- enumerable: false,
2456
- configurable: true
2457
- });
2458
2641
  Object.defineProperty(DrDatePickerComponent.prototype, "format", {
2459
2642
  set: function (value) {
2460
2643
  if (value) {
2461
- if (value.includes('d')) {
2462
- value = value.replace(/d/g, 'D');
2463
- }
2464
- else if (value.includes('D')) {
2465
- value = value.replace(/D/g, 'd');
2466
- }
2644
+ value = this.normalizeValue(value);
2467
2645
  this._format = value;
2646
+ this.datePickerService.format.next(value);
2647
+ this.datePickerService.setTimeframe(value);
2468
2648
  this.cdr.markForCheck();
2469
2649
  }
2470
2650
  },
@@ -2473,20 +2653,15 @@
2473
2653
  });
2474
2654
  DrDatePickerComponent.prototype.ngAfterViewInit = function () {
2475
2655
  var _this = this;
2476
- if (this._lastView === 'month') {
2656
+ this.datePickerService.calendarInstance = this.dp;
2657
+ if (this._format === MAT_DEFAULT_DATE_FORMAT) {
2477
2658
  return;
2478
2659
  }
2479
- var lastView = this._lastView;
2480
2660
  setTimeout(function () {
2481
2661
  var popupInstance = _this.dp._popupComponentRef.instance;
2482
2662
  var calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;
2483
2663
  calenderInstance.currentPeriodClicked = function () {
2484
- if (lastView === 'multi-year') {
2485
- this.calendar.currentView = 'multi-year';
2486
- }
2487
- else if (lastView === 'year') {
2488
- this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';
2489
- }
2664
+ this.calendarViewSetup[this.datePickerService.timeframe] && this.calendarViewSetup[this.datePickerService.timeframe](this.calendar);
2490
2665
  };
2491
2666
  }, 1000);
2492
2667
  };
@@ -2513,47 +2688,87 @@
2513
2688
  DrDatePickerComponent.prototype.writeValue = function (value) {
2514
2689
  if (value !== this.innerValue) {
2515
2690
  if (value && typeof value === 'number') {
2516
- this.innerValue = momentImported__namespace.unix(value);
2691
+ this.innerValue = moment__namespace.unix(value);
2517
2692
  }
2518
2693
  else {
2519
2694
  this.innerValue = value;
2520
2695
  }
2696
+ if (this.timeframeSelection) {
2697
+ moment__namespace(value).endOf(this.datePickerService.timeframe);
2698
+ }
2521
2699
  this.cdr.markForCheck();
2522
2700
  }
2523
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
+ };
2524
2718
  DrDatePickerComponent.prototype.chosenMonthHandler = function (normalizedMonth, datepicker) {
2525
- if (this._lastView === 'year') {
2719
+ if (this.datePickerService.timeframe == 'month') {
2526
2720
  this.writeValue(normalizedMonth);
2527
2721
  this.onChangeCallback(normalizedMonth);
2528
2722
  datepicker.close();
2529
2723
  }
2530
2724
  };
2531
2725
  DrDatePickerComponent.prototype.chosenYearHandler = function (normalizedYear, datepicker) {
2532
- if (this._lastView === 'multi-year') {
2726
+ if (this.datePickerService.timeframe == 'year') {
2533
2727
  this.writeValue(normalizedYear);
2534
2728
  this.onChangeCallback(normalizedYear);
2535
2729
  datepicker.close();
2536
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();
2537
2748
  };
2538
2749
  return DrDatePickerComponent;
2539
2750
  }());
2540
2751
  DrDatePickerComponent.decorators = [
2541
2752
  { type: i0.Component, args: [{
2542
2753
  selector: 'dr-date-picker',
2543
- 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",
2544
2755
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2545
2756
  providers: [
2546
2757
  { provide: forms.NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true }
2547
2758
  ],
2548
- 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}: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"]
2549
2760
  },] }
2550
2761
  ];
2551
2762
  DrDatePickerComponent.ctorParameters = function () { return [
2552
- { type: i0.ChangeDetectorRef }
2763
+ { type: i0.ChangeDetectorRef },
2764
+ { type: core.DateAdapter },
2765
+ { type: DrDatePickerService }
2553
2766
  ]; };
2554
2767
  DrDatePickerComponent.propDecorators = {
2555
- lastView: [{ type: i0.Input }],
2768
+ _format: [{ type: i0.Input }],
2769
+ onChangeFormat: [{ type: i0.Output }],
2556
2770
  format: [{ type: i0.Input }],
2771
+ timeframeSelection: [{ type: i0.Input }],
2557
2772
  placeholder: [{ type: i0.Input }],
2558
2773
  min: [{ type: i0.Input }],
2559
2774
  max: [{ type: i0.Input }],
@@ -3182,12 +3397,16 @@
3182
3397
  }
3183
3398
  else {
3184
3399
  var defaultChildPadding = 3;
3185
- var widthMoreWindowRight = window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
3186
- var widthMoreWindowBottom = window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
3400
+ var widthMoreWindowRight = window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding);
3401
+ var widthMoreWindowBottom = window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding);
3402
+ var spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);
3187
3403
  this.widthMoreRight = !(widthMoreWindowRight < 0);
3188
3404
  var calculatedHorizantallyPos = widthMoreWindowRight < 0
3189
3405
  ? -this.position.x + -defaultChildPadding
3190
3406
  : this.position.x + defaultChildPadding + xDifference;
3407
+ if (spaceRightAmount <= 0) {
3408
+ calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;
3409
+ }
3191
3410
  var deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
3192
3411
  this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
3193
3412
  this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');
@@ -3678,7 +3897,8 @@
3678
3897
  DrToggleComponent,
3679
3898
  DrToggleButtonComponent,
3680
3899
  DrDatePickerComponent,
3681
- DrDatePickerFormatDirective
3900
+ DrDatePickerFormatDirective,
3901
+ DrDatePickerCustomHeaderComponent
3682
3902
  ];
3683
3903
  var DrInputsModule = /** @class */ (function () {
3684
3904
  function DrInputsModule() {
@@ -3694,7 +3914,10 @@
3694
3914
  forms.ReactiveFormsModule,
3695
3915
  common.CommonModule,
3696
3916
  ngSelect.NgSelectModule,
3697
- datepicker.MatDatepickerModule,
3917
+ datepicker.MatDatepickerModule
3918
+ ],
3919
+ providers: [
3920
+ DrDatePickerService
3698
3921
  ]
3699
3922
  },] }
3700
3923
  ];
@@ -3919,7 +4142,9 @@
3919
4142
  exports.YearTagComponent = YearTagComponent;
3920
4143
  exports.ɵa = components$2;
3921
4144
  exports.ɵb = POPUP_ANIMATION;
3922
- exports.ɵc = CustomDateFormat;
4145
+ exports.ɵc = DrDatePickerService;
4146
+ exports.ɵd = CustomDateFormat;
4147
+ exports.ɵe = DrDatePickerCustomHeaderComponent;
3923
4148
 
3924
4149
  Object.defineProperty(exports, '__esModule', { value: true });
3925
4150