@datarailsshared/datarailsshared 1.3.6 → 1.3.7

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 (54) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +1052 -293
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.3.7.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/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -0
  8. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +83 -0
  9. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +87 -0
  10. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +73 -0
  11. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -0
  12. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -0
  13. package/esm2015/lib/dr-inputs/button/button.component.js +48 -0
  14. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +8 -3
  15. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -0
  16. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +119 -0
  17. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +8 -3
  18. package/esm2015/lib/dr-inputs/dr-inputs.module.js +12 -5
  19. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +9 -4
  20. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +9 -4
  21. package/esm2015/lib/dr-popover/dr-popover.component.js +61 -0
  22. package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -0
  23. package/esm2015/lib/dr-popover/dr-popover.module.js +23 -0
  24. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +5 -12
  25. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +5 -106
  26. package/esm2015/lib/models/constants.js +97 -0
  27. package/esm2015/lib/models/datePicker.js +37 -0
  28. package/esm2015/lib/models/dropdown.js +2 -0
  29. package/esm2015/public-api.js +36 -23
  30. package/fesm2015/datarailsshared-datarailsshared.js +827 -137
  31. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  32. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -0
  33. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +11 -0
  34. package/lib/dr-dropdown/dr-dropdown.component.d.ts +21 -0
  35. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +18 -0
  36. package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -0
  37. package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -0
  38. package/lib/dr-inputs/button/button.component.d.ts +14 -0
  39. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +3 -1
  40. package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -0
  41. package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +28 -0
  42. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +4 -0
  43. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +1 -0
  44. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
  45. package/lib/dr-popover/dr-popover.component.d.ts +16 -0
  46. package/lib/dr-popover/dr-popover.directive.d.ts +20 -0
  47. package/lib/dr-popover/dr-popover.module.d.ts +2 -0
  48. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +2 -18
  49. package/lib/models/constants.d.ts +87 -0
  50. package/lib/models/datePicker.d.ts +21 -0
  51. package/lib/models/dropdown.d.ts +43 -0
  52. package/package.json +1 -1
  53. package/public-api.d.ts +36 -23
  54. package/datarailsshared-datarailsshared-1.3.6.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();
@@ -766,7 +768,7 @@ DayTagComponent.decorators = [
766
768
  useClass: MomentDateAdapter,
767
769
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
768
770
  },
769
- { provide: MAT_DATE_FORMATS, useValue: ɵ0$1 },
771
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0$2 },
770
772
  ]
771
773
  },] }
772
774
  ];
@@ -776,7 +778,8 @@ DayTagComponent.propDecorators = {
776
778
  };
777
779
 
778
780
  class RadioButtonComponent {
779
- constructor() {
781
+ constructor(cdr) {
782
+ this.cdr = cdr;
780
783
  this.onChange = (onchanges => { });
781
784
  this.onTouched = () => { };
782
785
  }
@@ -791,6 +794,7 @@ class RadioButtonComponent {
791
794
  }
792
795
  writeValue(value) {
793
796
  this.modelValue = value;
797
+ this.cdr.markForCheck();
794
798
  }
795
799
  toggleChange(event) {
796
800
  if (event.target.checked) {
@@ -814,9 +818,12 @@ RadioButtonComponent.decorators = [
814
818
  ],
815
819
  changeDetection: ChangeDetectionStrategy.OnPush,
816
820
  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"]
821
+ 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
822
  },] }
819
823
  ];
