@datarailsshared/datarailsshared 1.4.54 → 1.4.56

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 (29) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +119 -30
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.56.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +1 -0
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +2 -1
  7. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +6 -2
  8. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +21 -5
  9. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +1 -1
  10. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +11 -9
  11. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +19 -4
  12. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +12 -0
  13. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +19 -3
  14. package/esm2015/lib/dr-inputs/dr-inputs.module.js +4 -2
  15. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +12 -5
  16. package/esm2015/lib/models/datePicker.js +3 -1
  17. package/esm2015/lib/utils/dr-shared-utils.js +3 -1
  18. package/fesm2015/datarailsshared-datarailsshared.js +100 -24
  19. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  20. package/lib/dr-dropdown/dr-dropdown.component.d.ts +2 -0
  21. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +2 -0
  22. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +3 -1
  23. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +2 -1
  24. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +6 -0
  25. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +2 -1
  26. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -1
  27. package/lib/models/datePicker.d.ts +4 -1
  28. package/package.json +1 -1
  29. package/datarailsshared-datarailsshared-1.4.54.tgz +0 -0
@@ -1170,9 +1170,20 @@
1170
1170
  function RadioButtonComponent(cdr) {
1171
1171
  this.cdr = cdr;
1172
1172
  this.valueChange = new i0.EventEmitter();
1173
+ this._disabled = false;
1173
1174
  this.onChange = (function (onchanges) { });
1174
1175
  this.onTouched = function () { };
1175
1176
  }
1177
+ Object.defineProperty(RadioButtonComponent.prototype, "disabled", {
1178
+ get: function () {
1179
+ return this._disabled;
1180
+ },
1181
+ set: function (disabled) {
1182
+ this._disabled = disabled;
1183
+ },
1184
+ enumerable: false,
1185
+ configurable: true
1186
+ });
1176
1187
  Object.defineProperty(RadioButtonComponent.prototype, "value", {
1177
1188
  get: function () {
1178
1189
  return this._value;
@@ -1211,7 +1222,7 @@
1211
1222
  RadioButtonComponent.decorators = [
1212
1223
  { type: i0.Component, args: [{
1213
1224
  selector: 'dr-radio-button',
1214
- template: "<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n (click)=\"toggleChange($event)\">\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n",
1225
+ template: "<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n [disabled]=\"disabled\"\n (click)=\"toggleChange($event)\">\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n",
1215
1226
  providers: [
1216
1227
  {
1217
1228
  provide: forms.NG_VALUE_ACCESSOR,
@@ -1220,17 +1231,17 @@
1220
1231
  }
1221
1232
  ],
1222
1233
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1223
- styles: [":host{display:flex;line-height:22px}label input[type=radio].radiobox+span{vertical-align:middle;line-height:20px}input+span,input+span:after,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:18px;height:18px}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;height:12px;line-height:13px;width:12px;margin-right:5px;border:1px solid #8F929E;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before{border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}label input:checked+span:before,label:hover input:checked+span:before{background:#FFFFFF;border-color:#4646ce;color:#4646ce}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;background-image:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%234646CE\"/></svg> ');background-repeat:no-repeat;background-position:center;color:#4646ce}label input:disabled+span:before{border-color:#8f929e}label input[disabled]:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%238F929E\"/></svg> ');border-color:#8f929e}label span:hover:before{border-color:#4e566c}\n"]
1234
+ styles: [":host{display:flex;line-height:22px}label input[type=radio].radiobox+span{vertical-align:middle;line-height:20px}input+span,input+span:after,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:18px;height:18px}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;height:12px;line-height:13px;width:12px;margin-right:5px;border:1px solid #8F929E;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before{border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;background-image:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%234646CE\"/></svg> ');background-repeat:no-repeat;background-position:center;border-color:#4646ce;color:#4646ce}label input:disabled+span:before{border-color:#8f929e}label input[disabled]:checked+span:before{background-image:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%238F929E\"/></svg> ');background-repeat:no-repeat;background-position:center;border-color:#8f929e!important;color:#8f929e}label span:hover:before{border-color:#4e566c}\n"]
1224
1235
  },] }
1225
1236
  ];
1226
1237
  RadioButtonComponent.ctorParameters = function () { return [
1227
1238
  { type: i0.ChangeDetectorRef }
1228
1239
  ]; };
1229
1240
  RadioButtonComponent.propDecorators = {
1230
- disabled: [{ type: i0.Input }],
1231
1241
  name: [{ type: i0.Input }],
1232
1242
  _value: [{ type: i0.Input, args: ['value',] }],
1233
- valueChange: [{ type: i0.Output }]
1243
+ valueChange: [{ type: i0.Output }],
1244
+ disabled: [{ type: i0.Input }]
1234
1245
  };
1235
1246
 
1236
1247
  var RadioGroupComponent = /** @class */ (function () {
@@ -1459,7 +1470,7 @@
1459
1470
  { provide: forms.NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }
1460
1471
  ],
1461
1472
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1462
- styles: ["input+span{vertical-align:middle;line-height:30px}input+span,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:0}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;min-height:12px;line-height:12px;min-width:12px;margin-right:5px;border:1.5px solid #8F929E;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before,label:hover input+span:before{background-color:#fff;border-color:#8f929e;color:#4646ce;border-radius:2px}label input:checked+span:before,label:hover input:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M1 5L4.5 8.5L11 1.5\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/> </svg>');background:#4646CE;border-color:#4646ce;color:#fff}label input:checked+span.cross:before,label:hover input:checked+span.cross:before{content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.91786 4.99992L9.03356 1.88386C9.11927 1.79808 9.16654 1.68365 9.16668 1.56162C9.16668 1.43952 9.1194 1.32495 9.03356 1.23931L8.7605 0.966323C8.67466 0.880342 8.56026 0.833252 8.43811 0.833252C8.31615 0.833252 8.20169 0.880342 8.11585 0.966323L5.00016 4.08218L1.88431 0.966323C1.79861 0.880342 1.68407 0.833252 1.56199 0.833252C1.44004 0.833252 1.32559 0.880342 1.23988 0.966323L0.966677 1.23931C0.788899 1.4171 0.788899 1.70628 0.966677 1.88386L4.08245 4.99992L0.966677 8.11584C0.880904 8.20175 0.833707 8.31619 0.833707 8.43822C0.833707 8.56025 0.880904 8.67468 0.966677 8.76053L1.23981 9.03351C1.32551 9.11943 1.44003 9.16658 1.56191 9.16658C1.684 9.16658 1.79853 9.11943 1.88424 9.03351L5.00008 5.91759L8.11578 9.03351C8.20162 9.11943 8.31608 9.16658 8.43803 9.16658C8.56005 9.16658 8.67459 9.11943 8.76043 9.03351L9.03349 8.76053C9.11919 8.67475 9.16646 8.56025 9.16646 8.43822C9.16646 8.31619 9.11919 8.20175 9.03349 8.11591L5.91786 4.99992Z\" fill=\"white\"/></svg>')}label input+span.indeterminate:before,label:hover input+span.indeterminate:before{content:url('data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"10\" viewBox=\"0 0 10 2\" fill=\"none\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.25 1C0.25 0.585786 0.585786 0.25 1 0.25L11 0.250001C11.4142 0.250001 11.75 0.585787 11.75 1C11.75 1.41421 11.4142 1.75 11 1.75L1 1.75C0.585786 1.75 0.25 1.41421 0.25 1Z\" fill=\"white\"/></svg>');background:#4646CE;border-color:#4646ce;color:#fff}label input:disabled+span:before{border-color:#dfe0e3;pointer-events:none}label input[disabled]:checked+span:before{background:#8F929E;border-color:#8f929e;pointer-events:none}label input:not([disabled])+span:hover:after{content:\"\";width:28px;height:28px;background:#F2F2FB;border-radius:50%;position:absolute;left:-6px;top:-5px;z-index:-1}\n"]
1473
+ styles: ["input+span{vertical-align:middle;line-height:30px}input+span,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:0}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;min-height:12px;line-height:12px;min-width:12px;margin-right:5px;border:1.5px solid #8F929E;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before,label:hover input+span:before{background-color:#fff;border-color:#8f929e;color:#4646ce;border-radius:2px}label input:checked+span:before,label:hover input:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M1 5L4.5 8.5L11 1.5\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/> </svg>');background:#4646CE;border-color:#4646ce;color:#fff}label input:checked+span.cross:before,label:hover input:checked+span.cross:before{content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.91786 4.99992L9.03356 1.88386C9.11927 1.79808 9.16654 1.68365 9.16668 1.56162C9.16668 1.43952 9.1194 1.32495 9.03356 1.23931L8.7605 0.966323C8.67466 0.880342 8.56026 0.833252 8.43811 0.833252C8.31615 0.833252 8.20169 0.880342 8.11585 0.966323L5.00016 4.08218L1.88431 0.966323C1.79861 0.880342 1.68407 0.833252 1.56199 0.833252C1.44004 0.833252 1.32559 0.880342 1.23988 0.966323L0.966677 1.23931C0.788899 1.4171 0.788899 1.70628 0.966677 1.88386L4.08245 4.99992L0.966677 8.11584C0.880904 8.20175 0.833707 8.31619 0.833707 8.43822C0.833707 8.56025 0.880904 8.67468 0.966677 8.76053L1.23981 9.03351C1.32551 9.11943 1.44003 9.16658 1.56191 9.16658C1.684 9.16658 1.79853 9.11943 1.88424 9.03351L5.00008 5.91759L8.11578 9.03351C8.20162 9.11943 8.31608 9.16658 8.43803 9.16658C8.56005 9.16658 8.67459 9.11943 8.76043 9.03351L9.03349 8.76053C9.11919 8.67475 9.16646 8.56025 9.16646 8.43822C9.16646 8.31619 9.11919 8.20175 9.03349 8.11591L5.91786 4.99992Z\" fill=\"white\"/></svg>')}label input+span.indeterminate:before,label:hover input+span.indeterminate:before{content:url('data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"10\" viewBox=\"0 0 10 2\" fill=\"none\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.25 1C0.25 0.585786 0.585786 0.25 1 0.25L11 0.250001C11.4142 0.250001 11.75 0.585787 11.75 1C11.75 1.41421 11.4142 1.75 11 1.75L1 1.75C0.585786 1.75 0.25 1.41421 0.25 1Z\" fill=\"white\"/></svg>');background:#4646CE;border-color:#4646ce;color:#fff}label input:disabled+span{color:#8f929e}label input:disabled+span:before{border-color:#dfe0e3;pointer-events:none}label input[disabled]:checked+span:before{background:#8F929E;border-color:#8f929e;pointer-events:none}label input:not([disabled])+span:hover:after{content:\"\";width:28px;height:28px;background:#F2F2FB;border-radius:50%;position:absolute;left:-6px;top:-5px;z-index:-1}\n"]
1463
1474
  },] }
1464
1475
  ];
1465
1476
  CheckboxComponent.ctorParameters = function () { return [
@@ -2755,6 +2766,7 @@
2755
2766
  this.menuService = menuService;
2756
2767
  this.cdr = cdr;
2757
2768
  this.position = 'left';
2769
+ this.wasHovered = false;
2758
2770
  }
2759
2771
  Object.defineProperty(DrDropdownComponent.prototype, "options", {
2760
2772
  set: function (data) {
@@ -2780,6 +2792,9 @@
2780
2792
  enumerable: false,
2781
2793
  configurable: true
2782
2794
  });
2795
+ DrDropdownComponent.prototype.onMouseEnter = function () {
2796
+ this.wasHovered = true;
2797
+ };
2783
2798
  DrDropdownComponent.prototype.onMouseLeave = function () {
2784
2799
  if (this.drDropdownInHover)
2785
2800
  this.menuService.destroy();
@@ -2848,7 +2863,7 @@
2848
2863
  DrDropdownComponent.decorators = [
2849
2864
  { type: i0.Component, args: [{
2850
2865
  selector: 'dr-dropdown',
2851
- template: "<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n",
2866
+ template: "<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n",
2852
2867
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2853
2868
  styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden;transition-delay:.2s}::ng-deep .dr-dropdown__container__item:hover>*>.dr-dropdown{visibility:visible;transition-delay:0s}::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.separate-line{border-top:1px solid #BCBCBC}.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"]
2854
2869
  },] }
@@ -2871,6 +2886,7 @@
2871
2886
  this.el = el;
2872
2887
  this._document = _document;
2873
2888
  this.position = 'left';
2889
+ this.mouseleaveTimeout = 200;
2874
2890
  }
2875
2891
  DrDropdownDirective.prototype.elementHover = function () {
2876
2892
  if (!this.drDropdownInHover)
@@ -2880,6 +2896,17 @@
2880
2896
  DrDropdownDirective.prototype.elementClick = function () {
2881
2897
  this.openDropdown();
2882
2898
  };
2899
+ DrDropdownDirective.prototype.leaveDropdownTriggerElement = function () {
2900
+ var _this = this;
2901
+ if (this.drDropdownInHover) {
2902
+ setTimeout(function (_) {
2903
+ if (_this.contentCmpRef && !_this.contentCmpRef.instance.wasHovered) {
2904
+ _this.contentCmpRef.destroy();
2905
+ _this.contentCmpRef = null;
2906
+ }
2907
+ }, this.mouseleaveTimeout);
2908
+ }
2909
+ };
2883
2910
  DrDropdownDirective.prototype.documentClick = function (e) {
2884
2911
  this.closeDropdown(e);
2885
2912
  };
@@ -2902,13 +2929,17 @@
2902
2929
  }
2903
2930
  };
2904
2931
  DrDropdownDirective.prototype.closeDropdown = function (e) {
2905
- var menuItem = e.target.classList;
2906
- if (menuItem.contains('dr-dropdown__container__item') || menuItem.contains('dr-dropdown__container__item__text')) {
2932
+ if (!this.contentCmpRef) {
2907
2933
  return;
2908
2934
  }
2909
- var elems = this._document.querySelectorAll('dr-dropdown');
2910
- if (!e.target.contains(this.el.nativeElement) && this.contentCmpRef || elems.length && !e.target.contains(this.el.nativeElement)) {
2911
- setTimeout(function () { return elems.forEach(function (item) { return item.remove(); }); }, 100);
2935
+ var clickTarget = e.target;
2936
+ var triggerElement = this.el.nativeElement;
2937
+ var dropdownElement = this.contentCmpRef.location.nativeElement;
2938
+ var isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;
2939
+ var isClickDropdownContents = dropdownElement.contains(clickTarget);
2940
+ if (!isClickTriggerElement && !isClickDropdownContents) {
2941
+ var elems_1 = this._document.querySelectorAll('dr-dropdown');
2942
+ setTimeout(function () { return elems_1.forEach(function (item) { return item.remove(); }); }, 100);
2912
2943
  }
2913
2944
  };
2914
2945
  DrDropdownDirective.prototype.showMenu = function (options) {
@@ -2946,6 +2977,7 @@
2946
2977
  contentCmpRef: [{ type: i0.ViewChild, args: [DrDropdownComponent, { static: true, read: i0.ViewContainerRef },] }],
2947
2978
  elementHover: [{ type: i0.HostListener, args: ['mouseenter',] }],
2948
2979
  elementClick: [{ type: i0.HostListener, args: ['click',] }],
2980
+ leaveDropdownTriggerElement: [{ type: i0.HostListener, args: ['mouseleave',] }],
2949
2981
  documentClick: [{ type: i0.HostListener, args: ['document:mouseup', ['$event'],] }]
2950
2982
  };
2951
2983
 
@@ -3467,6 +3499,7 @@
3467
3499
  DateFromats["YEAR_FORMAT"] = "yyyy";
3468
3500
  DateFromats["MONTH_YEAR_FORMAT"] = "MM/yyyy";
3469
3501
  DateFromats["QUARTER_FORMAT"] = "Q/yyyy";
3502
+ DateFromats["WEEK_FORMAT"] = "W/yyyy";
3470
3503
  })(exports.DateFromats || (exports.DateFromats = {}));
3471
3504
  var CustomDateFormat = /** @class */ (function () {
3472
3505
  function CustomDateFormat() {
@@ -3523,6 +3556,7 @@
3523
3556
  TimeframeOption["DAY"] = "day";
3524
3557
  TimeframeOption["MONTH"] = "month";
3525
3558
  TimeframeOption["QUARTER"] = "quarter";
3559
+ TimeframeOption["WEEK"] = "week";
3526
3560
  TimeframeOption["YEAR"] = "year";
3527
3561
  })(exports.TimeframeOption || (exports.TimeframeOption = {}));
3528
3562
  exports.CalendarView = void 0;
@@ -3631,6 +3665,8 @@
3631
3665
  return exports.TimeframeOption.QUARTER;
3632
3666
  case lowerCaseFormat.includes('d'):
3633
3667
  return exports.TimeframeOption.DAY;
3668
+ case lowerCaseFormat.includes('w'):
3669
+ return exports.TimeframeOption.WEEK;
3634
3670
  case lowerCaseFormat.includes('m'):
3635
3671
  return exports.TimeframeOption.MONTH;
3636
3672
  case lowerCaseFormat.includes('y'):
@@ -3648,15 +3684,31 @@
3648
3684
  this.timeframe = exports.TimeframeOption.DAY;
3649
3685
  this.format$ = new rxjs.BehaviorSubject(exports.DateFromats.MAT_DEFAULT_DATE_FORMAT);
3650
3686
  this.updatedQuarter$ = new rxjs.Subject();
3687
+ this.availableTimeframes = [
3688
+ exports.TimeframeOption.DAY,
3689
+ exports.TimeframeOption.WEEK,
3690
+ exports.TimeframeOption.MONTH,
3691
+ exports.TimeframeOption.QUARTER,
3692
+ exports.TimeframeOption.YEAR
3693
+ ];
3651
3694
  this.formatConfig = {
3652
3695
  day: exports.DateFromats.MAT_DEFAULT_DATE_FORMAT,
3653
3696
  month: exports.DateFromats.MONTH_YEAR_FORMAT,
3654
3697
  year: exports.DateFromats.YEAR_FORMAT,
3655
3698
  quarter: exports.DateFromats.QUARTER_FORMAT,
3699
+ week: exports.DateFromats.WEEK_FORMAT
3656
3700
  };
3657
3701
  }
3658
- DrDatePickerService.prototype.getQuarterDisplay = function (value) {
3659
- return 'Q' + value.quarter() + this.format$.getValue().charAt(1) + value.year();
3702
+ DrDatePickerService.prototype.getDisplayPrefix = function () {
3703
+ var formatCached = this.format$.getValue();
3704
+ switch (true) {
3705
+ case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('Q'):
3706
+ return 'Q';
3707
+ case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('W'):
3708
+ return 'W';
3709
+ default:
3710
+ return '';
3711
+ }
3660
3712
  };
3661
3713
  DrDatePickerService.prototype.getTimeframe = function (format) {
3662
3714
  return DrSharedUtils.getTimeframeByDateFormat(format);
@@ -3692,6 +3744,7 @@
3692
3744
  this.quarters = [1, 2, 3, 4];
3693
3745
  this.selectedQuarter = 1;
3694
3746
  this.timeframeOptions = [{
3747
+ timeframe: exports.TimeframeOption.DAY,
3695
3748
  title: 'Day',
3696
3749
  value: exports.CalendarView.FOR_DAYS,
3697
3750
  format: this.datePickerService.formatConfig.day,
@@ -3699,16 +3752,27 @@
3699
3752
  .format(_this._calendar.activeDate, _this._dateFormats.display.monthYearLabel)
3700
3753
  .toLocaleUpperCase(); }
3701
3754
  }, {
3755
+ timeframe: exports.TimeframeOption.WEEK,
3756
+ title: 'Week',
3757
+ value: exports.CalendarView.FOR_DAYS,
3758
+ format: this.datePickerService.formatConfig.week,
3759
+ periodLabel: function () { return _this._dateAdapter
3760
+ .format(_this._calendar.activeDate, _this._dateFormats.display.monthYearLabel)
3761
+ .toLocaleUpperCase(); }
3762
+ }, {
3763
+ timeframe: exports.TimeframeOption.MONTH,
3702
3764
  title: 'Month',
3703
3765
  value: exports.CalendarView.FOR_MONTHS,
3704
3766
  format: this.datePickerService.formatConfig.month,
3705
3767
  periodLabel: function () { return String(moment$1(_this._calendar.activeDate).year()); }
3706
3768
  }, {
3769
+ timeframe: exports.TimeframeOption.QUARTER,
3707
3770
  title: 'Quarter',
3708
3771
  value: exports.CalendarView.FOR_QUARTERS,
3709
3772
  format: this.datePickerService.formatConfig.quarter,
3710
3773
  periodLabel: function () { return String(moment$1(_this._calendar.activeDate).year()); }
3711
3774
  }, {
3775
+ timeframe: exports.TimeframeOption.YEAR,
3712
3776
  title: 'Year',
3713
3777
  value: exports.CalendarView.FOR_YEARS,
3714
3778
  format: this.datePickerService.formatConfig.year,
@@ -3736,6 +3800,9 @@
3736
3800
  _this.selectedTimeframe = _this.timeframeOptions.filter(function (option) { return option.format == value; })[0].value;
3737
3801
  _calendar.currentView = _this.selectedTimeframe;
3738
3802
  _this.setPeriodLabels();
3803
+ if (_this.selectedTimeframe === exports.CalendarView.FOR_QUARTERS) {
3804
+ _this.selectedQuarter = moment$1(_this._calendar.activeDate).quarter();
3805
+ }
3739
3806
  });
3740
3807
  _calendar.viewChanged.pipe(operators.takeUntil(this._destroyed)).subscribe(function () { return _this.setPeriodLabels(); });
3741
3808
  }
@@ -3747,7 +3814,7 @@
3747
3814
  var _this = this;
3748
3815
  var currentTimeframeOption = this.timeframeOptions.filter(function (option) { return option.value === _this._calendar.currentView; })[0];
3749
3816
  var fullPeriodLabel = currentTimeframeOption.periodLabel();
3750
- if (this._calendar.currentView === 'month') {
3817
+ if (this._calendar.currentView === exports.CalendarView.FOR_DAYS) {
3751
3818
  this.periodMonthLabel = fullPeriodLabel.slice(0, 3);
3752
3819
  this.periodYearLabel = fullPeriodLabel.slice(4);
3753
3820
  }
@@ -3797,7 +3864,7 @@
3797
3864
  DrDatePickerCustomHeaderComponent.decorators = [
3798
3865
  { type: i0.Component, args: [{
3799
3866
  selector: 'dr-date-picker_custom-header.component',
3800
- template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [(ngModel)]=\"selectedTimeframe\"\n [items]=\"timeframeOptions\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe()\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{periodMonthLabel + ' '}}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{periodYearLabel}}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
3867
+ template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [(ngModel)]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe()\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{periodMonthLabel + ' '}}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{periodYearLabel}}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
3801
3868
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
3802
3869
  styles: [":host{height:54px;align-items:center;font-family:\"Poppins\";font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 8px;grid-gap:4px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#F2F2FB;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#F2F2FB;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}\n"]
3803
3870
  },] }
@@ -3975,7 +4042,7 @@
3975
4042
  var DrDatePickerWithTimeframeComponent = /** @class */ (function (_super) {
3976
4043
  __extends(DrDatePickerWithTimeframeComponent, _super);
3977
4044
  function DrDatePickerWithTimeframeComponent(cdr, dateAdapter, datePickerService) {
3978
- var _b;
4045
+ var _a;
3979
4046
  var _this = _super.call(this, cdr, dateAdapter, datePickerService) || this;
3980
4047
  _this.cdr = cdr;
3981
4048
  _this.dateAdapter = dateAdapter;
@@ -3983,12 +4050,13 @@
3983
4050
  _this.isDashboardDatepicker = false;
3984
4051
  _this.canSelectTimeframe = true;
3985
4052
  _this.onChangeFormat = new i0.EventEmitter();
3986
- _this.pagingSetup = (_b = {},
3987
- _b[exports.TimeframeOption.YEAR] = function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
3988
- _b[exports.TimeframeOption.QUARTER] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 3, forward); },
3989
- _b[exports.TimeframeOption.MONTH] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
3990
- _b[exports.TimeframeOption.DAY] = function (forward) { return _this.pagingDateChange('addCalendarDays', 1, forward); },
3991
- _b);
4053
+ _this.pagingSetup = (_a = {},
4054
+ _a[exports.TimeframeOption.YEAR] = function (forward) { return _this.pagingDateChange('addCalendarYears', 1, forward); },
4055
+ _a[exports.TimeframeOption.QUARTER] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 3, forward); },
4056
+ _a[exports.TimeframeOption.MONTH] = function (forward) { return _this.pagingDateChange('addCalendarMonths', 1, forward); },
4057
+ _a[exports.TimeframeOption.DAY] = function (forward) { return _this.pagingDateChange('addCalendarDays', 1, forward); },
4058
+ _a[exports.TimeframeOption.WEEK] = function (forward) { return _this.pagingDateChange('addCalendarDays', 7, forward); },
4059
+ _a);
3992
4060
  datePickerService.isTimeframeSelectionEnabled = true;
3993
4061
  datePickerService.format$
3994
4062
  .pipe(operators.takeUntil(_this.destroyed$))
@@ -4015,23 +4083,27 @@
4015
4083
  enumerable: false,
4016
4084
  configurable: true
4017
4085
  });
4086
+ Object.defineProperty(DrDatePickerWithTimeframeComponent.prototype, "availableTimeframes", {
4087
+ set: function (value) {
4088
+ if (value && value.length) {
4089
+ this.datePickerService.availableTimeframes = value;
4090
+ }
4091
+ },
4092
+ enumerable: false,
4093
+ configurable: true
4094
+ });
4018
4095
  Object.defineProperty(DrDatePickerWithTimeframeComponent.prototype, "displayedFormattedValue", {
4019
4096
  get: function () {
4020
- var _a;
4021
4097
  if (!this.value) {
4022
4098
  return this.placeholder;
4023
4099
  }
4024
- return ((_a = this.datePickerService.format$.getValue()) === null || _a === void 0 ? void 0 : _a.includes('Q'))
4025
- ? this.datePickerService.getQuarterDisplay(this.value)
4026
- : this.value.format(this.datePickerService.format$.getValue());
4100
+ var formatCached = this.datePickerService.format$.getValue();
4101
+ return this.datePickerService.getDisplayPrefix() + this.value.format(formatCached);
4027
4102
  },
4028
4103
  enumerable: false,
4029
4104
  configurable: true
4030
4105
  });
4031
4106
  DrDatePickerWithTimeframeComponent.prototype.ngOnInit = function () {
4032
- if (this.dateFormatConfig) {
4033
- this.datePickerService.formatConfig = Object.assign(Object.assign({}, this.datePickerService.formatConfig), this.dateFormatConfig);
4034
- }
4035
4107
  this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;
4036
4108
  this.cdr.markForCheck();
4037
4109
  };
