adb-shared 3.0.6 → 3.0.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.
@@ -9,8 +9,8 @@ import * as i1 from '@angular/common/http';
9
9
  import { HttpClientModule } from '@angular/common/http';
10
10
  import * as i1$2 from '@angular/router';
11
11
  import { RouterModule } from '@angular/router';
12
- import { isValid, parseISO, startOfDay, subYears, endOfDay, addYears, getMonth, subMonths, addMonths, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isSameDay, isSameMonth, isWithinInterval } from 'date-fns';
13
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
12
+ import { startOfDay, subYears, endOfDay, addYears, getMonth, subMonths, addMonths, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isSameDay, isSameMonth, isWithinInterval, isValid, parseISO } from 'date-fns';
13
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
14
14
  import { delay } from 'rxjs/operators';
15
15
 
16
16
  class EnvironmentService {
@@ -504,202 +504,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
504
504
  }]
505
505
  }] });
506
506
 
507
- class AdbDatePickerService {
508
- }
509
- /** @nocollapse */ AdbDatePickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
510
- /** @nocollapse */ AdbDatePickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService });
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService, decorators: [{
512
- type: Injectable
513
- }] });
514
-
515
- class AdbDatePickerDirective {
516
- constructor(viewContainerRef, renderer, elementRef, adbDatePickerService, translate) {
517
- this.viewContainerRef = viewContainerRef;
518
- this.renderer = renderer;
519
- this.elementRef = elementRef;
520
- this.adbDatePickerService = adbDatePickerService;
521
- this.translate = translate;
522
- this.autocomplete = 'off';
523
- this.subscriptions = new Subscription();
524
- this.format = 'yyyy-MM-dd';
525
- this.settings = null;
526
- this.pickOnly = true;
527
- //ControlValueAccessor
528
- this.onChange = () => { };
529
- this.onTouched = () => { };
530
- }
531
- ngOnInit() {
532
- if (!this.pickOnly) {
533
- this.elementRef.nativeElement.setAttribute("placeholder", this.format);
534
- }
535
- }
536
- onClick() {
537
- if (this.adbDatePickerService.viewRef) {
538
- this.adbDatePickerService.viewRef.destroy();
539
- }
540
- const viewRef = this.viewContainerRef.createComponent(AdbDatePickerComponent);
541
- viewRef.instance.settings = this.settings;
542
- viewRef.instance.toLeft = this.toLeft;
543
- viewRef.instance.initialDate = this.initialDate;
544
- this.id = this.getId();
545
- viewRef.instance.id = this.id;
546
- viewRef.instance.selectDate.subscribe((date) => {
547
- this.elementRef.nativeElement.classList.remove('ng-invalid');
548
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
549
- this.onChange(date);
550
- this.initialDate = date;
551
- this.onHide();
552
- });
553
- viewRef.instance.hide.subscribe(() => {
554
- this.onHide();
555
- });
556
- this.adbDatePickerService.viewRef = viewRef;
557
- }
558
- onKeyup(event) {
559
- const date = AdbDatePickerDirective.tryParse(event.target.value, this.format);
560
- if (date) {
561
- this.onChange(date);
562
- this.initialDate = date;
563
- }
564
- }
565
- onHide() {
566
- this.adbDatePickerService.viewRef = null;
567
- this.viewContainerRef.detach();
568
- this.viewContainerRef.clear();
569
- }
570
- onBlur() {
571
- const value = this.elementRef.nativeElement.value;
572
- if (value?.trim() === "") {
573
- this.elementRef.nativeElement.classList.remove('ng-invalid');
574
- this.onChange(null);
575
- }
576
- else {
577
- const date = AdbDatePickerDirective.tryParse(value, this.format);
578
- if (!date) {
579
- this.elementRef.nativeElement.classList.add('ng-invalid');
580
- this.subscriptions.add(this.translate.get('INVALID_DATE').subscribe(trans => {
581
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', trans);
582
- }));
583
- }
584
- else {
585
- this.elementRef.nativeElement.classList.remove('ng-invalid');
586
- }
587
- }
588
- }
589
- handleKeyboardEvent(event) {
590
- if (event.key === 'Tab') {
591
- this.onHide();
592
- }
593
- else if (this.pickOnly) {
594
- event.preventDefault();
595
- }
596
- }
597
- onCheckOutSideClick(target) {
598
- const nativeElement = this.adbDatePickerService.viewRef?.instance.elementRef.nativeElement ?? null;
599
- if (nativeElement) {
600
- if (nativeElement.id === this.id) {
601
- if (!target.hasAttribute('adbdatepicker')) {
602
- const clickedInside = nativeElement.contains(target);
603
- if (!clickedInside) {
604
- this.onHide();
605
- }
606
- }
607
- }
608
- }
609
- }
610
- ngOnDestroy() {
611
- this.subscriptions.unsubscribe();
612
- }
613
- writeValue(value) {
614
- if (value) {
615
- this.initialDate = AdbDatePickerDirective.parseDate(value);
616
- if (this.initialDate) {
617
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));
618
- }
619
- }
620
- else {
621
- this.initialDate = null;
622
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');
623
- }
624
- }
625
- registerOnChange(fn) {
626
- this.onChange = fn;
627
- }
628
- registerOnTouched(fn) {
629
- this.onTouched = fn;
630
- }
631
- setDisabledState(isDisabled) {
632
- this.viewContainerRef.clear();
633
- }
634
- static parseDate(value) {
635
- if (typeof value === 'string') {
636
- if (isValid(parseISO(value))) {
637
- return parseISO(value);
638
- }
639
- else {
640
- return null;
641
- }
642
- }
643
- else if (value instanceof Date) {
644
- return value;
645
- }
646
- else {
647
- return null;
648
- }
649
- }
650
- static tryParse(dateString, format) {
651
- const parsed = parseISO(dateString);
652
- return isValid(parsed) && dateString?.length === 10 ? parsed : null;
653
- }
654
- getId() {
655
- return '' + Math.floor(Math.random() * Date.now());
656
- }
657
- }
658
- /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
659
- /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "blur": "onBlur()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
660
- provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
661
- multi: true
662
- }], ngImport: i0 });
663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, decorators: [{
664
- type: Directive,
665
- args: [{
666
- selector: `input[adbDatepicker]`,
667
- providers: [{
668
- provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
669
- multi: true
670
- }]
671
- }]
672
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: AdbDatePickerService }, { type: i1$1.TranslateService }]; }, propDecorators: { autocomplete: [{
673
- type: HostBinding,
674
- args: ['autocomplete']
675
- }], format: [{
676
- type: Input
677
- }], toLeft: [{
678
- type: Input
679
- }], settings: [{
680
- type: Input
681
- }], pickOnly: [{
682
- type: Input
683
- }], onClick: [{
684
- type: HostListener,
685
- args: ['click']
686
- }], onKeyup: [{
687
- type: HostListener,
688
- args: ['keyup', ['$event']]
689
- }], onHide: [{
690
- type: HostListener,
691
- args: ['keyup.esc']
692
- }], onBlur: [{
693
- type: HostListener,
694
- args: ['blur']
695
- }], handleKeyboardEvent: [{
696
- type: HostListener,
697
- args: ['keydown', ['$event']]
698
- }], onCheckOutSideClick: [{
699
- type: HostListener,
700
- args: ['document:click', ['$event.target']]
701
- }] } });
702
-
703
507
  class AdbDatePickerComponent {
704
508
  constructor(elementRef, translate) {
705
509
  this.elementRef = elementRef;
@@ -716,8 +520,8 @@ class AdbDatePickerComponent {
716
520
  ngOnInit() {
717
521
  if (this.settings) {
718
522
  if (this.settings?.minDate || this.settings?.maxDate) {
719
- const minDate = AdbDatePickerDirective.parseDate(this.settings.minDate);
720
- const maxDate = AdbDatePickerDirective.parseDate(this.settings.maxDate);
523
+ const minDate = AdbDatePickerComponent.parseDate(this.settings.minDate);
524
+ const maxDate = AdbDatePickerComponent.parseDate(this.settings.maxDate);
721
525
  this.range = {
722
526
  start: minDate ? startOfDay(minDate) : subYears(new Date(), 1000),
723
527
  end: maxDate ? endOfDay(maxDate) : addYears(new Date(), 1000)
@@ -831,6 +635,22 @@ class AdbDatePickerComponent {
831
635
  }
832
636
  this.weeks = weeks;
833
637
  }
638
+ static parseDate(value) {
639
+ if (typeof value === 'string') {
640
+ if (isValid(parseISO(value))) {
641
+ return parseISO(value);
642
+ }
643
+ else {
644
+ return null;
645
+ }
646
+ }
647
+ else if (value instanceof Date) {
648
+ return value;
649
+ }
650
+ else {
651
+ return null;
652
+ }
653
+ }
834
654
  }
835
655
  AdbDatePickerComponent.MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
836
656
  AdbDatePickerComponent.WEEK_DAYS = ['1', '2', '3', '4', '5', '6', '7'];
@@ -857,6 +677,197 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
857
677
  type: Output
858
678
  }] } });