824
+ RadioButtonComponent.ctorParameters = () => [
825
+ { type: ChangeDetectorRef }
826
+ ];
820
827
  RadioButtonComponent.propDecorators = {
821
828
  disabled: [{ type: Input }],
822
829
  name: [{ type: Input }],
@@ -824,7 +831,8 @@ RadioButtonComponent.propDecorators = {
824
831
  };
825
832
 
826
833
  class CheckboxComponent {
827
- constructor() {
834
+ constructor(cdr) {
835
+ this.cdr = cdr;
828
836
  this.disabled = false;
829
837
  this.checkedChange = new EventEmitter();
830
838
  this.onChange = () => { };
@@ -832,6 +840,7 @@ class CheckboxComponent {
832
840
  }
833
841
  writeValue(value) {
834
842
  this.checkedStatus = value;
843
+ this.cdr.markForCheck();
835
844
  }
836
845
  registerOnChange(fn) {
837
846
  this.onChange = fn;
@@ -861,6 +870,9 @@ CheckboxComponent.decorators = [
861
870
  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
871
  },] }
863
872
  ];
873
+ CheckboxComponent.ctorParameters = () => [
874
+ { type: ChangeDetectorRef }
875
+ ];
864
876
  CheckboxComponent.propDecorators = {
865
877
  checkedStatus: [{ type: Input }],
866
878
  disabled: [{ type: Input }],
@@ -888,6 +900,8 @@ class DrInputComponent {
888
900
  this.placeholder = '';
889
901
  this.readonly = false;
890
902
  this.clearable = false;
903
+ this.min = null;
904
+ this.max = null;
891
905
  this.searchHandler = new EventEmitter();
892
906
  this.buttonHandler = new EventEmitter();
893
907
  this.tabindex = -1;
@@ -982,14 +996,14 @@ class DrInputComponent {
982
996
  DrInputComponent.decorators = [
983
997
  { type: Component, args: [{
984
998
  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",
999
+ 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
1000
  providers: [{
987
1001
  provide: NG_VALUE_ACCESSOR,
988
1002
  useExisting: forwardRef(() => DrInputComponent),
989
1003
  multi: true
990
1004
  }],
991
1005
  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"]
1006
+ 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
1007
  },] }
994
1008
  ];
995
1009
  DrInputComponent.ctorParameters = () => [
@@ -1002,6 +1016,9 @@ DrInputComponent.propDecorators = {
1002
1016
  placeholder: [{ type: Input }],
1003
1017
  readonly: [{ type: Input }],
1004
1018
  clearable: [{ type: Input }],
1019
+ min: [{ type: Input }],
1020
+ max: [{ type: Input }],
1021
+ matDatePicker: [{ type: Input }],
1005
1022
  disabled: [{ type: Input }],
1006
1023
  buttonOptions: [{ type: Input }],
1007
1024
  searchHandler: [{ type: Output }],
@@ -1017,6 +1034,7 @@ class DrSelectComponent {
1017
1034
  this.items = [];
1018
1035
  this.appendTo = 'body';
1019
1036
  this.disabled = false;
1037
+ this.keyDownFn = () => true;
1020
1038
  this.onChange = () => { };
1021
1039
  this.onTouched = () => { };
1022
1040
  }
@@ -1026,6 +1044,9 @@ class DrSelectComponent {
1026
1044
  }
1027
1045
  registerOnChange(fn) {
1028
1046
  this.onChange = fn;
1047
+ if (fn && this.selectedItem) {
1048
+ this.onChange(this.selectedItem);
1049
+ }
1029
1050
  }
1030
1051
  registerOnTouched(fn) {
1031
1052
  this.onTouched = fn;
@@ -1037,13 +1058,13 @@ class DrSelectComponent {
1037
1058
  DrSelectComponent.decorators = [
1038
1059
  { type: Component, args: [{
1039
1060
  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",
1061
+ 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
1062
  providers: [{
1042
1063
  provide: NG_VALUE_ACCESSOR,
1043
1064
  useExisting: DrSelectComponent,
1044
1065
  multi: true
1045
1066
  }],
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"]
1067
+ 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
1068
  },] }
1048
1069
  ];
1049
1070
  DrSelectComponent.propDecorators = {
@@ -1066,7 +1087,8 @@ DrSelectComponent.propDecorators = {
1066
1087
  keyDownFn: [{ type: Input }],
1067
1088
  selectedItem: [{ type: Input }],
1068
1089
  labelTemplate: [{ type: ContentChild, args: ['labelTemplate',] }],
1069
- optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }]
1090
+ optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }],
1091
+ optionHeaderTemplate: [{ type: ContentChild, args: ['optionHeaderTemplate',] }]
1070
1092
  };
1071
1093
 
1072
1094
  class DrAvatarComponent {
@@ -1108,6 +1130,102 @@ DrAvatarComponent.propDecorators = {
1108
1130
  userClicked: [{ type: Output }]
1109
1131
  };
1110
1132
 
1133
+ const POPUP_POSITIONS = {
1134
+ top: {
1135
+ originX: 'center',
1136
+ originY: 'top',
1137
+ overlayX: 'center',
1138
+ overlayY: 'bottom',
1139
+ offsetY: -8
1140
+ },
1141
+ 'top-left': {
1142
+ originX: 'start',
1143
+ originY: 'top',
1144
+ overlayX: 'start',
1145
+ overlayY: 'bottom',
1146
+ offsetY: -8
1147
+ },
1148
+ 'top-right': {
1149
+ originX: 'end',
1150
+ originY: 'top',
1151
+ overlayX: 'end',
1152
+ overlayY: 'bottom',
1153
+ offsetY: -8
1154
+ },
1155
+ bottom: {
1156
+ originX: 'center',
1157
+ originY: 'bottom',
1158
+ overlayX: 'center',
1159
+ overlayY: 'top',
1160
+ offsetY: 7
1161
+ },
1162
+ 'bottom-left': {
1163
+ originX: 'start',
1164
+ originY: 'bottom',
1165
+ overlayX: 'start',
1166
+ overlayY: 'top',
1167
+ offsetY: 7
1168
+ },
1169
+ 'bottom-right': {
1170
+ originX: 'end',
1171
+ originY: 'bottom',
1172
+ overlayX: 'end',
1173
+ overlayY: 'top',
1174
+ offsetY: 7
1175
+ },
1176
+ left: {
1177
+ originX: 'start',
1178
+ originY: 'center',
1179
+ overlayX: 'end',
1180
+ overlayY: 'center',
1181
+ offsetX: -8
1182
+ },
1183
+ 'left-top': {
1184
+ originX: 'start',
1185
+ originY: 'top',
1186
+ overlayX: 'end',
1187
+ overlayY: 'top',
1188
+ offsetX: -8
1189
+ },
1190
+ 'left-bottom': {
1191
+ originX: 'start',
1192
+ originY: 'bottom',
1193
+ overlayX: 'end',
1194
+ overlayY: 'bottom',
1195
+ offsetX: -8
1196
+ },
1197
+ right: {
1198
+ originX: 'end',
1199
+ originY: 'center',
1200
+ overlayX: 'start',
1201
+ overlayY: 'center',
1202
+ offsetX: 8
1203
+ },
1204
+ 'right-top': {
1205
+ originX: 'end',
1206
+ originY: 'top',
1207
+ overlayX: 'start',
1208
+ overlayY: 'top',
1209
+ offsetX: 8
1210
+ },
1211
+ 'right-bottom': {
1212
+ originX: 'end',
1213
+ originY: 'bottom',
1214
+ overlayX: 'start',
1215
+ overlayY: 'bottom',
1216
+ offsetX: 8
1217
+ }
1218
+ };
1219
+ const POPUP_ANIMATION = [
1220
+ transition(':enter', [
1221
+ style({ opacity: 0 }),
1222
+ animate(300, style({ opacity: 1 })),
1223
+ ]),
1224
+ transition(':leave', [
1225
+ animate(300, style({ opacity: 0 })),
1226
+ ]),
1227
+ ];
1228
+
1111
1229
  class TooltipComponent {
1112
1230
  constructor() {
1113
1231
  this.isContentTemplate = false;
@@ -1121,17 +1239,9 @@ TooltipComponent.decorators = [
1121
1239
  selector: 'dr-tooltip',
1122
1240
  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",
1123
1241
  animations: [
1124
- trigger('tooltip', [
1125
- transition(':enter', [
1126
- style({ opacity: 0 }),
1127
- animate(300, style({ opacity: 1 })),
1128
- ]),
1129
- transition(':leave', [
1130
- animate(300, style({ opacity: 0 })),
1131
- ]),
1132
- ]),
1242
+ trigger('tooltip', POPUP_ANIMATION),
1133
1243
  ],
1134
- 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 #9199b4}.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"]
1244
+ 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"]
1135
1245
  },] }
1136
1246
  ];
1137
1247
  TooltipComponent.ctorParameters = () => [];
@@ -1143,21 +1253,6 @@ TooltipComponent.propDecorators = {
1143
1253
  class: [{ type: Input }]
1144
1254
  };
1145
1255
 
1146
- var TooltipPosition;
1147
- (function (TooltipPosition) {
1148
- TooltipPosition["TOP"] = "top";
1149
- TooltipPosition["BOTTOM"] = "bottom";
1150
- TooltipPosition["LEFT"] = "left";
1151
- TooltipPosition["RIGHT"] = "right";
1152
- TooltipPosition["TOP_RIGHT"] = "top-right";
1153
- TooltipPosition["TOP_LEFT"] = "top-left";
1154
- TooltipPosition["BOTTOM_RIGHT"] = "bottom-right";
1155
- TooltipPosition["BOTTOM_LEFT"] = "bottom-left";
1156
- TooltipPosition["RIGHT_TOP"] = "right-top";
1157
- TooltipPosition["RIGHT_BOTTOM"] = "right-bottom";
1158
- TooltipPosition["LEFT_TOP"] = "left-top";
1159
- TooltipPosition["LEFT_BOTTOM"] = "left-bottom";
1160
- })(TooltipPosition || (TooltipPosition = {}));
1161
1256
  class DrTooltipDirective {
1162
1257
  constructor(overlay, overlayPositionBuilder, elementRef) {
1163
1258
  this.overlay = overlay;
@@ -1166,96 +1261,10 @@ class DrTooltipDirective {
1166
1261
  this.contentContext = {};
1167
1262
  this.position = 'top';
1168
1263
  this.class = '';
1169
- this.tooltipPositions = {
1170
- top: {
1171
- originX: 'center',
1172
- originY: 'top',
1173
- overlayX: 'center',
1174
- overlayY: 'bottom',
1175
- offsetY: -8
1176
- },
1177
- 'top-left': {
1178
- originX: 'start',
1179
- originY: 'top',
1180
- overlayX: 'start',
1181
- overlayY: 'bottom',
1182
- offsetY: -8
1183
- },
1184
- 'top-right': {
1185
- originX: 'end',
1186
- originY: 'top',
1187
- overlayX: 'end',
1188
- overlayY: 'bottom',
1189
- offsetY: -8
1190
- },
1191
- bottom: {
1192
- originX: 'center',
1193
- originY: 'bottom',
1194
- overlayX: 'center',
1195
- overlayY: 'top',
1196
- offsetY: 7
1197
- },
1198
- 'bottom-left': {
1199
- originX: 'start',
1200
- originY: 'bottom',
1201
- overlayX: 'start',
1202
- overlayY: 'top',
1203
- offsetY: 7
1204
- },
1205
- 'bottom-right': {
1206
- originX: 'end',
1207
- originY: 'bottom',
1208
- overlayX: 'end',
1209
- overlayY: 'top',
1210
- offsetY: 7
1211
- },
1212
- left: {
1213
- originX: 'start',
1214
- originY: 'center',
1215
- overlayX: 'end',
1216
- overlayY: 'center',
1217
- offsetX: -8
1218
- },
1219
- 'left-top': {
1220
- originX: 'start',
1221
- originY: 'top',
1222
- overlayX: 'end',
1223
- overlayY: 'top',
1224
- offsetX: -8
1225
- },
1226
- 'left-bottom': {
1227
- originX: 'start',
1228
- originY: 'bottom',
1229
- overlayX: 'end',
1230
- overlayY: 'bottom',
1231
- offsetX: -8
1232
- },
1233
- right: {
1234
- originX: 'end',
1235
- originY: 'center',
1236
- overlayX: 'start',
1237
- overlayY: 'center',
1238
- offsetX: 8
1239
- },
1240
- 'right-top': {
1241
- originX: 'end',
1242
- originY: 'top',
1243
- overlayX: 'start',
1244
- overlayY: 'top',
1245
- offsetX: 8
1246
- },
1247
- 'right-bottom': {
1248
- originX: 'end',
1249
- originY: 'bottom',
1250
- overlayX: 'start',
1251
- overlayY: 'bottom',
1252
- offsetX: 8
1253
- }
1254
- };
1255
1264
  }
1256
1265
  set drTooltipOptions(options) {
1257
1266
  if (options === null || options === void 0 ? void 0 : options.indent) {
1258
- const position = this.tooltipPositions[this.position];
1267
+ const position = POPUP_POSITIONS[this.position];
1259
1268
  if (position.offsetY) {
1260
1269
  position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;
1261
1270
  }
@@ -1298,7 +1307,7 @@ class DrTooltipDirective {
1298
1307
  createOverlay() {
1299
1308
  const positionStrategy = this.overlayPositionBuilder
1300
1309
  .flexibleConnectedTo(this.elementRef)
1301
- .withPositions([this.tooltipPositions[this.position]]);
1310
+ .withPositions([POPUP_POSITIONS[this.position]]);
1302
1311
  this.overlayRef = this.overlay.create({ positionStrategy });
1303
1312
  }
1304
1313
  renderTooltip() {
@@ -1310,6 +1319,7 @@ class DrTooltipDirective {
1310
1319
  tooltipRef.instance.contentContext = this.contentContext;
1311
1320
  tooltipRef.instance.position = this.position;
1312
1321
  tooltipRef.instance.options = this.options;
1322
+ tooltipRef.instance.class = this.class + ' ' + this.position;
1313
1323
  }
1314
1324
  }
1315
1325
  destroyTooltip() {
@@ -1318,8 +1328,6 @@ class DrTooltipDirective {
1318
1328
  }
1319
1329
  this.overlayRef = null;
1320
1330
  }
1321
- ngOnInit() {
1322
- }
1323
1331
  }
1324
1332
  DrTooltipDirective.decorators = [
1325
1333
  { type: Directive, args: [{
@@ -1473,6 +1481,640 @@ DrSpinnerDirective.propDecorators = {
1473
1481
  drSpinnerSize: [{ type: Input }]
1474
1482
  };
1475
1483
 
1484
+ class DrButtonComponent {
1485
+ constructor() {
1486
+ this.theme = 'primary';
1487
+ this.isBold = false;
1488
+ this.isLoading = false;
1489
+ this.click = new EventEmitter();
1490
+ }
1491
+ onClick($event) {
1492
+ this.click.emit($event);
1493
+ }
1494
+ }
1495
+ DrButtonComponent.decorators = [
1496
+ { type: Component, args: [{
1497
+ selector: 'dr-button',
1498
+ 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>",
1499
+ 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"]
1500
+ },] }
1501
+ ];
1502
+ DrButtonComponent.ctorParameters = () => [];
1503
+ DrButtonComponent.propDecorators = {
1504
+ title: [{ type: Input }],
1505
+ theme: [{ type: Input }],
1506
+ disabled: [{ type: Input }],
1507
+ icon: [{ type: Input }],
1508
+ isBold: [{ type: Input }],
1509
+ isLoading: [{ type: Input }],
1510
+ click: [{ type: Output }]
1511
+ };
1512
+ // Examples:
1513
+ /*
1514
+ <dr-button [icon]="'dr-icon-arrow-down'">hello</dr-button>
1515
+ <dr-button [icon]="'dr-icon-refresh'" [theme]="'primary-icon'"></dr-button>
1516
+ <dr-button [icon]="'dr-icon-refresh'" [isDisabled]="true" [theme]="'primary-icon'"></dr-button>
1517
+
1518
+ <dr-button [icon]="'dr-icon-refresh'" [theme]="'secondary-icon'"></dr-button>
1519
+ <dr-button [icon]="'dr-icon-share'" [isDisabled]="true" [theme]="'secondary-icon'"></dr-button>
1520
+
1521
+ <dr-button [icon]="'dr-icon-share'" [theme]="'icon'"></dr-button>
1522
+ <dr-button [icon]="'dr-icon-share'" [isDisabled]="true" [theme]="'icon'"></dr-button>
1523
+
1524
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'">Primary</dr-button>
1525
+ <dr-button [isDisabled]="false" >Primary</dr-button>
1526
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'" [theme]="'secondary'">Secondary</dr-button>
1527
+ <dr-button [isDisabled]="false" [icon]="'dr-icon-refresh'" [theme]="'ghost'">Ghost</dr-button>
1528
+ <dr-button [isDisabled]="false" [theme]="'text-link'">Text Link</dr-button>
1529
+ */
1530
+
1531
+ const MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';
1532
+ const DATE_INPUT_FORMAT = 'YYYY/MM/DD';
1533
+ const YEAR_FORMAT = 'yyyy';
1534
+ const MONTH_YEAR_FORMAT = 'MM/yyyy';
1535
+ class CustomDateFormat {
1536
+ constructor() {
1537
+ this._parse = {
1538
+ dateInput: DATE_INPUT_FORMAT
1539
+ };
1540
+ this._display = {
1541
+ dateInput: DATE_INPUT_FORMAT,
1542
+ monthYearLabel: 'MMM YYYY',
1543
+ dateA11yLabel: 'LL',
1544
+ monthYearA11yLabel: 'MMM YYYY'
1545
+ };
1546
+ }
1547
+ set parse(parse) {
1548
+ this._parse = Object.assign({}, this._parse, parse);
1549
+ }
1550
+ get parse() {
1551
+ return this._parse;
1552
+ }
1553
+ set display(display) {
1554
+ this._display = Object.assign({}, this._display, display);
1555
+ }
1556
+ get display() {
1557
+ return this._display;
1558
+ }
1559
+ updateDateFormat(parse, display) {
1560
+ this.parse = parse;
1561
+ if (!display) {
1562
+ display = parse;
1563
+ }
1564
+ this.display = display;
1565
+ }
1566
+ }
1567
+
1568
+ const noop = () => { };
1569
+ const ɵ0$1 = noop;
1570
+ class DrDatePickerComponent {
1571
+ constructor(cdr) {
1572
+ this.cdr = cdr;
1573
+ this.readonly = true;
1574
+ this._lastView = 'month';
1575
+ this._format = MAT_DEFAULT_DATE_FORMAT;
1576
+ this.placeholder = 'Select';
1577
+ this.min = null;
1578
+ this.max = null;
1579
+ this.innerValue = null;
1580
+ this.onTouchedCallback = noop;
1581
+ this.onChangeCallback = noop;
1582
+ }
1583
+ set lastView(view) {
1584
+ switch (view) {
1585
+ case 'year':
1586
+ this._lastView = 'multi-year';
1587
+ this._format = YEAR_FORMAT;
1588
+ break;
1589
+ case 'month':
1590
+ this._lastView = 'year';
1591
+ this._format = MONTH_YEAR_FORMAT;
1592
+ break;
1593
+ default:
1594
+ this._lastView = 'month';
1595
+ this._format = MAT_DEFAULT_DATE_FORMAT;
1596
+ }
1597
+ this.cdr.markForCheck();
1598
+ }
1599
+ set format(value) {
1600
+ if (value) {
1601
+ this._format = value;
1602
+ this.cdr.markForCheck();
1603
+ }
1604
+ }
1605
+ ngAfterViewInit() {
1606
+ if (this._lastView === 'month') {
1607
+ return;
1608
+ }
1609
+ const lastView = this._lastView;
1610
+ setTimeout(() => {
1611
+ const popupInstance = this.dp._popupComponentRef.instance;
1612
+ const calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;
1613
+ calenderInstance.currentPeriodClicked = function () {
1614
+ if (lastView === 'multi-year') {
1615
+ this.calendar.currentView = 'multi-year';
1616
+ }
1617
+ else if (lastView === 'year') {
1618
+ this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';
1619
+ }
1620
+ };
1621
+ }, 1000);
1622
+ }
1623
+ get value() {
1624
+ return this.innerValue;
1625
+ }
1626
+ set value(v) {
1627
+ if (v !== this.innerValue) {
1628
+ this.innerValue = v;
1629
+ this.onChangeCallback(v);
1630
+ }
1631
+ this.cdr.markForCheck();
1632
+ }
1633
+ registerOnChange(fn) {
1634
+ this.onChangeCallback = fn;
1635
+ }
1636
+ registerOnTouched(fn) {
1637
+ this.onTouchedCallback = fn;
1638
+ }
1639
+ writeValue(value) {
1640
+ if (value !== this.innerValue) {
1641
+ this.innerValue = value;
1642
+ this.cdr.markForCheck();
1643
+ }
1644
+ }
1645
+ chosenMonthHandler(normalizedMonth, datepicker) {
1646
+ if (this._lastView === 'year') {
1647
+ this.writeValue(normalizedMonth);
1648
+ this.onChangeCallback(normalizedMonth);
1649
+ datepicker.close();
1650
+ }
1651
+ }
1652
+ chosenYearHandler(normalizedYear, datepicker) {
1653
+ if (this._lastView === 'multi-year') {
1654
+ this.writeValue(normalizedYear);
1655
+ this.onChangeCallback(normalizedYear);
1656
+ datepicker.close();
1657
+ }
1658
+ }
1659
+ }
1660
+ DrDatePickerComponent.decorators = [
1661
+ { type: Component, args: [{
1662
+ selector: 'new-dr-date-picker',
1663
+ 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",
1664
+ changeDetection: ChangeDetectionStrategy.OnPush,
1665
+ providers: [
1666
+ { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true }
1667
+ ],
1668
+ 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"]
1669
+ },] }
1670
+ ];
1671
+ DrDatePickerComponent.ctorParameters = () => [
1672
+ { type: ChangeDetectorRef }
1673
+ ];
1674
+ DrDatePickerComponent.propDecorators = {
1675
+ lastView: [{ type: Input }],
1676
+ format: [{ type: Input }],
1677
+ placeholder: [{ type: Input }],
1678
+ min: [{ type: Input }],
1679
+ max: [{ type: Input }],
1680
+ dp: [{ type: ViewChild, args: ['datePicker',] }]
1681
+ };
1682
+
1683
+ class DrDatePickerFormatDirective {
1684
+ constructor(matDateFormat, ngControl) {
1685
+ this.matDateFormat = matDateFormat;
1686
+ this.ngControl = ngControl;
1687
+ }
1688
+ set datePickerFormat(format) {
1689
+ var _a;
1690
+ if (this.configDateParse) {
1691
+ this.matDateFormat.updateDateFormat(this.configDateParse, this.configDateDisplay);
1692
+ }
1693
+ else {
1694
+ this.matDateFormat.updateDateFormat({ dateInput: format });
1695
+ }
1696
+ const value = this.ngControl.value;
1697
+ (_a = this.ngControl.valueAccessor) === null || _a === void 0 ? void 0 : _a.writeValue(value);
1698
+ }
1699
+ }
1700
+ DrDatePickerFormatDirective.decorators = [
1701
+ { type: Directive, args: [{
1702
+ selector: '[drDatePickerFormat]',
1703
+ providers: [
1704
+ {
1705
+ provide: DateAdapter,
1706
+ useClass: MomentDateAdapter
1707
+ },
1708
+ {
1709
+ provide: MAT_DATE_FORMATS,
1710
+ useClass: CustomDateFormat
1711
+ }
1712
+ ]
1713
+ },] }
1714
+ ];
1715
+ DrDatePickerFormatDirective.ctorParameters = () => [
1716
+ { type: CustomDateFormat, decorators: [{ type: Inject, args: [MAT_DATE_FORMATS,] }] },
1717
+ { type: NgControl, decorators: [{ type: Optional }] }
1718
+ ];
1719
+ DrDatePickerFormatDirective.propDecorators = {
1720
+ configDateParse: [{ type: Input }],
1721
+ configDateDisplay: [{ type: Input }],
1722
+ datePickerFormat: [{ type: Input, args: ['drDatePickerFormat',] }]
1723
+ };
1724
+
1725
+ class DrPopoverComponent {
1726
+ constructor(cdr, componentFactoryResolver, elementRef) {
1727
+ this.cdr = cdr;
1728
+ this.componentFactoryResolver = componentFactoryResolver;
1729
+ this.elementRef = elementRef;
1730
+ this.class = '';
1731
+ this.isContentTemplate = false;
1732
+ }
1733
+ set popoverContainer(template) {
1734
+ this.isContentTemplate = this.content instanceof TemplateRef;
1735
+ if (!this.isContentTemplate) {
1736
+ this.componentRef = template.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content));
1737
+ this.componentRef.instance['closePopover'] = this.closePopover;
1738
+ for (let key in this.contentContext) {
1739
+ this.componentRef.instance[key] = this.contentContext[key];
1740
+ }
1741
+ }
1742
+ else {
1743
+ this.contentContext.closePopover = this.closePopover;
1744
+ }
1745
+ this.cdr.detectChanges();
1746
+ }
1747
+ ;
1748
+ removeOutside(e) {
1749
+ const isTargetHost = this.hostRef.nativeElement === e.target;
1750
+ const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);
1751
+ const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');
1752
+ const isTargetInSelect = e.target.closest('ng-dropdown-panel');
1753
+ if (!isTargetHost && !isTargetInPopover && !isTargetInDatepicker && !isTargetInSelect) {
1754
+ this.closePopover();
1755
+ }
1756
+ }
1757
+ }
1758
+ DrPopoverComponent.decorators = [
1759
+ { type: Component, args: [{
1760
+ selector: 'dr-popover',
1761
+ 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",
1762
+ animations: [
1763
+ trigger('popover', POPUP_ANIMATION),
1764
+ ],
1765
+ 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"]
1766
+ },] }
1767
+ ];
1768
+ DrPopoverComponent.ctorParameters = () => [
1769
+ { type: ChangeDetectorRef },
1770
+ { type: ComponentFactoryResolver },
1771
+ { type: ElementRef }
1772
+ ];
1773
+ DrPopoverComponent.propDecorators = {
1774
+ content: [{ type: Input }],
1775
+ contentContext: [{ type: Input }],
1776
+ class: [{ type: Input }],
1777
+ hostRef: [{ type: Input }],
1778
+ closePopover: [{ type: Input }],
1779
+ popoverContainer: [{ type: ViewChild, args: ['popoverContainer', { read: ViewContainerRef },] }],
1780
+ removeOutside: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
1781
+ };
1782
+
1783
+ class DrPopoverDirective {
1784
+ constructor(overlay, vcRef, resolver, overlayPositionBuilder, elementRef) {
1785
+ this.overlay = overlay;
1786
+ this.vcRef = vcRef;
1787
+ this.resolver = resolver;
1788
+ this.overlayPositionBuilder = overlayPositionBuilder;
1789
+ this.elementRef = elementRef;
1790
+ this.contentContext = {};
1791
+ this.position = 'bottom';
1792
+ this.class = '';
1793
+ }
1794
+ show() {
1795
+ if (this.overlayRef) {
1796
+ this.destroyPopover();
1797
+ }
1798
+ else {
1799
+ this.renderPopover();
1800
+ }
1801
+ }
1802
+ renderPopover() {
1803
+ var _a;
1804
+ const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef)
1805
+ .withPositions([POPUP_POSITIONS[this.position]]);
1806
+ this.overlayRef = this.overlay.create({ positionStrategy });
1807
+ if (!((_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.hasAttached()) && this.content) {
1808
+ this.contentRef = this.overlayRef.attach(new ComponentPortal(DrPopoverComponent));
1809
+ this.contentRef.instance.content = this.content;
1810
+ this.contentRef.instance.contentContext = this.contentContext;
1811
+ this.contentRef.instance.class = this.class + ' ' + this.position;
1812
+ this.contentRef.instance.hostRef = this.elementRef;
1813
+ this.contentRef.instance.closePopover = this.destroyPopover.bind(this);
1814
+ }
1815
+ }
1816
+ destroyPopover() {
1817
+ if (this.overlayRef) {
1818
+ this.overlayRef.dispose();
1819
+ this.overlayRef = null;
1820
+ }
1821
+ if (this.contentRef) {
1822
+ this.contentRef.destroy();
1823
+ this.contentRef = null;
1824
+ }
1825
+ }
1826
+ ngOnDestroy() {
1827
+ this.destroyPopover();
1828
+ }
1829
+ }
1830
+ DrPopoverDirective.decorators = [
1831
+ { type: Directive, args: [{
1832
+ selector: '[drPopover]'
1833
+ },] }
1834
+ ];
1835
+ DrPopoverDirective.ctorParameters = () => [
1836
+ { type: Overlay },
1837
+ { type: ViewContainerRef },
1838
+ { type: ComponentFactoryResolver },
1839
+ { type: OverlayPositionBuilder },
1840
+ { type: ElementRef }
1841
+ ];
1842
+ DrPopoverDirective.propDecorators = {
1843
+ content: [{ type: Input, args: ['drPopover',] }],
1844
+ contentContext: [{ type: Input, args: ['drPopoverContext',] }],
1845
+ position: [{ type: Input, args: ['drPopoverPosition',] }],
1846
+ class: [{ type: Input, args: ['drPopoverClass',] }],
1847
+ show: [{ type: HostListener, args: ['click',] }]
1848
+ };
1849
+
1850
+ class DrDropdownService {
1851
+ constructor() {
1852
+ this.actionItem = new Subject();
1853
+ }
1854
+ set addMenu(item) {
1855
+ this.menuInView = item;
1856
+ }
1857
+ destroy() {
1858
+ if (this.menuInView) {
1859
+ this.menuInView.destroy();
1860
+ }
1861
+ }
1862
+ }
1863
+ DrDropdownService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DrDropdownService_Factory() { return new DrDropdownService(); }, token: DrDropdownService, providedIn: "root" });
1864
+ DrDropdownService.decorators = [
1865
+ { type: Injectable, args: [{
1866
+ providedIn: 'root'
1867
+ },] }
1868
+ ];
1869
+ DrDropdownService.ctorParameters = () => [];
1870
+
1871
+ class DrDropdownComponent {
1872
+ constructor(menuService, cdr) {
1873
+ this.menuService = menuService;
1874
+ this.cdr = cdr;
1875
+ this.position = 'left';
1876
+ }
1877
+ set options(data) {
1878
+ if (data) {
1879
+ this.option = data.option;
1880
+ this.position = data.position;
1881
+ this.list = data.list || [];
1882
+ this.list.forEach(item => {
1883
+ var _a;
1884
+ if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
1885
+ item.childOptions = {
1886
+ list: item.children,
1887
+ position: 'child'
1888
+ };
1889
+ }
1890
+ });
1891
+ this.cdr.markForCheck();
1892
+ }
1893
+ }
1894
+ onClickedOutside() {
1895
+ if (this.firstInit) {
1896
+ this.menuService.destroy();
1897
+ }
1898
+ else {
1899
+ this.firstInit = true;
1900
+ }
1901
+ }
1902
+ hide() {
1903
+ this.menuService.destroy();
1904
+ }
1905
+ disabled(act) {
1906
+ if (!act.disabled) {
1907
+ return false;
1908
+ }
1909
+ if (typeof act.disabled === 'boolean') {
1910
+ return act.disabled;
1911
+ }
1912
+ else {
1913
+ return act.disabled(act.data);
1914
+ }
1915
+ }
1916
+ tooltipToShow(act) {
1917
+ return act.toolTipIfDisabled && this.disabled(act) && act.toolTip
1918
+ || act.toolTip && !act.toolTipIfDisabled ? act.toolTip : act.title;
1919
+ }
1920
+ action(act) {
1921
+ if (!this.disabled(act)) {
1922
+ if (act.action) {
1923
+ act.action(act.data);
1924
+ }
1925
+ else {
1926
+ this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
1927
+ }
1928
+ this.hide();
1929
+ }
1930
+ }
1931
+ onActionIconClick(actionIcon, data) {
1932
+ if (!this.disabled(actionIcon)) {
1933
+ actionIcon.action(data);
1934
+ this.hide();
1935
+ }
1936
+ }
1937
+ }
1938
+ DrDropdownComponent.decorators = [
1939
+ { type: Component, args: [{
1940
+ selector: 'dr-dropdown',
1941
+ 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",
1942
+ changeDetection: ChangeDetectionStrategy.OnPush,
1943
+ 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"]
1944
+ },] }
1945
+ ];
1946
+ DrDropdownComponent.ctorParameters = () => [
1947
+ { type: DrDropdownService },
1948
+ { type: ChangeDetectorRef }
1949
+ ];
1950
+ DrDropdownComponent.propDecorators = {
1951
+ viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
1952
+ menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
1953
+ options: [{ type: Input }]
1954
+ };
1955
+
1956
+ class DrDropdownDirective {
1957
+ constructor(componentFactoryResolver, viewContainerRef, service, el, _document) {
1958
+ this.componentFactoryResolver = componentFactoryResolver;
1959
+ this.viewContainerRef = viewContainerRef;
1960
+ this.service = service;
1961
+ this.el = el;
1962
+ this._document = _document;
1963
+ this.position = 'left';
1964
+ }
1965
+ elementClick() {
1966
+ const option = this.el.nativeElement.getBoundingClientRect();
1967
+ this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());
1968
+ if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {
1969
+ this.contentCmpRef.destroy();
1970
+ this.contentCmpRef = null;
1971
+ }
1972
+ else {
1973
+ this.service.destroy();
1974
+ this.showMenu({
1975
+ option,
1976
+ position: this.position,
1977
+ list: this.drDropdown,
1978
+ });
1979
+ }
1980
+ }
1981
+ documentClick(e) {
1982
+ const menuItem = e.target.classList;
1983
+ if (menuItem.contains('dr-dropdown__container__item') || menuItem.contains('dr-dropdown__container__item__text')) {
1984
+ return;
1985
+ }
1986
+ const elems = this._document.querySelectorAll('dr-dropdown');
1987
+ if (!e.target.contains(this.el.nativeElement) && this.contentCmpRef || elems.length && !e.target.contains(this.el.nativeElement)) {
1988
+ setTimeout(() => elems.forEach(item => item.remove()), 100);
1989
+ }
1990
+ }
1991
+ showMenu(options) {
1992
+ let componentFactory;
1993
+ componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);
1994
+ this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);
1995
+ this.service.addMenu = this.contentCmpRef;
1996
+ this._document.querySelector('nb-layout').appendChild(this.contentCmpRef.location.nativeElement);
1997
+ this.contentCmpRef.instance.options = options;
1998
+ }
1999
+ ngOnDestroy() {
2000
+ if (this.contentCmpRef) {
2001
+ this.contentCmpRef.destroy();
2002
+ }
2003
+ }
2004
+ }
2005
+ DrDropdownDirective.decorators = [
2006
+ { type: Directive, args: [{
2007
+ selector: '[drDropdown]'
2008
+ },] }
2009
+ ];
2010
+ DrDropdownDirective.ctorParameters = () => [
2011
+ { type: ComponentFactoryResolver },
2012
+ { type: ViewContainerRef },
2013
+ { type: DrDropdownService },
2014
+ { type: ElementRef },
2015
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
2016
+ ];
2017
+ DrDropdownDirective.propDecorators = {
2018
+ position: [{ type: Input }],
2019
+ drDropdown: [{ type: Input }],
2020
+ contentCmpRef: [{ type: ViewChild, args: [DrDropdownComponent, { static: true, read: ViewContainerRef },] }],
2021
+ elementClick: [{ type: HostListener, args: ['click',] }],
2022
+ documentClick: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
2023
+ };
2024
+
2025
+ class DrDropdownPositionDirective {
2026
+ constructor(el, renderer) {
2027
+ this.el = el;
2028
+ this.renderer = renderer;
2029
+ this.position = 'left';
2030
+ }
2031
+ ngOnInit() {
2032
+ setTimeout(this.calculatePosition.bind(this), 1);
2033
+ }
2034
+ calculatePosition() {
2035
+ let defaultDelta = 10;
2036
+ let defaultPadding = 0;
2037
+ if (this.position === 'child') {
2038
+ defaultDelta = 0;
2039
+ defaultPadding = 10;
2040
+ const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
2041
+ this.position = {
2042
+ x: this.el.nativeElement.parentElement.parentElement.offsetWidth + 2,
2043
+ y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
2044
+ clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
2045
+ clientY: parentRect.y
2046
+ };
2047
+ }
2048
+ if (typeof this.position === 'string') {
2049
+ this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
2050
+ this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
2051
+ this.drDropdownPosition.y + 'px');
2052
+ this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
2053
+ this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
2054
+ this.drDropdownPosition.x + 'px');
2055
+ const menuHeight = this.el.nativeElement.offsetHeight;
2056
+ const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
2057
+ const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
2058
+ const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
2059
+ if (heightMoreWindowBottom) {
2060
+ this.position = 'top';
2061
+ }
2062
+ if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
2063
+ this.position = 'top-left';
2064
+ this.renderer.setStyle(this.el.nativeElement, 'transform', 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');
2065
+ }
2066
+ if (heightMoreWindowTop && heightMoreWindowBottom) {
2067
+ this.position = 'left-center';
2068
+ }
2069
+ if (this.position === 'bottom-left') {
2070
+ this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(-90%, ${this.drDropdownPosition.height + this.drDropdownPosition.height / 2}px)`);
2071
+ }
2072
+ const className = this.position === 'top' ? 'content-top'
2073
+ : this.position === 'top-left' ? 'content-top-left'
2074
+ : this.position === 'bottom' ? 'content-bottom'
2075
+ : this.position === 'bottom-left' ? 'content-bottom-left'
2076
+ : this.position === 'left' ? 'content-left'
2077
+ : this.position === 'left-center' ? 'content-left-center'
2078
+ : this.position === 'right' ? 'content-right' : '';
2079
+ this.renderer.addClass(this.el.nativeElement, className);
2080
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
2081
+ }
2082
+ else {
2083
+ const widthMoreWindowRight = window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
2084
+ const deltaWidth = widthMoreWindowRight < 0 ? widthMoreWindowRight : defaultDelta;
2085
+ const widthMoreWindowBottom = window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
2086
+ const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
2087
+ this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
2088
+ this.renderer.setStyle(this.el.nativeElement, 'left', (this.position.x + deltaWidth) + 'px');
2089
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
2090
+ }
2091
+ }
2092
+ }
2093
+ DrDropdownPositionDirective.decorators = [
2094
+ { type: Directive, args: [{
2095
+ selector: '[drDropdownPosition]'
2096
+ },] }
2097
+ ];
2098
+ DrDropdownPositionDirective.ctorParameters = () => [
2099
+ { type: ElementRef },
2100
+ { type: Renderer2 }
2101
+ ];
2102
+ DrDropdownPositionDirective.propDecorators = {
2103
+ drDropdownPosition: [{ type: Input }],
2104
+ position: [{ type: Input }]
2105
+ };
2106
+
2107
+ class DrDropdownItemShowPipe {
2108
+ transform(arr) {
2109
+ return arr.filter(item => item.show ? item.show(item.data) : true);
2110
+ }
2111
+ }
2112
+ DrDropdownItemShowPipe.decorators = [
2113
+ { type: Pipe, args: [{
2114
+ name: 'drDropdownItemShowPipe'
2115
+ },] }
2116
+ ];
2117
+
1476
2118
  const components$2 = [DateTagComponent,
1477
2119
  DayTagComponent,
1478
2120
  WeekTagComponent,
@@ -1544,18 +2186,21 @@ DrTagModule.decorators = [
1544
2186
  },] }
1545
2187
  ];
1546
2188
 
1547
- const components$1 = [RadioButtonComponent, CheckboxComponent, DrInputComponent, DrSelectComponent, DrToggleComponent];
2189
+ const components$1 = [DrButtonComponent, RadioButtonComponent, CheckboxComponent, DrInputComponent, DrSelectComponent, DrToggleComponent, DrDatePickerComponent, DrDatePickerFormatDirective];
1548
2190
  class DrInputsModule {
1549
2191
  }
1550
2192
  DrInputsModule.decorators = [
1551
2193
  { type: NgModule, args: [{
1552
- declarations: components$1,
2194
+ declarations: [
2195
+ components$1,
2196
+ ],
1553
2197
  exports: components$1,
1554
2198
  imports: [
1555
2199
  FormsModule,
1556
2200
  ReactiveFormsModule,
1557
2201
  CommonModule,
1558
2202
  NgSelectModule,
2203
+ MatDatepickerModule,
1559
2204
  ]
1560
2205
  },] }
1561
2206
  ];
@@ -1611,11 +2256,56 @@ DrSpinnerModule.decorators = [
1611
2256
  },] }
1612
2257
  ];
1613
2258
 
2259
+ class DrPopoverModule {
2260
+ }
2261
+ DrPopoverModule.decorators = [
2262
+ { type: NgModule, args: [{
2263
+ imports: [
2264
+ CommonModule,
2265
+ ],
2266
+ exports: [
2267
+ DrPopoverDirective,
2268
+ DrPopoverComponent,
2269
+ ],
2270
+ providers: [],
2271
+ declarations: [
2272
+ DrPopoverDirective,
2273
+ DrPopoverComponent,
2274
+ ],
2275
+ },] }
2276
+ ];
2277
+
2278
+ class DrDropdownModule {
2279
+ }
2280
+ DrDropdownModule.decorators = [
2281
+ { type: NgModule, args: [{
2282
+ imports: [
2283
+ CommonModule,
2284
+ DrTooltipModule,
2285
+ ],
2286
+ declarations: [
2287
+ DrDropdownDirective,
2288
+ DrDropdownPositionDirective,
2289
+ DrDropdownComponent,
2290
+ DrDropdownItemShowPipe,
2291
+ ],
2292
+ exports: [
2293
+ DrDropdownDirective,
2294
+ DrDropdownPositionDirective,
2295
+ DrDropdownComponent,
2296
+ DrDropdownItemShowPipe,
2297
+ ],
2298
+ providers: [
2299
+ DrDropdownService,
2300
+ ],
2301
+ },] }
2302
+ ];
2303
+
1614
2304
  /* components */
1615
2305
 
1616
2306
  /**
1617
2307
  * Generated bundle index. Do not edit.
1618
2308
  */
1619
2309
 
1620
- 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, TooltipPosition, WeekTagComponent, YearTagComponent, components$2 as ɵa };
2310
+ 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 };
1621
2311
  //# sourceMappingURL=datarailsshared-datarailsshared.js.map