@datarailsshared/datarailsshared 1.3.5 → 1.3.8

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 (58) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +1100 -288
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.3.8.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +2 -0
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +3 -1
  7. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +3 -2
  8. package/esm2015/lib/dr-avatar/dr-avatar.component.js +3 -2
  9. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -0
  10. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +83 -0
  11. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +87 -0
  12. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +73 -0
  13. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -0
  14. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -0
  15. package/esm2015/lib/dr-inputs/button/button.component.js +48 -0
  16. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +8 -3
  17. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -0
  18. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +119 -0
  19. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +8 -3
  20. package/esm2015/lib/dr-inputs/dr-inputs.module.js +12 -5
  21. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +9 -4
  22. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +1 -1
  23. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +9 -4
  24. package/esm2015/lib/dr-popover/dr-popover.component.js +61 -0
  25. package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -0
  26. package/esm2015/lib/dr-popover/dr-popover.module.js +23 -0
  27. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +6 -13
  28. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +43 -97
  29. package/esm2015/lib/models/constants.js +97 -0
  30. package/esm2015/lib/models/datePicker.js +37 -0
  31. package/esm2015/lib/models/dropdown.js +2 -0
  32. package/esm2015/public-api.js +36 -23
  33. package/fesm2015/datarailsshared-datarailsshared.js +871 -132
  34. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  35. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -0
  36. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +11 -0
  37. package/lib/dr-dropdown/dr-dropdown.component.d.ts +21 -0
  38. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +18 -0
  39. package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -0
  40. package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -0
  41. package/lib/dr-inputs/button/button.component.d.ts +14 -0
  42. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +3 -1
  43. package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -0
  44. package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +28 -0
  45. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +4 -0
  46. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +1 -0
  47. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
  48. package/lib/dr-popover/dr-popover.component.d.ts +16 -0
  49. package/lib/dr-popover/dr-popover.directive.d.ts +20 -0
  50. package/lib/dr-popover/dr-popover.module.d.ts +2 -0
  51. package/lib/dr-tooltip/dr-tooltip.component.d.ts +1 -0
  52. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +7 -4
  53. package/lib/models/constants.d.ts +87 -0
  54. package/lib/models/datePicker.d.ts +21 -0
  55. package/lib/models/dropdown.d.ts +43 -0
  56. package/package.json +1 -1
  57. package/public-api.d.ts +36 -23
  58. package/datarailsshared-datarailsshared-1.3.5.tgz +0 -0
@@ -1,12 +1,14 @@
1
- import { EventEmitter, Component, ViewEncapsulation, Input, Output, ChangeDetectionStrategy, forwardRef, ElementRef, Renderer2, ChangeDetectorRef, ContentChild, HostBinding, TemplateRef, Directive, HostListener, ComponentFactoryResolver, ViewContainerRef, Inject, ViewChild, NgModule } from '@angular/core';
2
- import { FormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ViewEncapsulation, Input, Output, ChangeDetectionStrategy, ChangeDetectorRef, forwardRef, ElementRef, Renderer2, ContentChild, HostBinding, TemplateRef, Directive, HostListener, ComponentFactoryResolver, ViewContainerRef, Inject, ViewChild, Optional, Injectable, Pipe, NgModule } from '@angular/core';
3
+ import { FormControl, NG_VALUE_ACCESSOR, NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
4
  import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatNativeDateModule } from '@angular/material/core';
4
5
  import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';
5
6
  import * as momentImported from 'moment';
6
- import { trigger, transition, style, animate } from '@angular/animations';
7
+ import { transition, style, animate, trigger } from '@angular/animations';
7
8
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
8
9
  import { ComponentPortal } from '@angular/cdk/portal';
9
10
  import { DOCUMENT, CommonModule } from '@angular/common';
11
+ import { Subject } from 'rxjs';
10
12
  import { MatDatepickerModule } from '@angular/material/datepicker';
11
13
  import { MatFormFieldModule } from '@angular/material/form-field';
12
14
  import { MatInputModule } from '@angular/material/input';
@@ -238,7 +240,7 @@ const MONTH_FORMATS = {
238
240
  monthYearA11yLabel: "MMMM YYYY"
239
241
  },
240
242
  };
241
- const ɵ0$4 = MONTH_FORMATS;
243
+ const ɵ0$5 = MONTH_FORMATS;
242
244
  class MonthTagComponent extends AnyTagComponent {
243
245
  constructor() {
244
246
  super();
@@ -297,7 +299,7 @@ MonthTagComponent.decorators = [
297
299
  useClass: MomentDateAdapter,
298
300
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
299
301
  },
300
- { provide: MAT_DATE_FORMATS, useValue: ɵ0$4 },
302
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$5 },
301
303
  ]
302
304
  },] }
303
305
  ];
@@ -418,7 +420,7 @@ const WEEK_FORMATS = {
418
420
  monthYearA11yLabel: "MMMM YYYY"
419
421
  },
420
422
  };
421
- const ɵ0$3 = WEEK_FORMATS;
423
+ const ɵ0$4 = WEEK_FORMATS;
422
424
  class WeekTagComponent extends AnyTagComponent {
423
425
  constructor() {
424
426
  super();
@@ -514,7 +516,7 @@ WeekTagComponent.decorators = [
514
516
  useClass: MomentDateAdapter,
515
517
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
516
518
  },
517
- { provide: MAT_DATE_FORMATS, useValue: ɵ0$3 },
519
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$4 },
518
520
  ]
519
521
  },] }
520
522
  ];
@@ -536,7 +538,7 @@ const YEAR_FORMATS = {
536
538
  monthYearA11yLabel: "MMMM YYYY"
537
539
  },
538
540
  };
539
- const ɵ0$2 = YEAR_FORMATS;
541
+ const ɵ0$3 = YEAR_FORMATS;
540
542
  class YearTagComponent extends AnyTagComponent {
541
543
  constructor() {
542
544
  super();
@@ -600,7 +602,7 @@ YearTagComponent.decorators = [
600
602
  useClass: MomentDateAdapter,
601
603
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
602
604
  },
603
- { provide: MAT_DATE_FORMATS, useValue: ɵ0$2 },
605
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$3 },
604
606
  ]
605
607
  },] }
606
608
  ];
@@ -714,7 +716,7 @@ const DAY_FORMATS = {
714
716
  monthYearA11yLabel: "MMMM YYYY"
715
717
  },
716
718
  };
717
- const ɵ0$1 = DAY_FORMATS;
719
+ const ɵ0$2 = DAY_FORMATS;
718
720
  class DayTagComponent extends AnyTagComponent {
719
721
  constructor() {
720
722
  super();
@@ -733,7 +735,8 @@ class DayTagComponent extends AnyTagComponent {
733
735
  const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;
734
736
  this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);
735
737
  if (this.defaultValue) {
736
- this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY-MM-DD");
738
+ this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();
739
+ this.date.setValue(this.dateObj.date);
737
740
  }
738
741
  }
739
742
  initName() {
@@ -766,7 +769,7 @@ DayTagComponent.decorators = [
766
769
  useClass: MomentDateAdapter,
767
770
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
768
771
  },
769
- { provide: MAT_DATE_FORMATS, useValue: ɵ0$1 },
772
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$2 },
770
773
  ]
771
774
  },] }
772
775
  ];
@@ -776,7 +779,8 @@ DayTagComponent.propDecorators = {
776
779
  };
777
780
 
778
781
  class RadioButtonComponent {
779
- constructor() {
782
+ constructor(cdr) {
783
+ this.cdr = cdr;
780
784
  this.onChange = (onchanges => { });
781
785
  this.onTouched = () => { };
782
786
  }
@@ -791,6 +795,7 @@ class RadioButtonComponent {
791
795
  }
792
796
  writeValue(value) {
793
797
  this.modelValue = value;
798
+ this.cdr.markForCheck();
794
799
  }
795
800
  toggleChange(event) {
796
801
  if (event.target.checked) {
@@ -814,9 +819,12 @@ RadioButtonComponent.decorators = [
814
819
  ],
815
820
  changeDetection: ChangeDetectionStrategy.OnPush,
816
821
  encapsulation: ViewEncapsulation.ShadowDom,
817
- styles: ["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:12px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;height:12px;line-height:12px;min-width:12px;margin-right:5px;border:1px solid #C3C4CE;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:white;border-color:#579bf2;color:#579bf2}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;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=\"%23579BF2\"/></svg> ');color:#579bf2}label input:disabled+span:before{border-color:#bcbcbc}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=\"%23BCBCBC\"/></svg> ');border-color:#bcbcbc}label span:hover:before{border-color:#85889c}\n"]
822
+ styles: ["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;min-width:12px;margin-right:5px;border:1px solid #C3C4CE;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:white;border-color:#579bf2;color:#579bf2}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;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=\"%23579BF2\"/></svg> ');color:#579bf2}label input:disabled+span:before{border-color:#bcbcbc}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=\"%23BCBCBC\"/></svg> ');border-color:#bcbcbc}label span:hover:before{border-color:#85889c}\n"]
818
823
  },] }
819
824
  ];
825
+ RadioButtonComponent.ctorParameters = () => [
826
+ { type: ChangeDetectorRef }
827
+ ];
820
828
  RadioButtonComponent.propDecorators = {
821
829
  disabled: [{ type: Input }],
822
830
  name: [{ type: Input }],
@@ -824,7 +832,8 @@ RadioButtonComponent.propDecorators = {
824
832
  };
825
833
 
826
834
  class CheckboxComponent {
827
- constructor() {
835
+ constructor(cdr) {
836
+ this.cdr = cdr;
828
837
  this.disabled = false;
829
838
  this.checkedChange = new EventEmitter();
830
839
  this.onChange = () => { };
@@ -832,6 +841,7 @@ class CheckboxComponent {
832
841
  }
833
842
  writeValue(value) {
834
843
  this.checkedStatus = value;
844
+ this.cdr.markForCheck();
835
845
  }
836
846
  registerOnChange(fn) {
837
847
  this.onChange = fn;
@@ -861,6 +871,9 @@ CheckboxComponent.decorators = [
861
871
  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}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 #85889C;background-color:#f4f4f4;font-weight:normal;margin-top:-1px}label input+span:before,label:hover input+span:before{background-color:#fff;border-color:#85889c;color:#579bf2;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:#579BF2;border-color:#579bf2;color:#fff}label input:disabled+span:before{border-color:#bcbcbc;pointer-events:none}label input[disabled]:checked+span:before{background:#BCBCBC;border-color:#bcbcbc;pointer-events:none}label input:not([disabled])+span:hover:after{content:\"\";width:28px;height:28px;background:#F6F7F8;border-radius:50%;position:absolute;left:-6px;top:-5px;z-index:-1}\n"]
862
872
  },] }
863
873
  ];
874
+ CheckboxComponent.ctorParameters = () => [
875
+ { type: ChangeDetectorRef }
876
+ ];
864
877
  CheckboxComponent.propDecorators = {
865
878
  checkedStatus: [{ type: Input }],
866
879
  disabled: [{ type: Input }],
@@ -888,6 +901,8 @@ class DrInputComponent {
888
901
  this.placeholder = '';
889
902
  this.readonly = false;
890
903
  this.clearable = false;
904
+ this.min = null;
905
+ this.max = null;
891
906
  this.searchHandler = new EventEmitter();
892
907
  this.buttonHandler = new EventEmitter();
893
908
  this.tabindex = -1;
@@ -982,14 +997,14 @@ class DrInputComponent {
982
997
  DrInputComponent.decorators = [
983
998
  { type: Component, args: [{
984
999
  selector: 'dr-input',
985
- template: "<ng-content select=\"[prefixIcon]\"></ng-content>\r\n<input [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n (blur)=\"onTouched()\"\r\n [disabled]=\"_disabled\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\">\r\n<span class=\"clear-icon\" (click)=\"writeValue(null)\"></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",
1000
+ template: "<ng-content select=\"[prefixIcon]\"></ng-content>\r\n<input [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n (blur)=\"onTouched()\"\r\n [disabled]=\"_disabled\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [matDatepicker]=\"matDatePicker\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n>\r\n<span class=\"clear-icon\" (click)=\"writeValue(null)\"></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",
986
1001
  providers: [{
987
1002
  provide: NG_VALUE_ACCESSOR,
988
1003
  useExisting: forwardRef(() => DrInputComponent),
989
1004
  multi: true
990
1005
  }],
991
1006
  changeDetection: ChangeDetectionStrategy.OnPush,
992
- styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Nunito Sans\",sans-serif;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;padding:0 8px;overflow:hidden}: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 input{display:flex;flex-grow:1;height:100%;border:none;padding:4px 0;text-align:left}: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 .clear-icon{visibility:hidden}:host.clearable .clear-icon,:host.ng-touched.ng-invalid .clear-icon{visibility:visible;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.91783 5.00001L9.03353 1.88395C9.11924 1.79818 9.16651 1.68374 9.16665 1.56171C9.16665 1.43962 9.11937 1.32504 9.03353 1.2394L8.76047 0.966415C8.67463 0.880433 8.56023 0.833344 8.43808 0.833344C8.31612 0.833344 8.20166 0.880433 8.11582 0.966415L5.00013 4.08227L1.88428 0.966415C1.79858 0.880433 1.68404 0.833344 1.56196 0.833344C1.44001 0.833344 1.32556 0.880433 1.23985 0.966415L0.966646 1.2394C0.788869 1.41719 0.788869 1.70637 0.966646 1.88395L4.08242 5.00001L0.966646 8.11593C0.880873 8.20184 0.833677 8.31628 0.833677 8.43831C0.833677 8.56034 0.880873 8.67478 0.966646 8.76062L1.23978 9.03361C1.32548 9.11952 1.44 9.16668 1.56188 9.16668C1.68397 9.16668 1.7985 9.11952 1.88421 9.03361L5.00005 5.91769L8.11575 9.03361C8.20159 9.11952 8.31605 9.16668 8.438 9.16668H8.43815C8.56017 9.16668 8.67456 9.11952 8.7604 9.03361L9.03346 8.76062C9.11916 8.67484 9.16643 8.56034 9.16643 8.43831C9.16643 8.31628 9.11916 8.20184 9.03346 8.116L5.91783 5.00001Z\" fill=\"%2351566F\"/></svg> ');margin:auto 8px;cursor:pointer}:host span+span,:host span+img{margin-left:0}:host.search-type{padding:0 16px;border-radius:16px}:host.search-type.ng-valid{border-color:#c3c4ce}:host.search-type .search-icon{content:url('data:image/svg+xml; utf8, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.5816 10.2097C11.4878 10.1157 11.3605 10.0629 11.2277 10.0629H10.8175C10.7473 10.0629 10.6799 10.035 10.6303 9.98534C10.5322 9.88724 10.527 9.73044 10.6132 9.62178C11.4154 8.6112 11.8925 7.33534 11.8925 5.94625C11.8925 2.66209 9.23042 0 5.94625 0C2.66209 0 0 2.66209 0 5.94625C0 9.23042 2.66209 11.8925 5.94625 11.8925C7.33523 11.8925 8.611 11.4155 9.62155 10.6172C9.7304 10.5312 9.88711 10.5366 9.9852 10.6347C10.0349 10.6845 10.0629 10.7519 10.0629 10.8223V11.2277C10.0629 11.3605 10.1157 11.4878 10.2097 11.5816L14.2834 15.6472C14.4787 15.8421 14.795 15.8419 14.9901 15.6468L15.6468 14.9901C15.8419 14.795 15.8421 14.4787 15.6472 14.2834L11.5816 10.2097ZM5.94625 10.0629C3.67296 10.0629 1.82962 8.21955 1.82962 5.94625C1.82962 3.67296 3.67296 1.82962 5.94625 1.82962C8.21955 1.82962 10.0629 3.67296 10.0629 5.94625C10.0629 8.21955 8.21955 10.0629 5.94625 10.0629Z\" fill=\"%23BCBCBC\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host.with-button{padding-right:0}:host.with-button button{color:#0061ff;background:#F6F7F8;height:100%;width:auto;padding:0 8px;display:flex;align-items:center;border:none;border-left:1px solid #C3C4CE}:host ::ng-deep img[prefixIcon],:host ::ng-deep img[suffixIcon],:host ::ng-deep i[prefixIcon],:host ::ng-deep i[suffixIcon]{position:relative;margin:auto 8px}:host ::ng-deep img[prefixIcon],:host ::ng-deep i[prefixIcon]{margin-left:0}:host ::ng-deep img[suffixIcon],:host ::ng-deep i[suffixIcon]{margin-right:0}\n"]
1007
+ styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Nunito Sans\",sans-serif;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;padding:0 8px;overflow:hidden}: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 input{display:flex;flex-grow:1;height:100%;border:none;padding:4px 0;text-align:left}: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 .clear-icon{visibility:hidden}:host.clearable .clear-icon,:host.ng-touched.ng-invalid .clear-icon{visibility:visible;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.91783 5.00001L9.03353 1.88395C9.11924 1.79818 9.16651 1.68374 9.16665 1.56171C9.16665 1.43962 9.11937 1.32504 9.03353 1.2394L8.76047 0.966415C8.67463 0.880433 8.56023 0.833344 8.43808 0.833344C8.31612 0.833344 8.20166 0.880433 8.11582 0.966415L5.00013 4.08227L1.88428 0.966415C1.79858 0.880433 1.68404 0.833344 1.56196 0.833344C1.44001 0.833344 1.32556 0.880433 1.23985 0.966415L0.966646 1.2394C0.788869 1.41719 0.788869 1.70637 0.966646 1.88395L4.08242 5.00001L0.966646 8.11593C0.880873 8.20184 0.833677 8.31628 0.833677 8.43831C0.833677 8.56034 0.880873 8.67478 0.966646 8.76062L1.23978 9.03361C1.32548 9.11952 1.44 9.16668 1.56188 9.16668C1.68397 9.16668 1.7985 9.11952 1.88421 9.03361L5.00005 5.91769L8.11575 9.03361C8.20159 9.11952 8.31605 9.16668 8.438 9.16668H8.43815C8.56017 9.16668 8.67456 9.11952 8.7604 9.03361L9.03346 8.76062C9.11916 8.67484 9.16643 8.56034 9.16643 8.43831C9.16643 8.31628 9.11916 8.20184 9.03346 8.116L5.91783 5.00001Z\" fill=\"%2351566F\"/></svg> ');margin:auto 8px;cursor:pointer}:host span+span,:host span+img{margin-left:0}:host.search-type{padding:0 16px;border-radius:16px}:host.search-type.ng-valid{border-color:#c3c4ce}:host.search-type .search-icon{content:url('data:image/svg+xml; utf8, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.5816 10.2097C11.4878 10.1157 11.3605 10.0629 11.2277 10.0629H10.8175C10.7473 10.0629 10.6799 10.035 10.6303 9.98534C10.5322 9.88724 10.527 9.73044 10.6132 9.62178C11.4154 8.6112 11.8925 7.33534 11.8925 5.94625C11.8925 2.66209 9.23042 0 5.94625 0C2.66209 0 0 2.66209 0 5.94625C0 9.23042 2.66209 11.8925 5.94625 11.8925C7.33523 11.8925 8.611 11.4155 9.62155 10.6172C9.7304 10.5312 9.88711 10.5366 9.9852 10.6347C10.0349 10.6845 10.0629 10.7519 10.0629 10.8223V11.2277C10.0629 11.3605 10.1157 11.4878 10.2097 11.5816L14.2834 15.6472C14.4787 15.8421 14.795 15.8419 14.9901 15.6468L15.6468 14.9901C15.8419 14.795 15.8421 14.4787 15.6472 14.2834L11.5816 10.2097ZM5.94625 10.0629C3.67296 10.0629 1.82962 8.21955 1.82962 5.94625C1.82962 3.67296 3.67296 1.82962 5.94625 1.82962C8.21955 1.82962 10.0629 3.67296 10.0629 5.94625C10.0629 8.21955 8.21955 10.0629 5.94625 10.0629Z\" fill=\"%23BCBCBC\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host.with-button{padding-right:0}:host.with-button button{color:#0061ff;background:#F6F7F8;height:100%;width:auto;padding:0 8px;display:flex;align-items:center;border:none;border-left:1px solid #C3C4CE}:host ::ng-deep img[prefixIcon],:host ::ng-deep img[suffixIcon],:host ::ng-deep i[prefixIcon],:host ::ng-deep i[suffixIcon]{position:relative;margin:auto 8px}:host ::ng-deep img[prefixIcon],:host ::ng-deep i[prefixIcon]{margin-left:0}:host ::ng-deep img[suffixIcon],:host ::ng-deep i[suffixIcon]{margin-right:0}\n"]
993
1008
  },] }
994
1009
  ];
995
1010
  DrInputComponent.ctorParameters = () => [
@@ -1002,6 +1017,9 @@ DrInputComponent.propDecorators = {
1002
1017
  placeholder: [{ type: Input }],
1003
1018
  readonly: [{ type: Input }],
1004
1019
  clearable: [{ type: Input }],
1020
+ min: [{ type: Input }],
1021
+ max: [{ type: Input }],
1022
+ matDatePicker: [{ type: Input }],
1005
1023
  disabled: [{ type: Input }],
1006
1024
  buttonOptions: [{ type: Input }],
1007
1025
  searchHandler: [{ type: Output }],
@@ -1017,6 +1035,7 @@ class DrSelectComponent {
1017
1035
  this.items = [];
1018
1036
  this.appendTo = 'body';
1019
1037
  this.disabled = false;
1038
+ this.keyDownFn = () => true;
1020
1039
  this.onChange = () => { };
1021
1040
  this.onTouched = () => { };
1022
1041
  }
@@ -1026,6 +1045,9 @@ class DrSelectComponent {
1026
1045
  }
1027
1046
  registerOnChange(fn) {
1028
1047
  this.onChange = fn;
1048
+ if (fn && this.selectedItem) {
1049
+ this.onChange(this.selectedItem);
1050
+ }
1029
1051
  }
1030
1052
  registerOnTouched(fn) {
1031
1053
  this.onTouched = fn;
@@ -1037,13 +1059,13 @@ class DrSelectComponent {
1037
1059
  DrSelectComponent.decorators = [
1038
1060
  { type: Component, args: [{
1039
1061
  selector: 'dr-select',
1040
- 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)=\"onChange($event)\"\r\n class=\"dr-select\">\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-select>\r\n",
1062
+ 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)=\"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-select>\r\n",
1041
1063
  providers: [{
1042
1064
  provide: NG_VALUE_ACCESSOR,
1043
1065
  useExisting: DrSelectComponent,
1044
1066
  multi: true
1045
1067
  }],
1046
- styles: [":host{width:100%;height:32px}: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}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-value{line-height:1}: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 .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{display:flex;align-items:center;height:36px;padding:0 12px}::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"]
1068
+ styles: [":host{width:100%;height:32px}: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}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-value{line-height:1}: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}: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:10px 12px}::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"]
1047
1069
  },] }
1048
1070
  ];
1049
1071
  DrSelectComponent.propDecorators = {
@@ -1066,7 +1088,8 @@ DrSelectComponent.propDecorators = {
1066
1088
  keyDownFn: [{ type: Input }],
1067
1089
  selectedItem: [{ type: Input }],
1068
1090
  labelTemplate: [{ type: ContentChild, args: ['labelTemplate',] }],
1069
- optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }]
1091
+ optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }],
1092
+ optionHeaderTemplate: [{ type: ContentChild, args: ['optionHeaderTemplate',] }]
1070
1093
  };
1071
1094
 
1072
1095
  class DrAvatarComponent {
@@ -1088,6 +1111,7 @@ class DrAvatarComponent {
1088
1111
  if (this.users.length > 2) {
1089
1112
  return this.users.slice(2, this.users.length - 1);
1090
1113
  }
1114
+ return [];
1091
1115
  }
1092
1116
  getRandomValue(limit) {
1093
1117
  return ~~(limit * Math.random());
@@ -1098,7 +1122,7 @@ DrAvatarComponent.decorators = [
1098
1122
  selector: 'dr-avatar',
1099
1123
  template: "<div class=\"users-section\">\r\n <div class=\"users-section__user\"\r\n [class]=\"user.class\"\r\n *ngFor=\"let user of getFirstUsers()\"\r\n (click)=\"userClicked.emit()\"\r\n [matTooltip]=\"user.first_name + ' ' + user.last_name\"\r\n [matTooltipPosition]=\"'below'\">\r\n {{user.first_name[0] + user.last_name[0]}}\r\n </div>\r\n\r\n <div class=\"users-section__user icon-2\" *ngIf=\"users.length > 2\"\r\n [drTooltip]=\"usersTemplate\"\r\n [drTooltipPosition]=\"'bottom'\">\r\n {{getLastUsers().length}}\r\n </div>\r\n</div>\r\n\r\n<ng-template #usersTemplate>\r\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\r\n <div class=\"users-section__user\"\r\n (click)=\"userClicked.emit()\"\r\n [class]=\"user.class\">\r\n {{user.first_name[0] + user.last_name[0]}}\r\n </div>\r\n <span class=\"username\">\r\n {{user.first_name + ' ' + user.last_name}}\r\n </span>\r\n </div>\r\n</ng-template>\r\n",
1100
1124
  changeDetection: ChangeDetectionStrategy.OnPush,
1101
- styles: [":host{width:627px}.users-section{display:flex;position:absolute;height:28px;top:5px}.users-popover-item{display:flex;align-items:center;margin:12px}.users-popover-item .username{color:#51566f;font-size:14px}.users-popover-item .users-section__user{margin-right:8px}.users-section__user{display:flex;justify-content:center;align-items:center;height:28px;width:28px;border-radius:14px;background:red;color:#fff;font-size:12px}.users-section__user.icon-0{background-color:#7b61ff}.users-section__user.icon-1{background-color:#21b8f1}.users-section__user.icon-2{background-color:#2969b0}.users-section__user.icon-3{background-color:#51566f}.users-section__user.icon-4{background-color:#0061ff}.users-section__user:hover{cursor:pointer}.users-section__user:not(:first-child){margin-left:4px}\n"]
1125
+ styles: [":host{width:auto}.users-section{display:flex;position:absolute;height:28px;top:5px}.users-popover-item{display:flex;align-items:center;margin:12px}.users-popover-item .username{color:#51566f;font-size:14px}.users-popover-item .users-section__user{margin-right:8px}.users-section__user{display:flex;justify-content:center;align-items:center;height:28px;width:28px;border-radius:14px;background:red;color:#fff;font-size:12px}.users-section__user.icon-0{background-color:#7b61ff}.users-section__user.icon-1{background-color:#21b8f1}.users-section__user.icon-2{background-color:#2969b0}.users-section__user.icon-3{background-color:#51566f}.users-section__user.icon-4{background-color:#0061ff}.users-section__user:hover{cursor:pointer}.users-section__user:not(:first-child){margin-left:4px}\n"]
1102
1126
  },] }
1103
1127
  ];
1104
1128
  DrAvatarComponent.ctorParameters = () => [];
@@ -1107,6 +1131,102 @@ DrAvatarComponent.propDecorators = {
1107
1131
  userClicked: [{ type: Output }]
1108
1132
  };
1109
1133
 
1134
+ const POPUP_POSITIONS = {
1135
+ top: {
1136
+ originX: 'center',
1137
+ originY: 'top',
1138
+ overlayX: 'center',
1139
+ overlayY: 'bottom',
1140
+ offsetY: -8
1141
+ },
1142
+ 'top-left': {
1143
+ originX: 'start',
1144
+ originY: 'top',
1145
+ overlayX: 'start',
1146
+ overlayY: 'bottom',
1147
+ offsetY: -8
1148
+ },
1149
+ 'top-right': {
1150
+ originX: 'end',
1151
+ originY: 'top',
1152
+ overlayX: 'end',
1153
+ overlayY: 'bottom',
1154
+ offsetY: -8
1155
+ },
1156
+ bottom: {
1157
+ originX: 'center',
1158
+ originY: 'bottom',
1159
+ overlayX: 'center',
1160
+ overlayY: 'top',
1161
+ offsetY: 7
1162
+ },
1163
+ 'bottom-left': {
1164
+ originX: 'start',
1165
+ originY: 'bottom',
1166
+ overlayX: 'start',
1167
+ overlayY: 'top',
1168
+ offsetY: 7
1169
+ },
1170
+ 'bottom-right': {
1171
+ originX: 'end',
1172
+ originY: 'bottom',
1173
+ overlayX: 'end',
1174
+ overlayY: 'top',
1175
+ offsetY: 7
1176
+ },
1177
+ left: {
1178
+ originX: 'start',
1179
+ originY: 'center',
1180
+ overlayX: 'end',
1181
+ overlayY: 'center',
1182
+ offsetX: -8
1183
+ },
1184
+ 'left-top': {
1185
+ originX: 'start',
1186
+ originY: 'top',
1187
+ overlayX: 'end',
1188
+ overlayY: 'top',
1189
+ offsetX: -8
1190
+ },
1191
+ 'left-bottom': {
1192
+ originX: 'start',
1193
+ originY: 'bottom',
1194
+ overlayX: 'end',
1195
+ overlayY: 'bottom',
1196
+ offsetX: -8
1197
+ },
1198
+ right: {
1199
+ originX: 'end',
1200
+ originY: 'center',
1201
+ overlayX: 'start',
1202
+ overlayY: 'center',
1203
+ offsetX: 8
1204
+ },
1205
+ 'right-top': {
1206
+ originX: 'end',
1207
+ originY: 'top',
1208
+ overlayX: 'start',
1209
+ overlayY: 'top',
1210
+ offsetX: 8
1211
+ },
1212
+ 'right-bottom': {
1213
+ originX: 'end',
1214
+ originY: 'bottom',
1215
+ overlayX: 'start',
1216
+ overlayY: 'bottom',
1217
+ offsetX: 8
1218
+ }
1219
+ };
1220
+ const POPUP_ANIMATION = [
1221
+ transition(':enter', [
1222
+ style({ opacity: 0 }),
1223
+ animate(300, style({ opacity: 1 })),
1224
+ ]),
1225
+ transition(':leave', [
1226
+ animate(300, style({ opacity: 0 })),
1227
+ ]),
1228
+ ];
1229
+
1110
1230
  class TooltipComponent {
1111
1231
  constructor() {
1112
1232
  this.isContentTemplate = false;
@@ -1118,19 +1238,11 @@ class TooltipComponent {
1118
1238
  TooltipComponent.decorators = [
1119
1239
  { type: Component, args: [{
1120
1240
  selector: 'dr-tooltip',
1121
- template: "<div [class]=\"position + ' ' + class\" [ngClass]=\"{'dr-tooltip': !options?.withoutContainerStyles}\">\r\n <div class=\"dr-tooltip-arrow\"></div>\r\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\r\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <div class=\"default-content\">{{ content }}</div>\r\n </ng-template>\r\n</div>\r\n",
1241
+ template: "<div [class]=\"position + ' ' + class\" [ngClass]=\"{'dr-tooltip': !options?.withoutContainerStyles}\">\r\n <div *ngIf=\"!options?.withoutArrow\" class=\"dr-tooltip-arrow\"></div>\r\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\r\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <div class=\"default-content\">{{ content }}</div>\r\n </ng-template>\r\n</div>\r\n",
1122
1242
  animations: [
1123
- trigger('tooltip', [
1124
- transition(':enter', [
1125
- style({ opacity: 0 }),
1126
- animate(300, style({ opacity: 1 })),
1127
- ]),
1128
- transition(':leave', [
1129
- animate(300, style({ opacity: 0 })),
1130
- ]),
1131
- ]),
1243
+ trigger('tooltip', POPUP_ANIMATION),
1132
1244
  ],
1133
- styles: [":host{display:block}.dr-tooltip{background:#fff;border:1px solid #cfd7dd;box-sizing:border-box;border-radius:4px;font-size:12px;color:#545a6b;max-width:80vh!important;box-shadow:0 2px 4px #919907}.dr-tooltip .default-content{padding:.5rem;font-size:11px;line-height:16px;white-space:pre;text-overflow:ellipsis;overflow:hidden}.dr-tooltip-arrow{border-width:8px}.dr-tooltip-arrow,.dr-tooltip-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.dr-tooltip-arrow:after{content:\"\";border-width:8px}.top .dr-tooltip-arrow,.top-left .dr-tooltip-arrow,.top-right .dr-tooltip-arrow{bottom:-16px;border-top-color:#cfd7dd!important}.top .dr-tooltip-arrow:after,.top-left .dr-tooltip-arrow:after,.top-right .dr-tooltip-arrow:after{bottom:-6px;left:-8px;border-top-color:#fff}.bottom .dr-tooltip-arrow,.bottom-left .dr-tooltip-arrow,.bottom-right .dr-tooltip-arrow{top:-7px;border-top:none;border-bottom-color:#cfd7dd!important}.bottom .dr-tooltip-arrow:after,.bottom-left .dr-tooltip-arrow:after,.bottom-right .dr-tooltip-arrow:after{border-top:none;top:1px;left:-8px;border-bottom-color:#fff}.left .dr-tooltip-arrow,.left-top .dr-tooltip-arrow,.left-bottom .dr-tooltip-arrow{right:-16px;border-left-color:#cfd7dd!important}.left .dr-tooltip-arrow:after,.left-top .dr-tooltip-arrow:after,.left-bottom .dr-tooltip-arrow:after{bottom:-8px;left:-9px;border-left-color:#fff}.right .dr-tooltip-arrow,.right-top .dr-tooltip-arrow,.right-bottom .dr-tooltip-arrow{left:-16px;border-right-color:#cfd7dd!important}.right .dr-tooltip-arrow:after,.right-top .dr-tooltip-arrow:after,.right-bottom .dr-tooltip-arrow:after{bottom:-8px;left:-7px;border-right-color:#fff}.top .dr-tooltip-arrow,.bottom .dr-tooltip-arrow{left:calc(50% - 4px)}.bottom-left .dr-tooltip-arrow,.top-left .dr-tooltip-arrow{left:4px}.bottom-right .dr-tooltip-arrow,.top-right .dr-tooltip-arrow{right:4px}.left .dr-tooltip-arrow,.right .dr-tooltip-arrow{top:calc(50% - 4px)}.left-top .dr-tooltip-arrow,.dr-tooltip-arrow .right-top{top:4px}.right-bottom .dr-tooltip-arrow,.left-bottom .dr-tooltip-arrow{bottom:4px}\n"]
1245
+ styles: [":host{display:block}.top,.top-left,.top-right.dr-tooltip{transform:translateY(-8px)}.bottom,.bottom-left,.bottom-right.dr-tooltip{transform:translateY(8px)}.left,.left-top,.left-bottom.dr-tooltip{transform:translate(-8px)}.right,.right-top,.right-bottom.dr-tooltip{transform:translate(8px)}.dr-tooltip{background:#fff;border:1px solid #cfd7dd;box-sizing:border-box;border-radius:8px;font-size:12px;color:#545a6b;max-width:80vh!important;box-shadow:0 2px 4px #9199b4}.dr-tooltip .default-content{padding:.5rem;font-size:12px;line-height:22px;white-space:pre;text-overflow:ellipsis;overflow:hidden}.dr-tooltip-arrow{border-width:8px}.dr-tooltip-arrow,.dr-tooltip-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.dr-tooltip-arrow:after{content:\"\";border-width:8px}.top .dr-tooltip-arrow,.top-left .dr-tooltip-arrow,.top-right .dr-tooltip-arrow{bottom:-16px;border-top-color:#cfd7dd!important}.top .dr-tooltip-arrow:after,.top-left .dr-tooltip-arrow:after,.top-right .dr-tooltip-arrow:after{bottom:-6px;left:-8px;border-top-color:#fff}.bottom .dr-tooltip-arrow,.bottom-left .dr-tooltip-arrow,.bottom-right .dr-tooltip-arrow{top:-7px;border-top:none;border-bottom-color:#cfd7dd!important}.bottom .dr-tooltip-arrow:after,.bottom-left .dr-tooltip-arrow:after,.bottom-right .dr-tooltip-arrow:after{border-top:none;top:1px;left:-8px;border-bottom-color:#fff}.left .dr-tooltip-arrow,.left-top .dr-tooltip-arrow,.left-bottom .dr-tooltip-arrow{right:-16px;border-left-color:#cfd7dd!important}.left .dr-tooltip-arrow:after,.left-top .dr-tooltip-arrow:after,.left-bottom .dr-tooltip-arrow:after{bottom:-8px;left:-9px;border-left-color:#fff}.right .dr-tooltip-arrow,.right-top .dr-tooltip-arrow,.right-bottom .dr-tooltip-arrow{left:-16px;border-right-color:#cfd7dd!important}.right .dr-tooltip-arrow:after,.right-top .dr-tooltip-arrow:after,.right-bottom .dr-tooltip-arrow:after{bottom:-8px;left:-7px;border-right-color:#fff}.top .dr-tooltip-arrow,.bottom .dr-tooltip-arrow{left:calc(50% - 8px)}.bottom-left .dr-tooltip-arrow,.top-left .dr-tooltip-arrow{left:8px}.bottom-right .dr-tooltip-arrow,.top-right .dr-tooltip-arrow{right:8px}.left .dr-tooltip-arrow,.right .dr-tooltip-arrow{top:calc(50% - 8px)}.left-top .dr-tooltip-arrow,.dr-tooltip-arrow .right-top{top:8px}.right-bottom .dr-tooltip-arrow,.left-bottom .dr-tooltip-arrow{bottom:8px}\n"]
1134
1246
  },] }
1135
1247
  ];
1136
1248
  TooltipComponent.ctorParameters = () => [];
@@ -1150,96 +1262,10 @@ class DrTooltipDirective {
1150
1262
  this.contentContext = {};
1151
1263
  this.position = 'top';
1152
1264
  this.class = '';
1153
- this.tooltipPositions = {
1154
- top: {
1155
- originX: 'center',
1156
- originY: 'top',
1157
- overlayX: 'center',
1158
- overlayY: 'bottom',
1159
- offsetY: -8
1160
- },
1161
- 'top-left': {
1162
- originX: 'start',
1163
- originY: 'top',
1164
- overlayX: 'start',
1165
- overlayY: 'bottom',
1166
- offsetY: -8
1167
- },
1168
- 'top-right': {
1169
- originX: 'end',
1170
- originY: 'top',
1171
- overlayX: 'end',
1172
- overlayY: 'bottom',
1173
- offsetY: -8
1174
- },
1175
- bottom: {
1176
- originX: 'center',
1177
- originY: 'bottom',
1178
- overlayX: 'center',
1179
- overlayY: 'top',
1180
- offsetY: 7
1181
- },
1182
- 'bottom-left': {
1183
- originX: 'start',
1184
- originY: 'bottom',
1185
- overlayX: 'start',
1186
- overlayY: 'top',
1187
- offsetY: 7
1188
- },
1189
- 'bottom-right': {
1190
- originX: 'end',
1191
- originY: 'bottom',
1192
- overlayX: 'end',
1193
- overlayY: 'top',
1194
- offsetY: 7
1195
- },
1196
- left: {
1197
- originX: 'start',
1198
- originY: 'center',
1199
- overlayX: 'end',
1200
- overlayY: 'center',
1201
- offsetX: -8
1202
- },
1203
- 'left-top': {
1204
- originX: 'start',
1205
- originY: 'top',
1206
- overlayX: 'end',
1207
- overlayY: 'top',
1208
- offsetX: -8
1209
- },
1210
- 'left-bottom': {
1211
- originX: 'start',
1212
- originY: 'bottom',
1213
- overlayX: 'end',
1214
- overlayY: 'bottom',
1215
- offsetX: -8
1216
- },
1217
- right: {
1218
- originX: 'end',
1219
- originY: 'center',
1220
- overlayX: 'start',
1221
- overlayY: 'center',
1222
- offsetX: 8
1223
- },
1224
- 'right-top': {
1225
- originX: 'end',
1226
- originY: 'top',
1227
- overlayX: 'start',
1228
- overlayY: 'top',
1229
- offsetX: 8
1230
- },
1231
- 'right-bottom': {
1232
- originX: 'end',
1233
- originY: 'bottom',
1234
- overlayX: 'start',
1235
- overlayY: 'bottom',
1236
- offsetX: 8
1237
- }
1238
- };
1239
1265
  }
1240
1266
  set drTooltipOptions(options) {
1241
1267
  if (options === null || options === void 0 ? void 0 : options.indent) {
1242
- const position = this.tooltipPositions[this.position];
1268
+ const position = POPUP_POSITIONS[this.position];
1243
1269
  if (position.offsetY) {
1244
1270
  position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;
1245
1271
  }
@@ -1249,29 +1275,59 @@ class DrTooltipDirective {
1249
1275
  }
1250
1276
  this.options = options;
1251
1277
  }
1252
- ngOnInit() {
1253
- const positionStrategy = this.overlayPositionBuilder
1254
- .flexibleConnectedTo(this.elementRef)
1255
- .withPositions([this.tooltipPositions[this.position]]);
1256
- this.overlayRef = this.overlay.create({ positionStrategy });
1278
+ set showTooltip(value) {
1279
+ this.manualHandling = true;
1280
+ if (value) {
1281
+ this.renderTooltip();
1282
+ }
1283
+ else {
1284
+ this.destroyTooltip();
1285
+ }
1257
1286
  }
1258
1287
  ngOnDestroy() {
1288
+ if (!this.overlayRef)
1289
+ return null;
1259
1290
  if (this.overlayRef.hasAttached()) {
1260
1291
  this.hide();
1261
1292
  }
1262
- this.overlayRef.dispose();
1293
+ // TODO: Temporary solution. line 162 doesn't stop function execution
1294
+ if (this.overlayRef) {
1295
+ this.overlayRef.dispose();
1296
+ }
1263
1297
  }
1264
1298
  show() {
1265
- if (!this.overlayRef.hasAttached() && this.content) {
1299
+ if (this.manualHandling)
1300
+ return;
1301
+ this.renderTooltip();
1302
+ }
1303
+ hide() {
1304
+ if (this.manualHandling)
1305
+ return;
1306
+ this.destroyTooltip();
1307
+ }
1308
+ createOverlay() {
1309
+ const positionStrategy = this.overlayPositionBuilder
1310
+ .flexibleConnectedTo(this.elementRef)
1311
+ .withPositions([POPUP_POSITIONS[this.position]]);
1312
+ this.overlayRef = this.overlay.create({ positionStrategy });
1313
+ }
1314
+ renderTooltip() {
1315
+ var _a;
1316
+ this.createOverlay();
1317
+ if (!((_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.hasAttached()) && this.content) {
1266
1318
  const tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));
1267
1319
  tooltipRef.instance.content = this.content;
1268
1320
  tooltipRef.instance.contentContext = this.contentContext;
1269
1321
  tooltipRef.instance.position = this.position;
1270
1322
  tooltipRef.instance.options = this.options;
1323
+ tooltipRef.instance.class = this.class + ' ' + this.position;
1271
1324
  }
1272
1325
  }
1273
- hide() {
1274
- this.overlayRef.detach();
1326
+ destroyTooltip() {
1327
+ if (this.overlayRef) {
1328
+ this.overlayRef.dispose();
1329
+ }
1330
+ this.overlayRef = null;
1275
1331
  }
1276
1332
  }
1277
1333
  DrTooltipDirective.decorators = [
@@ -1290,6 +1346,7 @@ DrTooltipDirective.propDecorators = {
1290
1346
  position: [{ type: Input, args: ['drTooltipPosition',] }],
1291
1347
  class: [{ type: Input, args: ['drTooltipClass',] }],
1292
1348
  drTooltipOptions: [{ type: Input }],
1349
+ showTooltip: [{ type: Input, args: ['drTooltipShow',] }],
1293
1350
  show: [{ type: HostListener, args: ['mouseenter',] }],
1294
1351
  hide: [{ type: HostListener, args: ['mouseleave',] }]
1295
1352
  };
@@ -1333,7 +1390,7 @@ DrToggleComponent.decorators = [
1333
1390
  { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }
1334
1391
  ],
1335
1392
  changeDetection: ChangeDetectionStrategy.OnPush,
1336
- styles: [":host{display:flex;justify-content:space-between;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:rgba(143,155,179,.24)!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#579bf2}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#aeb5bb}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}\n"]
1393
+ styles: [":host{display:flex;justify-content:space-between;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:rgba(143,155,179,.24)!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#579bf2}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#aeb5bb}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:1.8px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}\n"]
1337
1394
  },] }
1338
1395
  ];
1339
1396
  DrToggleComponent.ctorParameters = () => [
@@ -1425,6 +1482,640 @@ DrSpinnerDirective.propDecorators = {
1425
1482
  drSpinnerSize: [{ type: Input }]
1426
1483
  };
1427
1484
 
1485
+ class DrButtonComponent {
1486
+ constructor() {
1487
+ this.theme = 'primary';
1488
+ this.isBold = false;
1489
+ this.isLoading = false;
1490
+ this.click = new EventEmitter();
1491
+ }
1492
+ onClick($event) {
1493
+ this.click.emit($event);
1494
+ }
1495
+ }
1496
+ DrButtonComponent.decorators = [
1497
+ { type: Component, args: [{
1498
+ selector: 'dr-button',
1499
+ template: "<button (click)=\"onClick($event)\" [attr.disabled]=\"disabled\" [attr.is-loading]=\"isLoading\" [attr.bold]=\"isBold\"\r\n [attr.icon]=\"icon ? true : false\" [attr.theme]=\"theme\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <i *ngIf=\"icon\" class=\"dr\" [ngClass]=\"icon\"></i>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <i *ngIf=\"isLoading\" class=\"dr dr-spinner\"></i>\r\n</button>",
1500
+ styles: [":host{display:inline-block}:host button[theme]{cursor:pointer;border-radius:16px;padding:5px 16px;font-family:\"Poppins\";font-style:normal;font-weight:400;font-size:14px;line-height:22px;color:#4e566c;border:1px solid #7F7FDD;display:flex;justify-content:space-between;align-items:center;height:32px}:host button[theme] .dr{padding:0;margin-left:5.35px;margin-right:8.64px}:host button[theme] .dr-spinner{animation-name:rotate;animation-iteration-count:infinite;animation-duration:1s}@keyframes rotate{0%{transform:rotate()}to{transform:rotate(360deg)}}:host button[theme][theme~=secondary]{padding:5px 16px;background:#FFFFFF;border-radius:16px;min-width:90px}:host button[theme][theme~=secondary]:hover:not([disabled=\"true\"]){color:#4e566c;transition:.2ms ease-in all;background:#F2F2FB;box-shadow:0 4px 14px #0000001a;border:1px solid #4646CE;border-radius:16px}:host button[theme][theme~=secondary]:active{box-shadow:none;background:#F2F2FB}:host button[theme][theme~=secondary][disabled=true]{background:#F0F1F4;color:#727583;border:none}:host button[theme][theme~=secondary][is-loading=true]{justify-content:center;padding:5px 16px}:host button[theme][theme~=primary]{background:#4646CE;color:#fff;border:none;min-width:90px}:host button[theme][theme~=primary]:hover:not([disabled=\"true\"]){transition:.2ms ease-in all;background:linear-gradient(96.89deg,#25258C 0%,#4646CE 100%);box-shadow:0 4px 14px #0000001a;border-radius:16px;border:none}:host button[theme][theme~=primary]:hover[disabled=false]{border:none}:host button[theme][theme~=primary]:active{background:#25258C}:host button[theme][theme~=primary][disabled=true]{background:#F0F1F4;color:#727583;border:none}:host button[theme][theme~=primary][is-loading=true]{justify-content:center;padding:5px 16px}:host button[theme][theme~=ghost]{background:none;border:none;color:#151b3f;padding:4px 8px}:host button[theme][theme~=ghost] .dr{margin-left:4.5px;margin-right:12.5px}:host button[theme][theme~=ghost]:hover:not([disabled=\"true\"]){color:#4646ce;background:#F2F2FB;border-radius:4px}:host button[theme][theme~=ghost][disabled=true]{color:#727583}:host button[theme][theme~=text-link]{background:none;border:none;color:#0b5af9;text-decoration:underline}:host button[theme][theme~=text-link][disabled=true]{color:#727583}:host button[theme][theme~=primary-icon]{padding:8px;width:28px;height:28px;justify-content:center;color:#fff;background:#4646CE;border:none}:host button[theme][theme~=primary-icon]:hover,:host button[theme][theme~=primary-icon]:active{background:linear-gradient(96.89deg,#131318 0%,#4646CE 100%)}:host button[theme][theme~=primary-icon][disabled=true]{color:#bcbcbc;background:#E5E6EA}:host button[theme][theme~=primary-icon] .dr{margin:0}:host button[theme][theme~=secondary-icon]{background:white;padding:8px;width:28px;height:28px;justify-content:center;color:#4e566c;border:1px solid #7F7FDD}:host button[theme][theme~=secondary-icon]:hover,:host button[theme][theme~=secondary-icon]:active{color:#4646ce;background:#F2F2FB}:host button[theme][theme~=secondary-icon][disabled=true]{color:#bcbcbc;background:#E5E6EA;border:none}:host button[theme][theme~=secondary-icon] .dr{margin:0}:host button[theme][theme~=icon]{background:none;padding:8px;width:28px;height:28px;justify-content:center;color:#4e566c;border:none}:host button[theme][theme~=icon]:hover,:host button[theme][theme~=icon]:active{background:#F0F3FC;color:#4646ce}:host button[theme][theme~=icon][disabled=true]{color:#bcbcbc;border:none}:host button[theme][theme~=icon][disabled=true]:hover,:host button[theme][theme~=icon][disabled=true]:active{background:none}:host button[theme][theme~=icon] .dr{margin:0}:host button[theme][bold=true]{font-weight:600}:host button[theme][icon=true]{padding-left:8px}:host button[theme][icon=false]{justify-content:center}\n"]
1501
+ },] }
1502
+ ];
1503
+ DrButtonComponent.ctorParameters = () => [];
1504
+ DrButtonComponent.propDecorators = {
1505
+ title: [{ type: Input }],
1506
+ theme: [{ type: Input }],
1507
+ disabled: [{ type: Input }],
1508
+ icon: [{ type: Input }],
1509
+ isBold: [{ type: Input }],
1510
+ isLoading: [{ type: Input }],
1511
+ click: [{ type: Output }]
1512
+ };
1513
+ // Examples:
1514
+ /*
1515
+ <dr-button [icon]="'dr-icon-arrow-down'">hello</dr-button>
1516
+ <dr-button [icon]="'dr-icon-refresh'" [theme]="'primary-icon'"></dr-button>
1517
+ <dr-button [icon]="'dr-icon-refresh'" [isDisabled]="true" [theme]="'primary-icon'"></dr-button>
1518
+
1519
+ <dr-button [icon]="'dr-icon-refresh'" [theme]="'secondary-icon'"></dr-button>
1520
+ <dr-button [icon]="'dr-icon-share'" [isDisabled]="true" [theme]="'secondary-icon'"></dr-button>
1521
+
1522
+ <dr-button [icon]="'dr-icon-share'" [theme]="'icon'"></dr-button>
1523
+ <dr-button [icon]="'dr-icon-share'" [isDisabled]="true" [theme]="'icon'"></dr-button>
1524
+
1525
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'">Primary</dr-button>
1526
+ <dr-button [isDisabled]="false" >Primary</dr-button>
1527
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'" [theme]="'secondary'">Secondary</dr-button>
1528
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'" [theme]="'ghost'">Ghost</dr-button>
1529
+ <dr-button [isDisabled]="false" [theme]="'text-link'">Text Link</dr-button>
1530
+ */
1531
+
1532
+ const MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';
1533
+ const DATE_INPUT_FORMAT = 'YYYY/MM/DD';
1534
+ const YEAR_FORMAT = 'yyyy';
1535
+ const MONTH_YEAR_FORMAT = 'MM/yyyy';
1536
+ class CustomDateFormat {
1537
+ constructor() {
1538
+ this._parse = {
1539
+ dateInput: DATE_INPUT_FORMAT
1540
+ };
1541
+ this._display = {
1542
+ dateInput: DATE_INPUT_FORMAT,
1543
+ monthYearLabel: 'MMM YYYY',
1544
+ dateA11yLabel: 'LL',
1545
+ monthYearA11yLabel: 'MMM YYYY'
1546
+ };
1547
+ }
1548
+ set parse(parse) {
1549
+ this._parse = Object.assign({}, this._parse, parse);
1550
+ }
1551
+ get parse() {
1552
+ return this._parse;
1553
+ }
1554
+ set display(display) {
1555
+ this._display = Object.assign({}, this._display, display);
1556
+ }
1557
+ get display() {
1558
+ return this._display;
1559
+ }
1560
+ updateDateFormat(parse, display) {
1561
+ this.parse = parse;
1562
+ if (!display) {
1563
+ display = parse;
1564
+ }
1565
+ this.display = display;
1566
+ }
1567
+ }
1568
+
1569
+ const noop = () => { };
1570
+ const ɵ0$1 = noop;
1571
+ class DrDatePickerComponent {
1572
+ constructor(cdr) {
1573
+ this.cdr = cdr;
1574
+ this.readonly = true;
1575
+ this._lastView = 'month';
1576
+ this._format = MAT_DEFAULT_DATE_FORMAT;
1577
+ this.placeholder = 'Select';
1578
+ this.min = null;
1579
+ this.max = null;
1580
+ this.innerValue = null;
1581
+ this.onTouchedCallback = noop;
1582
+ this.onChangeCallback = noop;
1583
+ }
1584
+ set lastView(view) {
1585
+ switch (view) {
1586
+ case 'year':
1587
+ this._lastView = 'multi-year';
1588
+ this._format = YEAR_FORMAT;
1589
+ break;
1590
+ case 'month':
1591
+ this._lastView = 'year';
1592
+ this._format = MONTH_YEAR_FORMAT;
1593
+ break;
1594
+ default:
1595
+ this._lastView = 'month';
1596
+ this._format = MAT_DEFAULT_DATE_FORMAT;
1597
+ }
1598
+ this.cdr.markForCheck();
1599
+ }
1600
+ set format(value) {
1601
+ if (value) {
1602
+ this._format = value;
1603
+ this.cdr.markForCheck();
1604
+ }
1605
+ }
1606
+ ngAfterViewInit() {
1607
+ if (this._lastView === 'month') {
1608
+ return;
1609
+ }
1610
+ const lastView = this._lastView;
1611
+ setTimeout(() => {
1612
+ const popupInstance = this.dp._popupComponentRef.instance;
1613
+ const calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;
1614
+ calenderInstance.currentPeriodClicked = function () {
1615
+ if (lastView === 'multi-year') {
1616
+ this.calendar.currentView = 'multi-year';
1617
+ }
1618
+ else if (lastView === 'year') {
1619
+ this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';
1620
+ }
1621
+ };
1622
+ }, 1000);
1623
+ }
1624
+ get value() {
1625
+ return this.innerValue;
1626
+ }
1627
+ set value(v) {
1628
+ if (v !== this.innerValue) {
1629
+ this.innerValue = v;
1630
+ this.onChangeCallback(v);
1631
+ }
1632
+ this.cdr.markForCheck();
1633
+ }
1634
+ registerOnChange(fn) {
1635
+ this.onChangeCallback = fn;
1636
+ }
1637
+ registerOnTouched(fn) {
1638
+ this.onTouchedCallback = fn;
1639
+ }
1640
+ writeValue(value) {
1641
+ if (value !== this.innerValue) {
1642
+ this.innerValue = value;
1643
+ this.cdr.markForCheck();
1644
+ }
1645
+ }
1646
+ chosenMonthHandler(normalizedMonth, datepicker) {
1647
+ if (this._lastView === 'year') {
1648
+ this.writeValue(normalizedMonth);
1649
+ this.onChangeCallback(normalizedMonth);
1650
+ datepicker.close();
1651
+ }
1652
+ }
1653
+ chosenYearHandler(normalizedYear, datepicker) {
1654
+ if (this._lastView === 'multi-year') {
1655
+ this.writeValue(normalizedYear);
1656
+ this.onChangeCallback(normalizedYear);
1657
+ datepicker.close();
1658
+ }
1659
+ }
1660
+ }
1661
+ DrDatePickerComponent.decorators = [
1662
+ { type: Component, args: [{
1663
+ selector: 'new-dr-date-picker',
1664
+ template: " <dr-input\r\n (click)=\"datePicker.open()\"\r\n [(ngModel)]=\"value\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [placeholder]=\"placeholder\"\r\n [matDatePicker]=\"datePicker\"\r\n [drDatePickerFormat]=\"_format\"\r\n [readonly]=\"readonly\"\r\n ></dr-input>\r\n <mat-datepicker\r\n #datePicker startView=\"{{_lastView}}\"\r\n (yearSelected)=\"chosenYearHandler($event, datePicker)\"\r\n (monthSelected)=\"chosenMonthHandler($event, datePicker)\">\r\n </mat-datepicker>\r\n\r\n",
1665
+ changeDetection: ChangeDetectionStrategy.OnPush,
1666
+ providers: [
1667
+ { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true }
1668
+ ],
1669
+ styles: ["dr-input.ng-valid{border-color:#85889c!important}.mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}.mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}.mat-datepicker-content button[disabled]:hover{border:inherit}.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}.mat-calendar-body-selected{background-color:#579bf2}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}.mat-button-focus-overlay{background:#F3F7FF}.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)}.mat-calendar-controls .mat-calendar-period-button:hover{background:#F3F7FF;transition:background .2s cubic-bezier(.35,0,.25,1)}:host::ng-deep dr-input input{cursor:pointer}\n"]
1670
+ },] }
1671
+ ];
1672
+ DrDatePickerComponent.ctorParameters = () => [
1673
+ { type: ChangeDetectorRef }
1674
+ ];
1675
+ DrDatePickerComponent.propDecorators = {
1676
+ lastView: [{ type: Input }],
1677
+ format: [{ type: Input }],
1678
+ placeholder: [{ type: Input }],
1679
+ min: [{ type: Input }],
1680
+ max: [{ type: Input }],
1681
+ dp: [{ type: ViewChild, args: ['datePicker',] }]
1682
+ };
1683
+
1684
+ class DrDatePickerFormatDirective {
1685
+ constructor(matDateFormat, ngControl) {
1686
+ this.matDateFormat = matDateFormat;
1687
+ this.ngControl = ngControl;
1688
+ }
1689
+ set datePickerFormat(format) {
1690
+ var _a;
1691
+ if (this.configDateParse) {
1692
+ this.matDateFormat.updateDateFormat(this.configDateParse, this.configDateDisplay);
1693
+ }
1694
+ else {
1695
+ this.matDateFormat.updateDateFormat({ dateInput: format });
1696
+ }
1697
+ const value = this.ngControl.value;
1698
+ (_a = this.ngControl.valueAccessor) === null || _a === void 0 ? void 0 : _a.writeValue(value);
1699
+ }
1700
+ }
1701
+ DrDatePickerFormatDirective.decorators = [
1702
+ { type: Directive, args: [{
1703
+ selector: '[drDatePickerFormat]',
1704
+ providers: [
1705
+ {
1706
+ provide: DateAdapter,
1707
+ useClass: MomentDateAdapter
1708
+ },
1709
+ {
1710
+ provide: MAT_DATE_FORMATS,
1711
+ useClass: CustomDateFormat
1712
+ }
1713
+ ]
1714
+ },] }
1715
+ ];
1716
+ DrDatePickerFormatDirective.ctorParameters = () => [
1717
+ { type: CustomDateFormat, decorators: [{ type: Inject, args: [MAT_DATE_FORMATS,] }] },
1718
+ { type: NgControl, decorators: [{ type: Optional }] }
1719
+ ];
1720
+ DrDatePickerFormatDirective.propDecorators = {
1721
+ configDateParse: [{ type: Input }],
1722
+ configDateDisplay: [{ type: Input }],
1723
+ datePickerFormat: [{ type: Input, args: ['drDatePickerFormat',] }]
1724
+ };
1725
+
1726
+ class DrPopoverComponent {
1727
+ constructor(cdr, componentFactoryResolver, elementRef) {
1728
+ this.cdr = cdr;
1729
+ this.componentFactoryResolver = componentFactoryResolver;
1730
+ this.elementRef = elementRef;
1731
+ this.class = '';
1732
+ this.isContentTemplate = false;
1733
+ }
1734
+ set popoverContainer(template) {
1735
+ this.isContentTemplate = this.content instanceof TemplateRef;
1736
+ if (!this.isContentTemplate) {
1737
+ this.componentRef = template.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content));
1738
+ this.componentRef.instance['closePopover'] = this.closePopover;
1739
+ for (let key in this.contentContext) {
1740
+ this.componentRef.instance[key] = this.contentContext[key];
1741
+ }
1742
+ }
1743
+ else {
1744
+ this.contentContext.closePopover = this.closePopover;
1745
+ }
1746
+ this.cdr.detectChanges();
1747
+ }
1748
+ ;
1749
+ removeOutside(e) {
1750
+ const isTargetHost = this.hostRef.nativeElement === e.target;
1751
+ const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);
1752
+ const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');
1753
+ const isTargetInSelect = e.target.closest('ng-dropdown-panel');
1754
+ if (!isTargetHost && !isTargetInPopover && !isTargetInDatepicker && !isTargetInSelect) {
1755
+ this.closePopover();
1756
+ }
1757
+ }
1758
+ }
1759
+ DrPopoverComponent.decorators = [
1760
+ { type: Component, args: [{
1761
+ selector: 'dr-popover',
1762
+ template: "<div class=\"dr-popover\" [class]=\"class\" #popoverContainer>\r\n <ng-container *ngIf=\"isContentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\r\n </ng-container>\r\n</div>\r\n",
1763
+ animations: [
1764
+ trigger('popover', POPUP_ANIMATION),
1765
+ ],
1766
+ styles: [".dr-popover{display:flex;background:#fff;border:1px solid #E5E5E5;border-radius:5px;box-sizing:border-box;box-shadow:0 4px 14px #0003;font-size:12px;color:#545a6b;max-height:100vh;max-width:100vw}\n"]
1767
+ },] }
1768
+ ];
1769
+ DrPopoverComponent.ctorParameters = () => [
1770
+ { type: ChangeDetectorRef },
1771
+ { type: ComponentFactoryResolver },
1772
+ { type: ElementRef }
1773
+ ];
1774
+ DrPopoverComponent.propDecorators = {
1775
+ content: [{ type: Input }],
1776
+ contentContext: [{ type: Input }],
1777
+ class: [{ type: Input }],
1778
+ hostRef: [{ type: Input }],
1779
+ closePopover: [{ type: Input }],
1780
+ popoverContainer: [{ type: ViewChild, args: ['popoverContainer', { read: ViewContainerRef },] }],
1781
+ removeOutside: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
1782
+ };
1783
+
1784
+ class DrPopoverDirective {
1785
+ constructor(overlay, vcRef, resolver, overlayPositionBuilder, elementRef) {
1786
+ this.overlay = overlay;
1787
+ this.vcRef = vcRef;
1788
+ this.resolver = resolver;
1789
+ this.overlayPositionBuilder = overlayPositionBuilder;
1790
+ this.elementRef = elementRef;
1791
+ this.contentContext = {};
1792
+ this.position = 'bottom';
1793
+ this.class = '';
1794
+ }
1795
+ show() {
1796
+ if (this.overlayRef) {
1797
+ this.destroyPopover();
1798
+ }
1799
+ else {
1800
+ this.renderPopover();
1801
+ }
1802
+ }
1803
+ renderPopover() {
1804
+ var _a;
1805
+ const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef)
1806
+ .withPositions([POPUP_POSITIONS[this.position]]);
1807
+ this.overlayRef = this.overlay.create({ positionStrategy });
1808
+ if (!((_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.hasAttached()) && this.content) {
1809
+ this.contentRef = this.overlayRef.attach(new ComponentPortal(DrPopoverComponent));
1810
+ this.contentRef.instance.content = this.content;
1811
+ this.contentRef.instance.contentContext = this.contentContext;
1812
+ this.contentRef.instance.class = this.class + ' ' + this.position;
1813
+ this.contentRef.instance.hostRef = this.elementRef;
1814
+ this.contentRef.instance.closePopover = this.destroyPopover.bind(this);
1815
+ }
1816
+ }
1817
+ destroyPopover() {
1818
+ if (this.overlayRef) {
1819
+ this.overlayRef.dispose();
1820
+ this.overlayRef = null;
1821
+ }
1822
+ if (this.contentRef) {
1823
+ this.contentRef.destroy();
1824
+ this.contentRef = null;
1825
+ }
1826
+ }
1827
+ ngOnDestroy() {
1828
+ this.destroyPopover();
1829
+ }
1830
+ }
1831
+ DrPopoverDirective.decorators = [
1832
+ { type: Directive, args: [{
1833
+ selector: '[drPopover]'
1834
+ },] }
1835
+ ];
1836
+ DrPopoverDirective.ctorParameters = () => [
1837
+ { type: Overlay },
1838
+ { type: ViewContainerRef },
1839
+ { type: ComponentFactoryResolver },
1840
+ { type: OverlayPositionBuilder },
1841
+ { type: ElementRef }
1842
+ ];
1843
+ DrPopoverDirective.propDecorators = {
1844
+ content: [{ type: Input, args: ['drPopover',] }],
1845
+ contentContext: [{ type: Input, args: ['drPopoverContext',] }],
1846
+ position: [{ type: Input, args: ['drPopoverPosition',] }],
1847
+ class: [{ type: Input, args: ['drPopoverClass',] }],
1848
+ show: [{ type: HostListener, args: ['click',] }]
1849
+ };
1850
+
1851
+ class DrDropdownService {
1852
+ constructor() {
1853
+ this.actionItem = new Subject();
1854
+ }
1855
+ set addMenu(item) {
1856
+ this.menuInView = item;
1857
+ }
1858
+ destroy() {
1859
+ if (this.menuInView) {
1860
+ this.menuInView.destroy();
1861
+ }
1862
+ }
1863
+ }
1864
+ DrDropdownService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DrDropdownService_Factory() { return new DrDropdownService(); }, token: DrDropdownService, providedIn: "root" });
1865
+ DrDropdownService.decorators = [
1866
+ { type: Injectable, args: [{
1867
+ providedIn: 'root'
1868
+ },] }
1869
+ ];
1870
+ DrDropdownService.ctorParameters = () => [];
1871
+
1872
+ class DrDropdownComponent {
1873
+ constructor(menuService, cdr) {
1874
+ this.menuService = menuService;
1875
+ this.cdr = cdr;
1876
+ this.position = 'left';
1877
+ }
1878
+ set options(data) {
1879
+ if (data) {
1880
+ this.option = data.option;
1881
+ this.position = data.position;
1882
+ this.list = data.list || [];
1883
+ this.list.forEach(item => {
1884
+ var _a;
1885
+ if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
1886
+ item.childOptions = {
1887
+ list: item.children,
1888
+ position: 'child'
1889
+ };
1890
+ }
1891
+ });
1892
+ this.cdr.markForCheck();
1893
+ }
1894
+ }
1895
+ onClickedOutside() {
1896
+ if (this.firstInit) {
1897
+ this.menuService.destroy();
1898
+ }
1899
+ else {
1900
+ this.firstInit = true;
1901
+ }
1902
+ }
1903
+ hide() {
1904
+ this.menuService.destroy();
1905
+ }
1906
+ disabled(act) {
1907
+ if (!act.disabled) {
1908
+ return false;
1909
+ }
1910
+ if (typeof act.disabled === 'boolean') {
1911
+ return act.disabled;
1912
+ }
1913
+ else {
1914
+ return act.disabled(act.data);
1915
+ }
1916
+ }
1917
+ tooltipToShow(act) {
1918
+ return act.toolTipIfDisabled && this.disabled(act) && act.toolTip
1919
+ || act.toolTip && !act.toolTipIfDisabled ? act.toolTip : act.title;
1920
+ }
1921
+ action(act) {
1922
+ if (!this.disabled(act)) {
1923
+ if (act.action) {
1924
+ act.action(act.data);
1925
+ }
1926
+ else {
1927
+ this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
1928
+ }
1929
+ this.hide();
1930
+ }
1931
+ }
1932
+ onActionIconClick(actionIcon, data) {
1933
+ if (!this.disabled(actionIcon)) {
1934
+ actionIcon.action(data);
1935
+ this.hide();
1936
+ }
1937
+ }
1938
+ }
1939
+ DrDropdownComponent.decorators = [
1940
+ { type: Component, args: [{
1941
+ selector: 'dr-dropdown',
1942
+ template: "<div #menuContainer\r\n (clickOutside)=\"onClickedOutside()\"\r\n [drDropdownPosition]=\"option\"\r\n [position]=\"position\"\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]=\"'top'\"\r\n [drTooltipOptions]=\"{ withoutArrow: true }\"\r\n class=\"dr-dropdown__container__item\"\r\n [class.item-disabled]=\"disabled(act)\">\r\n\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 (click)=\"onActionIconClick(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",
1943
+ changeDetection: ChangeDetectionStrategy.OnPush,
1944
+ styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden}::ng-deep .dr-dropdown__container__item:hover .dr-dropdown{visibility:visible}.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.item-disabled{color:#bcbcbc;pointer-events:none}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.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-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
1945
+ },] }
1946
+ ];
1947
+ DrDropdownComponent.ctorParameters = () => [
1948
+ { type: DrDropdownService },
1949
+ { type: ChangeDetectorRef }
1950
+ ];
1951
+ DrDropdownComponent.propDecorators = {
1952
+ viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
1953
+ menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
1954
+ options: [{ type: Input }]
1955
+ };
1956
+
1957
+ class DrDropdownDirective {
1958
+ constructor(componentFactoryResolver, viewContainerRef, service, el, _document) {
1959
+ this.componentFactoryResolver = componentFactoryResolver;
1960
+ this.viewContainerRef = viewContainerRef;
1961
+ this.service = service;
1962
+ this.el = el;
1963
+ this._document = _document;
1964
+ this.position = 'left';
1965
+ }
1966
+ elementClick() {
1967
+ const option = this.el.nativeElement.getBoundingClientRect();
1968
+ this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());
1969
+ if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {
1970
+ this.contentCmpRef.destroy();
1971
+ this.contentCmpRef = null;
1972
+ }
1973
+ else {
1974
+ this.service.destroy();
1975
+ this.showMenu({
1976
+ option,
1977
+ position: this.position,
1978
+ list: this.drDropdown,
1979
+ });
1980
+ }
1981
+ }
1982
+ documentClick(e) {
1983
+ const menuItem = e.target.classList;
1984
+ if (menuItem.contains('dr-dropdown__container__item') || menuItem.contains('dr-dropdown__container__item__text')) {
1985
+ return;
1986
+ }
1987
+ const elems = this._document.querySelectorAll('dr-dropdown');
1988
+ if (!e.target.contains(this.el.nativeElement) && this.contentCmpRef || elems.length && !e.target.contains(this.el.nativeElement)) {
1989
+ setTimeout(() => elems.forEach(item => item.remove()), 100);
1990
+ }
1991
+ }
1992
+ showMenu(options) {
1993
+ let componentFactory;
1994
+ componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);
1995
+ this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);
1996
+ this.service.addMenu = this.contentCmpRef;
1997
+ this._document.querySelector('nb-layout').appendChild(this.contentCmpRef.location.nativeElement);
1998
+ this.contentCmpRef.instance.options = options;
1999
+ }
2000
+ ngOnDestroy() {
2001
+ if (this.contentCmpRef) {
2002
+ this.contentCmpRef.destroy();
2003
+ }
2004
+ }
2005
+ }
2006
+ DrDropdownDirective.decorators = [
2007
+ { type: Directive, args: [{
2008
+ selector: '[drDropdown]'
2009
+ },] }
2010
+ ];
2011
+ DrDropdownDirective.ctorParameters = () => [
2012
+ { type: ComponentFactoryResolver },
2013
+ { type: ViewContainerRef },
2014
+ { type: DrDropdownService },
2015
+ { type: ElementRef },
2016
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
2017
+ ];
2018
+ DrDropdownDirective.propDecorators = {
2019
+ position: [{ type: Input }],
2020
+ drDropdown: [{ type: Input }],
2021
+ contentCmpRef: [{ type: ViewChild, args: [DrDropdownComponent, { static: true, read: ViewContainerRef },] }],
2022
+ elementClick: [{ type: HostListener, args: ['click',] }],
2023
+ documentClick: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
2024
+ };
2025
+
2026
+ class DrDropdownPositionDirective {
2027
+ constructor(el, renderer) {
2028
+ this.el = el;
2029
+ this.renderer = renderer;
2030
+ this.position = 'left';
2031
+ }
2032
+ ngOnInit() {
2033
+ setTimeout(this.calculatePosition.bind(this), 1);
2034
+ }
2035
+ calculatePosition() {
2036
+ let defaultDelta = 10;
2037
+ let defaultPadding = 0;
2038
+ if (this.position === 'child') {
2039
+ defaultDelta = 0;
2040
+ defaultPadding = 10;
2041
+ const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
2042
+ this.position = {
2043
+ x: this.el.nativeElement.parentElement.parentElement.offsetWidth + 2,
2044
+ y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
2045
+ clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
2046
+ clientY: parentRect.y
2047
+ };
2048
+ }
2049
+ if (typeof this.position === 'string') {
2050
+ this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
2051
+ this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
2052
+ this.drDropdownPosition.y + 'px');
2053
+ this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
2054
+ this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
2055
+ this.drDropdownPosition.x + 'px');
2056
+ const menuHeight = this.el.nativeElement.offsetHeight;
2057
+ const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
2058
+ const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
2059
+ const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
2060
+ if (heightMoreWindowBottom) {
2061
+ this.position = 'top';
2062
+ }
2063
+ if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
2064
+ this.position = 'top-left';
2065
+ this.renderer.setStyle(this.el.nativeElement, 'transform', 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');
2066
+ }
2067
+ if (heightMoreWindowTop && heightMoreWindowBottom) {
2068
+ this.position = 'left-center';
2069
+ }
2070
+ if (this.position === 'bottom-left') {
2071
+ this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(-90%, ${this.drDropdownPosition.height + this.drDropdownPosition.height / 2}px)`);
2072
+ }
2073
+ const className = this.position === 'top' ? 'content-top'
2074
+ : this.position === 'top-left' ? 'content-top-left'
2075
+ : this.position === 'bottom' ? 'content-bottom'
2076
+ : this.position === 'bottom-left' ? 'content-bottom-left'
2077
+ : this.position === 'left' ? 'content-left'
2078
+ : this.position === 'left-center' ? 'content-left-center'
2079
+ : this.position === 'right' ? 'content-right' : '';
2080
+ this.renderer.addClass(this.el.nativeElement, className);
2081
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
2082
+ }
2083
+ else {
2084
+ const widthMoreWindowRight = window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
2085
+ const deltaWidth = widthMoreWindowRight < 0 ? widthMoreWindowRight : defaultDelta;
2086
+ const widthMoreWindowBottom = window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
2087
+ const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
2088
+ this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
2089
+ this.renderer.setStyle(this.el.nativeElement, 'left', (this.position.x + deltaWidth) + 'px');
2090
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
2091
+ }
2092
+ }
2093
+ }
2094
+ DrDropdownPositionDirective.decorators = [
2095
+ { type: Directive, args: [{
2096
+ selector: '[drDropdownPosition]'
2097
+ },] }
2098
+ ];
2099
+ DrDropdownPositionDirective.ctorParameters = () => [
2100
+ { type: ElementRef },
2101
+ { type: Renderer2 }
2102
+ ];
2103
+ DrDropdownPositionDirective.propDecorators = {
2104
+ drDropdownPosition: [{ type: Input }],
2105
+ position: [{ type: Input }]
2106
+ };
2107
+
2108
+ class DrDropdownItemShowPipe {
2109
+ transform(arr) {
2110
+ return arr.filter(item => item.show ? item.show(item.data) : true);
2111
+ }
2112
+ }
2113
+ DrDropdownItemShowPipe.decorators = [
2114
+ { type: Pipe, args: [{
2115
+ name: 'drDropdownItemShowPipe'
2116
+ },] }
2117
+ ];
2118
+
1428
2119
  const components$2 = [DateTagComponent,
1429
2120
  DayTagComponent,
1430
2121
  WeekTagComponent,
@@ -1496,18 +2187,21 @@ DrTagModule.decorators = [
1496
2187
  },] }
1497
2188
  ];
1498
2189
 
1499
- const components$1 = [RadioButtonComponent, CheckboxComponent, DrInputComponent, DrSelectComponent, DrToggleComponent];
2190
+ const components$1 = [DrButtonComponent, RadioButtonComponent, CheckboxComponent, DrInputComponent, DrSelectComponent, DrToggleComponent, DrDatePickerComponent, DrDatePickerFormatDirective];
1500
2191
  class DrInputsModule {
1501
2192
  }
1502
2193
  DrInputsModule.decorators = [
1503
2194
  { type: NgModule, args: [{
1504
- declarations: components$1,
2195
+ declarations: [
2196
+ components$1,
2197
+ ],
1505
2198
  exports: components$1,
1506
2199
  imports: [
1507
2200
  FormsModule,
1508
2201
  ReactiveFormsModule,
1509
2202
  CommonModule,
1510
2203
  NgSelectModule,
2204
+ MatDatepickerModule,
1511
2205
  ]
1512
2206
  },] }
1513
2207
  ];
@@ -1563,11 +2257,56 @@ DrSpinnerModule.decorators = [
1563
2257
  },] }
1564
2258
  ];
1565
2259
 
2260
+ class DrPopoverModule {
2261
+ }
2262
+ DrPopoverModule.decorators = [
2263
+ { type: NgModule, args: [{
2264
+ imports: [
2265
+ CommonModule,
2266
+ ],
2267
+ exports: [
2268
+ DrPopoverDirective,
2269
+ DrPopoverComponent,
2270
+ ],
2271
+ providers: [],
2272
+ declarations: [
2273
+ DrPopoverDirective,
2274
+ DrPopoverComponent,
2275
+ ],
2276
+ },] }
2277
+ ];
2278
+
2279
+ class DrDropdownModule {
2280
+ }
2281
+ DrDropdownModule.decorators = [
2282
+ { type: NgModule, args: [{
2283
+ imports: [
2284
+ CommonModule,
2285
+ DrTooltipModule,
2286
+ ],
2287
+ declarations: [
2288
+ DrDropdownDirective,
2289
+ DrDropdownPositionDirective,
2290
+ DrDropdownComponent,
2291
+ DrDropdownItemShowPipe,
2292
+ ],
2293
+ exports: [
2294
+ DrDropdownDirective,
2295
+ DrDropdownPositionDirective,
2296
+ DrDropdownComponent,
2297
+ DrDropdownItemShowPipe,
2298
+ ],
2299
+ providers: [
2300
+ DrDropdownService,
2301
+ ],
2302
+ },] }
2303
+ ];
2304
+
1566
2305
  /* components */
1567
2306
 
1568
2307
  /**
1569
2308
  * Generated bundle index. Do not edit.
1570
2309
  */
1571
2310
 
1572
- export { AnyTagComponent, CheckboxComponent, DateTagComponent, DateTagModule, DayTagComponent, DrAvatarComponent, DrAvatarModule, DrInputComponent, DrInputsModule, DrSelectComponent, DrSpinnerComponent, DrSpinnerDirective, DrSpinnerModule, DrTagComponent, DrTagModule, DrToggleComponent, DrTooltipDirective, DrTooltipModule, ForecastTagComponent, ISpinnerOptions, ListTagComponent, ListTagModule, MonthTagComponent, QuarterTagComponent, RadioButtonComponent, TooltipComponent, WeekTagComponent, YearTagComponent, components$2 as ɵa };
2311
+ export { AnyTagComponent, CheckboxComponent, DateTagComponent, DateTagModule, DayTagComponent, DrAvatarComponent, DrAvatarModule, DrButtonComponent, DrDatePickerComponent, DrDatePickerFormatDirective, DrDropdownComponent, DrDropdownDirective, DrDropdownItemShowPipe, DrDropdownModule, DrDropdownPositionDirective, DrDropdownService, DrInputComponent, DrInputsModule, DrPopoverComponent, DrPopoverDirective, DrPopoverModule, DrSelectComponent, DrSpinnerComponent, DrSpinnerDirective, DrSpinnerModule, DrTagComponent, DrTagModule, DrToggleComponent, DrTooltipDirective, DrTooltipModule, ForecastTagComponent, ISpinnerOptions, ListTagComponent, ListTagModule, MonthTagComponent, QuarterTagComponent, RadioButtonComponent, TooltipComponent, WeekTagComponent, YearTagComponent, components$2 as ɵa, POPUP_ANIMATION as ɵb, CustomDateFormat as ɵc };
1573
2312
  //# sourceMappingURL=datarailsshared-datarailsshared.js.map