859
679
 
680
+ class AdbDatePickerService {
681
+ }
682
+ /** @nocollapse */ AdbDatePickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
683
+ /** @nocollapse */ AdbDatePickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService });
684
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerService, decorators: [{
685
+ type: Injectable
686
+ }] });
687
+
688
+ class AdbDatePickerDirective {
689
+ constructor(viewContainerRef, renderer, elementRef, adbDatePickerService, translate) {
690
+ this.viewContainerRef = viewContainerRef;
691
+ this.renderer = renderer;
692
+ this.elementRef = elementRef;
693
+ this.adbDatePickerService = adbDatePickerService;
694
+ this.translate = translate;
695
+ this.autocomplete = 'off';
696
+ this.subscriptions = new Subscription();
697
+ this.format = 'yyyy-MM-dd';
698
+ this.settings = null;
699
+ this.pickOnly = true;
700
+ this.onValidationChange = () => { };
701
+ //ControlValueAccessor
702
+ this.onChange = () => { };
703
+ this.onTouched = () => { };
704
+ }
705
+ ngOnInit() {
706
+ if (!this.pickOnly) {
707
+ this.elementRef.nativeElement.setAttribute("placeholder", this.format);
708
+ }
709
+ }
710
+ onClick() {
711
+ if (this.adbDatePickerService.viewRef) {
712
+ this.adbDatePickerService.viewRef.destroy();
713
+ }
714
+ const viewRef = this.viewContainerRef.createComponent(AdbDatePickerComponent);
715
+ viewRef.instance.settings = this.settings;
716
+ viewRef.instance.toLeft = this.toLeft;
717
+ viewRef.instance.initialDate = this.initialDate;
718
+ this.id = this.getId();
719
+ viewRef.instance.id = this.id;
720
+ viewRef.instance.selectDate.subscribe((date) => {
721
+ this.elementRef.nativeElement.classList.remove('ng-invalid');
722
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(date, this.format, this.translate.currentLang));
723
+ this.onChange(date);
724
+ this.initialDate = date;
725
+ this.onHide();
726
+ });
727
+ viewRef.instance.hide.subscribe(() => {
728
+ this.onHide();
729
+ });
730
+ this.adbDatePickerService.viewRef = viewRef;
731
+ }
732
+ onKeyup(event) {
733
+ if (!this.pickOnly) {
734
+ this.onChange(event.target.value);
735
+ }
736
+ }
737
+ onHide() {
738
+ this.adbDatePickerService.viewRef = null;
739
+ this.viewContainerRef.detach();
740
+ this.viewContainerRef.clear();
741
+ }
742
+ handleKeyboardEvent(event) {
743
+ if (event.key === 'Tab') {
744
+ this.onHide();
745
+ }
746
+ else if (this.pickOnly) {
747
+ event.preventDefault();
748
+ }
749
+ }
750
+ onCheckOutSideClick(target) {
751
+ const nativeElement = this.adbDatePickerService.viewRef?.instance.elementRef.nativeElement ?? null;
752
+ if (nativeElement) {
753
+ if (nativeElement.id === this.id) {
754
+ if (!target.hasAttribute('adbdatepicker')) {
755
+ const clickedInside = nativeElement.contains(target);
756
+ if (!clickedInside) {
757
+ this.onHide();
758
+ }
759
+ }
760
+ }
761
+ }
762
+ }
763
+ ngOnDestroy() {
764
+ this.subscriptions.unsubscribe();
765
+ }
766
+ //Validator
767
+ validate(control) {
768
+ const value = control.value;
769
+ if (value instanceof Date) {
770
+ return null;
771
+ }
772
+ if (typeof value === 'string' || value instanceof String) {
773
+ const date = AdbDatePickerDirective.tryParse(value);
774
+ if (!date) {
775
+ return { date: true };
776
+ }
777
+ }
778
+ return null;
779
+ }
780
+ registerOnValidatorChange(fn) {
781
+ this.onValidationChange = fn;
782
+ }
783
+ writeValue(value) {
784
+ if (value) {
785
+ if (typeof value === 'string' || value instanceof String) {
786
+ const date = AdbDatePickerDirective.tryParse(value);
787
+ if (!date) {
788
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);
789
+ return;
790
+ }
791
+ }
792
+ if (value instanceof Date) {
793
+ this.initialDate = value;
794
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(this.initialDate, this.format, this.translate.currentLang));
795
+ }
796
+ }
797
+ else {
798
+ this.initialDate = null;
799
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');
800
+ }
801
+ }
802
+ registerOnChange(fn) {
803
+ this.onChange = fn;
804
+ }
805
+ registerOnTouched(fn) {
806
+ this.onTouched = fn;
807
+ }
808
+ setDisabledState(isDisabled) {
809
+ this.viewContainerRef.clear();
810
+ }
811
+ static tryParse(dateString) {
812
+ const parsed = parseISO(dateString);
813
+ return isValid(parsed) ? parsed : null;
814
+ }
815
+ getId() {
816
+ return '' + Math.floor(Math.random() * Date.now());
817
+ }
818
+ }
819
+ /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
820
+ /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", toLeft: "toLeft", settings: "settings", pickOnly: "pickOnly" }, host: { listeners: { "click": "onClick()", "keyup": "onKeyup($event)", "keyup.esc": "onHide()", "keydown": "handleKeyboardEvent($event)", "document:click": "onCheckOutSideClick($event.target)" }, properties: { "autocomplete": "this.autocomplete" } }, providers: [{
821
+ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
822
+ multi: true
823
+ },
824
+ {
825
+ provide: NG_VALIDATORS,
826
+ useExisting: AdbDatePickerDirective,
827
+ multi: true,
828
+ },], ngImport: i0 });
829
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, decorators: [{
830
+ type: Directive,
831
+ args: [{
832
+ selector: `input[adbDatepicker]`,
833
+ providers: [{
834
+ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
835
+ multi: true
836
+ },
837
+ {
838
+ provide: NG_VALIDATORS,
839
+ useExisting: AdbDatePickerDirective,
840
+ multi: true,
841
+ },]
842
+ }]
843
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: AdbDatePickerService }, { type: i1$1.TranslateService }]; }, propDecorators: { autocomplete: [{
844
+ type: HostBinding,
845
+ args: ['autocomplete']
846
+ }], format: [{
847
+ type: Input
848
+ }], toLeft: [{
849
+ type: Input
850
+ }], settings: [{
851
+ type: Input
852
+ }], pickOnly: [{
853
+ type: Input
854
+ }], onClick: [{
855
+ type: HostListener,
856
+ args: ['click']
857
+ }], onKeyup: [{
858
+ type: HostListener,
859
+ args: ['keyup', ['$event']]
860
+ }], onHide: [{
861
+ type: HostListener,
862
+ args: ['keyup.esc']
863
+ }], handleKeyboardEvent: [{
864
+ type: HostListener,
865
+ args: ['keydown', ['$event']]
866
+ }], onCheckOutSideClick: [{
867
+ type: HostListener,
868
+ args: ['document:click', ['$event.target']]
869
+ }] } });
870
+
860
871
  class AdbDatePickerModule {
861
872
  }
862
873
  /** @nocollapse */ AdbDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });