@datarailsshared/datarailsshared 1.3.6 → 1.3.9

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