@@ -4067,6 +4139,7 @@
4067
4139
  isDashboardDatepicker: [{ type: i0.Input }],
4068
4140
  dateFormatConfig: [{ type: i0.Input }],
4069
4141
  canSelectTimeframe: [{ type: i0.Input }],
4142
+ availableTimeframes: [{ type: i0.Input }],
4070
4143
  onChangeFormat: [{ type: i0.Output }]
4071
4144
  };
4072
4145
 
@@ -4117,6 +4190,20 @@
4117
4190
  datePickerFormat: [{ type: i0.Input, args: ['drDatePickerFormat',] }]
4118
4191
  };
4119
4192
 
4193
+ var DrShowTimeframePipe = /** @class */ (function () {
4194
+ function DrShowTimeframePipe() {
4195
+ }
4196
+ DrShowTimeframePipe.prototype.transform = function (arr, showOptions) {
4197
+ return arr.filter(function (item) { return showOptions.includes(item.timeframe); });
4198
+ };
4199
+ return DrShowTimeframePipe;
4200
+ }());
4201
+ DrShowTimeframePipe.decorators = [
4202
+ { type: i0.Pipe, args: [{
4203
+ name: 'drShowTimeframePipe'
4204
+ },] }
4205
+ ];
4206
+
4120
4207
  // !!! Please do not use such approach in other places
4121
4208
  // Hard fix for 'none' calendar view selection
4122
4209
  datepicker.MatCalendar.prototype.focusActiveCell = function () {
@@ -4136,7 +4223,8 @@
4136
4223
  DrDatePickerWithTimeframeComponent,
4137
4224
  DrDatePickerFormatDirective,
4138
4225
  DrDatePickerCustomHeaderComponent,
4139
- DrModelDebounceChangeDirective
4226
+ DrModelDebounceChangeDirective,
4227
+ DrShowTimeframePipe
4140
4228
  ];
4141
4229
  var DrInputsModule = /** @class */ (function () {
4142
4230
  function DrInputsModule() {
@@ -4382,6 +4470,7 @@
4382
4470
  exports["ɵe"] = DrDatePickerWithTimeframeComponent;
4383
4471
  exports["ɵf"] = DrDatePickerFormatDirective;
4384
4472
  exports["ɵg"] = DrDatePickerCustomHeaderComponent;
4473
+ exports["ɵh"] = DrShowTimeframePipe;
4385
4474
 
4386
4475
  Object.defineProperty(exports, '__esModule', { value: true });
4387
4476