@annalib/anna-core 1.2.1 → 1.2.2

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 (27) hide show
  1. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +2 -2
  2. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +9 -8
  3. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +60 -3
  4. package/esm2020/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +2 -2
  5. package/esm2020/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +9 -8
  6. package/esm2020/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +60 -3
  7. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +2 -2
  8. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +1 -1
  9. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +8 -7
  10. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +1 -1
  11. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +59 -2
  12. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +1 -1
  13. package/fesm2015/annalib-anna-core.mjs +69 -11
  14. package/fesm2015/annalib-anna-core.mjs.map +1 -1
  15. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +2 -2
  16. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +1 -1
  17. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +8 -7
  18. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +1 -1
  19. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +59 -2
  20. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +1 -1
  21. package/fesm2020/annalib-anna-core.mjs +69 -11
  22. package/fesm2020/annalib-anna-core.mjs.map +1 -1
  23. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +3 -2
  24. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +7 -2
  25. package/package.json +1 -1
  26. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +3 -2
  27. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +7 -2
@@ -369,17 +369,18 @@ class AnnaCalendarFilterComponent {
369
369
  this.disableApplyBtn = false;
370
370
  this.dateToBeShownInInput = "";
371
371
  }
372
- ngOnInit() {
372
+ ngOnChanges(changes) {
373
373
  this.fromDate = this.selectedFromDate;
374
374
  this.toDate = this.selectedToDate;
375
- console.log(this.minDate);
376
- console.log(this.maxDate);
377
- console.log(this.fromDate);
378
- console.log(this.toDate);
375
+ this.setInputText();
376
+ }
377
+ ngOnInit() {
378
+ // this.fromDate = this.selectedFromDate;
379
+ // this.toDate = this.selectedToDate;
379
380
  this.datePickerConfig.markDisabled = (date) => {
380
381
  return false;
381
382
  };
382
- this.setInputText();
383
+ // this.setInputText();
383
384
  }
384
385
  onDateSelection(date) {
385
386
  if (!this.fromDate && !this.toDate) {
@@ -427,7 +428,7 @@ class AnnaCalendarFilterComponent {
427
428
  }
428
429
  }
429
430
  AnnaCalendarFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaCalendarFilterComponent, deps: [{ token: i2.AnnaDateTimeFormatService }, { token: i1.NgbDatepickerConfig }], target: i0.ɵɵFactoryTarget.Component });
430
- AnnaCalendarFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AnnaCalendarFilterComponent, selector: "anna-core-calendar-filter-lib", inputs: { maxDate: "maxDate", label: "label", minDate: "minDate", selectedFromDate: "selectedFromDate", selectedToDate: "selectedToDate" }, outputs: { selectedDate: "selectedDate", apply: "apply", cancel: "cancel" }, ngImport: i0, template: "<!-- container=\"body\"\r\ndatepickerClass = \"calendar-filter\" -->\r\n \r\n<p class=\"calendar-label\">{{label}}</p>\r\n<form>\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [autoClose]=\"'outside'\"\r\n [startDate]=\"fromDate\"\r\n navigation=\"select\"\r\n >\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate\r\n id = \"datepicker-input\"\r\n class=\"form-control\" placeholder=\"mm/dd/yyyy\"\r\n readonly\r\n name=\"dpFromDate\"\r\n [value]=\"dateToBeShownInInput\"\r\n >\r\n <button class=\"icon-container\" (click)=\"datepicker.toggle()\" type=\"button\"><i class=\"mdi mdi-calendar-range\"></i></button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n", styles: [":host::ng-deep div.ngb-dp-arrow.right{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{background-color:#fff!important}:host::ng-deep div.ngb-dp-header{background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range{background-color:#268bff;color:#fff}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33;color:#000;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}input#datepicker-input,button.icon-container{background:white;border:none}input#datepicker-input{color:#202b47;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input#datepicker-input:focus{box-shadow:none}div.input-group{border:1px solid #b7b7b7;border-radius:2px;width:94%}.calendar-label{font-family:Roboto;font-size:12px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#666;margin-top:7px;margin-bottom:0;text-align:left;margin-left:10px}\n"], directives: [{ type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
431
+ AnnaCalendarFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AnnaCalendarFilterComponent, selector: "anna-core-calendar-filter-lib", inputs: { maxDate: "maxDate", label: "label", minDate: "minDate", selectedFromDate: "selectedFromDate", selectedToDate: "selectedToDate" }, outputs: { selectedDate: "selectedDate", apply: "apply", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<!-- container=\"body\"\r\ndatepickerClass = \"calendar-filter\" -->\r\n \r\n<p class=\"calendar-label\">{{label}}</p>\r\n<form>\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [autoClose]=\"'outside'\"\r\n [startDate]=\"fromDate\"\r\n navigation=\"select\"\r\n >\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate\r\n id = \"datepicker-input\"\r\n class=\"form-control\" placeholder=\"mm/dd/yyyy\"\r\n readonly\r\n name=\"dpFromDate\"\r\n [value]=\"dateToBeShownInInput\"\r\n >\r\n <button class=\"icon-container\" (click)=\"datepicker.toggle()\" type=\"button\"><i class=\"mdi mdi-calendar-range\"></i></button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n", styles: [":host::ng-deep div.ngb-dp-arrow.right{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{background-color:#fff!important}:host::ng-deep div.ngb-dp-header{background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range{background-color:#268bff;color:#fff}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33;color:#000;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}input#datepicker-input,button.icon-container{background:white;border:none}input#datepicker-input{color:#202b47;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input#datepicker-input:focus{box-shadow:none}div.input-group{border:1px solid #b7b7b7;border-radius:2px;width:94%}.calendar-label{font-family:Roboto;font-size:12px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#666;margin-top:7px;margin-bottom:0;text-align:left;margin-left:10px}\n"], directives: [{ type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
431
432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaCalendarFilterComponent, decorators: [{
432
433
  type: Component,
433
434
  args: [{ selector: "anna-core-calendar-filter-lib", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- container=\"body\"\r\ndatepickerClass = \"calendar-filter\" -->\r\n \r\n<p class=\"calendar-label\">{{label}}</p>\r\n<form>\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [autoClose]=\"'outside'\"\r\n [startDate]=\"fromDate\"\r\n navigation=\"select\"\r\n >\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate\r\n id = \"datepicker-input\"\r\n class=\"form-control\" placeholder=\"mm/dd/yyyy\"\r\n readonly\r\n name=\"dpFromDate\"\r\n [value]=\"dateToBeShownInInput\"\r\n >\r\n <button class=\"icon-container\" (click)=\"datepicker.toggle()\" type=\"button\"><i class=\"mdi mdi-calendar-range\"></i></button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n", styles: [":host::ng-deep div.ngb-dp-arrow.right{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{background-color:#fff!important}:host::ng-deep div.ngb-dp-header{background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range{background-color:#268bff;color:#fff}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33;color:#000;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}input#datepicker-input,button.icon-container{background:white;border:none}input#datepicker-input{color:#202b47;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input#datepicker-input:focus{box-shadow:none}div.input-group{border:1px solid #b7b7b7;border-radius:2px;width:94%}.calendar-label{font-family:Roboto;font-size:12px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#666;margin-top:7px;margin-bottom:0;text-align:left;margin-left:10px}\n"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"annalib-anna-core-src-lib-anna-dropdown-lib.mjs","sources":["../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html","../../../projects/anna-core/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/public-api.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.ts"],"sourcesContent":["// Angular import statements\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\n\r\n// Third party import statements\r\nimport { NgbCalendar, NgbDate, NgbDatepickerConfig, NgbDateStruct, NgbInputDatepicker } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport moment from \"moment\";\r\n\r\n// User defined import statements\r\n\r\n//sub-entries of anna lib import statement\r\nimport { WeekObject, IWeekCalendar, AnnaDateTimeFormatService, AnnaGlobalConfigService } from \"@annalib/anna-core/src/lib/anna-core-shared-lib\";\r\n\r\n\r\n@Component({\r\n selector: \"anna-core-week-calendar-filter-lib\",\r\n templateUrl: \"./anna-week-calendar-filter.component.html\",\r\n styleUrls: [\"./anna-week-calendar-filter.component.scss\"],\r\n})\r\nexport class AnnaWeekCalendarComponent implements OnInit, OnChanges, AfterViewInit {\r\n fromDate: NgbDate | null;\r\n hoveredDate: NgbDate | null = null;\r\n toDate: NgbDate | null = null;\r\n today: NgbDate;\r\n\r\n model: NgbDateStruct;\r\n\r\n weekNumbers: string[] = [];\r\n pipe: DatePipe;\r\n dateToDisplay: string = \"\";\r\n weekObjects: WeekObject[];\r\n multiSelectDropdownOpen: boolean = false;\r\n datepicker: NgbInputDatepicker;\r\n private formatter: any;\r\n public formattedStartDate: string;\r\n public formattedEndDate: string;\r\n private calendarMap = new Map();\r\n private flag1: boolean;\r\n private flag2: boolean;\r\n @Input(\"from-date\") selectedFromDate: NgbDateStruct;\r\n @Input(\"to-date\") selectedEndDate: NgbDateStruct;\r\n @Input(\"disabled-dates\") disabledDates: NgbDate[] = [];\r\n @Input() maxDate: any;\r\n @Input() minDate: any;\r\n\r\n disabledFunc: any;\r\n state: any;\r\n\r\n //Setting the default values;\r\n private _defaultValues: IWeekCalendar;\r\n\r\n @Input(\"week-calendar-config\") config: IWeekCalendar;\r\n @Output(\"apply\") applyWeekCalendarChanges = new EventEmitter();\r\n @Output(\"toggle-calendar\") calendarToggled = new EventEmitter();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n //if some values are not sent, setting the default values\r\n this._defaultValues = this.globalConfigService.defaultWeekCalendarConfig;\r\n this.config = { ...this._defaultValues, ...this.config };\r\n\r\n if (this.config.selectCurrentWeek) {\r\n this.initializeWeekData();\r\n this.fromDate && this.selectWeek(this.fromDate);\r\n }\r\n\r\n this.formatter = this.formattedDates();\r\n\r\n if (this.selectedFromDate && this.selectedEndDate && this.config) {\r\n // this.selectWeek(this.fromDate);\r\n this.fromDate = NgbDate.from(this.selectedFromDate);\r\n this.toDate = NgbDate.from(this.selectedEndDate);\r\n this.weekNumberGenerator();\r\n this.displayToUI();\r\n this.setCalendarMap();\r\n }\r\n\r\n if (this.disabledDates.length > 0) {\r\n this.disabledFunc = (date: NgbDate, current: { month: number }) => {\r\n return this.checkIfDateIsDisabled(date);\r\n };\r\n }\r\n }\r\n\r\n constructor(\r\n private calendar: NgbCalendar,\r\n private datePickerConfig: NgbDatepickerConfig,\r\n private annaDateTimeFormatService: AnnaDateTimeFormatService,\r\n private globalConfigService: AnnaGlobalConfigService\r\n ) { }\r\n\r\n\r\n getWeekNumber(week: any, firstDayOfWeek: any) {\r\n const weekStartDate = moment(convertNgbDateToMoment(week[0]), \"MM/DD/YYYY\");\r\n const weekYear = weekStartDate.year();\r\n const yearStartDate = moment(`01/01/${weekYear}`, \"MM/DD/YYYY\");\r\n const weekDay = yearStartDate.day();\r\n\r\n const noOfDays = weekStartDate.diff(yearStartDate, \"d\") + 1;\r\n\r\n function convertNgbDateToMoment(ngbDate: NgbDate): string {\r\n let converted = moment();\r\n converted.month(ngbDate.month - 1);\r\n converted.date(ngbDate.day);\r\n converted.year(ngbDate.year);\r\n return converted.format(\"MM/DD/YYYY\");\r\n }\r\n\r\n function checkIfYearIsBroadcastLeapYear() {\r\n let isLeapYear = (weekYear % 4 == 0 && weekYear % 100 != 0) || weekYear % 400 == 0;\r\n return (isLeapYear && (weekDay == 0 || weekDay == 6)) || (!isLeapYear && weekDay == 0);\r\n }\r\n\r\n const isLeapYear = checkIfYearIsBroadcastLeapYear();\r\n const divider = isLeapYear ? 53 : 52;\r\n const adder = isLeapYear ? 2 : 1;\r\n\r\n let broadcastNumberOfDays = weekDay + noOfDays;\r\n let broadcastWeekNumber = broadcastNumberOfDays % 7 > 0 ? broadcastNumberOfDays / 7 + adder : broadcastNumberOfDays / 7;\r\n\r\n if (Math.floor(broadcastWeekNumber % divider) === 0) {\r\n return divider;\r\n }\r\n return Math.floor(broadcastWeekNumber % divider);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // CHANGES@ANNALIB Changed this.\r\n // this.calendar[\"__proto__\"].getWeekNumber = this.getWeekNumber;\r\n Object.setPrototypeOf(this.calendar, {getWeekNumber: this.getWeekNumber})\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.selectWeek(this.fromDate);\r\n this.setCalendarMap();\r\n }\r\n\r\n initializeWeekData() {\r\n this.weekObjects = [];\r\n\r\n this.fromDate = this.calendar.getToday();\r\n this.today = this.calendar.getToday();\r\n\r\n let backDatedPeriod = JSON.parse(localStorage.getItem(\"userDetails\") || '{}').locking_period_days;\r\n if (backDatedPeriod < 0) {\r\n let date: NgbDate = this.calendar.getPrev(this.calendar.getToday(), \"d\", Math.abs(backDatedPeriod));\r\n this.today = NgbDate.from(date);\r\n this.fromDate = NgbDate.from(date);\r\n }\r\n\r\n // Disable months before numberOfMonthsToEnable\r\n this.datePickerConfig.markDisabled = (date: NgbDateStruct) => {\r\n let previousMonth = this.calendar.getPrev(this.today, \"m\", this.config.numberOfMonthsToEnableInPast);\r\n let previousDay = this.calendar.getPrev(previousMonth, \"d\", 1);\r\n return !NgbDate.from(previousDay).before(date);\r\n };\r\n this.formatter = this.formattedDates();\r\n this.flag1 = false;\r\n this.flag2 = false;\r\n }\r\n\r\n selectWeek(date: NgbDate): void {\r\n const dateObject = new Date(date.year, date.month - 1, date.day);\r\n let constructDate = this.buildDate(dateObject);\r\n\r\n if (!this.config.selectMultipleWeeks) {\r\n //Single week selection\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n this.weekNumberGenerator();\r\n } else {\r\n if (date.before(this.fromDate)) {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n if (this.flag1) {\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n this.flag1 = !this.flag1;\r\n } else if (date.after(this.toDate)) {\r\n if (this.flag2) {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n //this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n this.flag2 = !this.flag2;\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n } else {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n\r\n if (this.disabledDates.length > 0) {\r\n let momentStartDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(this.fromDate), \"MM/DD/YYYY\");\r\n let momentEndDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(this.toDate), \"MM/DD/YYYY\");\r\n let ngbDate;\r\n while (!momentStartDate.isSame(momentEndDate)) {\r\n ngbDate = this.annaDateTimeFormatService.convertToNgbDate(momentStartDate, \"MM/DD/YYYY\");\r\n if (this.checkIfDateIsDisabled(ngbDate)) {\r\n break;\r\n }\r\n momentStartDate.add(1, \"d\");\r\n }\r\n let newDateObject = new Date(ngbDate.year, ngbDate.month - 1, ngbDate.day - 1);\r\n let constructDate = this.buildDate(newDateObject);\r\n this.toDate = this.constructEndDate(newDateObject)(constructDate);\r\n }\r\n\r\n this.weekNumberGenerator();\r\n }\r\n\r\n if (!this.config.showAsDropdown) {\r\n this.applyChanges();\r\n }\r\n }\r\n\r\n weekNumberGenerator(): void {\r\n let dates = [];\r\n let week = [];\r\n\r\n let startDate = NgbDate.from(this.fromDate);\r\n let endDate = NgbDate.from(this.toDate);\r\n\r\n week.push(startDate);\r\n while (endDate != null && !startDate.equals(endDate)) {\r\n let date = this.calendar.getNext(startDate, \"d\", 1);\r\n startDate = date;\r\n week.push(date);\r\n\r\n // Collect all days in week to calculate the week number\r\n if (week.length == 7) {\r\n dates.push(week);\r\n week = [];\r\n }\r\n }\r\n if (((this.config.maxWeeksToSelect ?? 0) > 0 && dates.length > (this.config.maxWeeksToSelect ?? 0))) {\r\n dates.splice((this.config.maxWeeksToSelect ?? 0), dates.length - (this.config.maxWeeksToSelect ?? 0));\r\n }\r\n this.selectedDates(dates);\r\n\r\n this.weekNumbers = [];\r\n this.weekObjects = [];\r\n if (dates.length > 0) {\r\n for (let date of dates) {\r\n this.weekNumbers.push(\" Week \" + this.calendar.getWeekNumber(date, this.config.firstDayOfWeek));\r\n let dates = this.formatter(date[0], date[6]);\r\n let dateObjects = { startDate: dates.formattedStartDate, endDate: dates.formattedEndDate };\r\n this.weekObjects.push(dateObjects);\r\n }\r\n }\r\n this.displayToUI();\r\n }\r\n\r\n selectedDates(dates: any) {\r\n this.fromDate = dates[0][0];\r\n this.toDate = dates[dates.length - 1][6];\r\n }\r\n\r\n formattedDates() {\r\n let pipe = new DatePipe(\"en-US\");\r\n let thisObj = this;\r\n return function (fromDate: NgbDate, toDate: NgbDate) {\r\n let fromDateObject = new Date(fromDate.year, fromDate.month - 1, fromDate.day);\r\n let toDateObject = new Date(toDate.year, toDate.month - 1, toDate.day);\r\n thisObj.formattedStartDate = pipe.transform(fromDateObject, thisObj.config.dateFormatForRequest);\r\n thisObj.formattedEndDate = pipe.transform(toDateObject, thisObj.config.dateFormatForRequest);\r\n\r\n thisObj.dateToDisplay =\r\n pipe.transform(fromDateObject, thisObj.config.dateFormatToDisplay) +\r\n \" to \" +\r\n pipe.transform(toDateObject, thisObj.config.dateFormatToDisplay);\r\n return thisObj;\r\n };\r\n }\r\n\r\n displayToUI() {\r\n if (!this.config.selectMultipleWeeks && this.fromDate && this.toDate) {\r\n // Display for only Single Week\r\n this.formatter(this.fromDate, this.toDate);\r\n } else {\r\n // Display for Multiple Weeks\r\n if (this.weekNumbers.length > (this.config.maxWeeksToShowWithRemainingCount ?? 0)) {\r\n let weekDisplay = [];\r\n for (let i = 0; i < (this.config.maxWeeksToShowWithRemainingCount ?? 0); i++) {\r\n weekDisplay.push(this.weekNumbers.shift());\r\n }\r\n let remainingWeeks = this.weekNumbers.length;\r\n this.weekNumbers = [];\r\n this.weekNumbers.push(weekDisplay + \" +\" + remainingWeeks);\r\n }\r\n }\r\n }\r\n\r\n constructStartDate(date: Date) {\r\n let firstDayOfWeek = this.config.firstDayOfWeek;\r\n return function (constructDate: any) {\r\n let startDay = date.getDay() != 0 ? (firstDayOfWeek ?? 0) - date.getDay() : -6;\r\n return constructDate(startDay);\r\n };\r\n }\r\n\r\n constructEndDate(date: Date) {\r\n let firstDayOfWeek = this.config.firstDayOfWeek;\r\n return function (constructDate: any) {\r\n let endDay = date.getDay() != 0 ? (firstDayOfWeek ?? 0) + 6 - date.getDay() : 0;\r\n return constructDate(endDay);\r\n };\r\n }\r\n\r\n buildDate(date: Date) {\r\n return function (number: number): NgbDate | null {\r\n let day = date.getDate() + number;\r\n const dateObject = new Date(date.getFullYear(), date.getMonth(), day);\r\n\r\n let ngbDateObject = {} as NgbDate;\r\n ngbDateObject.day = day;\r\n\r\n if (ngbDateObject.day > 31 || ngbDateObject.day < 1) {\r\n ngbDateObject.day = dateObject.getDate();\r\n }\r\n\r\n ngbDateObject.month = dateObject.getMonth() + 1;\r\n ngbDateObject.year = dateObject.getFullYear();\r\n return NgbDate.from(ngbDateObject);\r\n };\r\n }\r\n\r\n isHovered(date: NgbDate): boolean | null {\r\n return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDate): boolean | null {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate): boolean | null {\r\n return (\r\n date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date)\r\n );\r\n }\r\n\r\n previousWeek(): void {\r\n if (this.fromDate) {\r\n this.toDate = this.calendar.getPrev(this.fromDate, \"d\", 1);\r\n this.fromDate = this.calendar.getPrev(this.fromDate, \"d\", this.calendar.getDaysPerWeek());\r\n }\r\n this.weekNumberGenerator();\r\n this.applyChanges();\r\n }\r\n\r\n nextWeek(): void {\r\n if (this.fromDate) {\r\n this.fromDate = this.calendar.getNext(this.fromDate, \"d\", this.calendar.getDaysPerWeek());\r\n this.toDate = this.calendar.getNext(this.fromDate, \"d\", this.calendar.getDaysPerWeek() - 1);\r\n }\r\n this.weekNumberGenerator();\r\n this.applyChanges();\r\n }\r\n\r\n setCalendarMap() {\r\n let dateObj = { fromDate: this.fromDate, toDate: this.toDate };\r\n this.calendarMap.set(\"oldDates\", dateObj);\r\n }\r\n\r\n applyChanges() {\r\n this.multiSelectDropdownOpen = false;\r\n if (!this.config.emitMultipleWeekObjects) {\r\n let dates = {} as WeekObject;\r\n let formattedDates = this.formatter(this.fromDate, this.toDate);\r\n dates.startDate = formattedDates.formattedStartDate;\r\n dates.endDate = formattedDates.formattedEndDate;\r\n this.applyWeekCalendarChanges.emit(dates);\r\n } else {\r\n this.applyWeekCalendarChanges.emit(this.weekObjects);\r\n }\r\n this.setCalendarMap();\r\n }\r\n\r\n isFocused(value: any) {\r\n this.calendarToggled.emit(value);\r\n }\r\n\r\n isDropdownOpenedForCalendar(datepicker: NgbInputDatepicker) {\r\n this.datepicker = datepicker;\r\n if (this.datepicker.isOpen()) {\r\n this.revertDates();\r\n this.datepicker.close();\r\n this.multiSelectDropdownOpen = false;\r\n } else {\r\n this.datepicker.open();\r\n this.multiSelectDropdownOpen = true;\r\n }\r\n }\r\n\r\n revertDates() {\r\n this.multiSelectDropdownOpen = false;\r\n if (this.calendarMap.get(\"oldDates\")) {\r\n let dateObj = this.calendarMap.get(\"oldDates\");\r\n this.fromDate = dateObj.fromDate;\r\n this.toDate = dateObj.toDate;\r\n this.weekNumberGenerator();\r\n this.displayToUI();\r\n }\r\n }\r\n\r\n checkIfDateIsDisabled(date: any): boolean {\r\n const validatorFunc = (ngbDate: NgbDate) => ngbDate.year === date.year && ngbDate.month === date.month && ngbDate.day === date.day;\r\n return this.disabledDates.some(validatorFunc);\r\n }\r\n\r\n closeDatepicker(datepickerRef: any) {\r\n datepickerRef.close();\r\n }\r\n}\r\n","<form class=\"form-inline\" *ngIf=\"config.showAsDropdown\">\r\n <div class=\"form-group hidden\">\r\n <div class=\"input-group\">\r\n <input\r\n name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"false\"\r\n (dateSelect)=\"selectWeek($event)\"\r\n (closed)=\"isFocused(false)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [startDate]=\"fromDate!\"\r\n [firstDayOfWeek]=\"config.firstDayOfWeek\"\r\n [showWeekNumbers]=\"config.showWeekNumbers\"\r\n tabindex=\"-1\"\r\n style=\"display: none\"\r\n [footerTemplate]=\"footerTemplate\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <!--Single week select-->\r\n <div *ngIf=\"!config.selectMultipleWeeks\">\r\n <span style=\"position: relative; left: 30px; font-size: 12px\"> &nbsp;{{ weekNumbers }} </span>\r\n <div class=\"form-group\">\r\n <div class=\"input-group\">\r\n <div class=\"single-week\">\r\n <div class=\"left\">\r\n <span class=\"material-icons next-round-btn\" (click)=\"previousWeek()\"> navigate_next </span>\r\n </div>\r\n <input\r\n #dpFromDate\r\n class=\"form-control\"\r\n placeholder=\"Select Weeks\"\r\n [ngClass]=\"[config.customClass == '' ? '' : config.customClass]\"\r\n name=\"dpFromDate\"\r\n [value]=\"dateToDisplay\"\r\n [readonly]=\"true\"\r\n (click)=\"isFocused(true); isDropdownOpenedForCalendar(datepicker)\"\r\n />\r\n <i class=\"mdi mdi-menu-down\" *ngIf='!datepicker.isOpen()' (click)=\"datepicker.open()\"></i>\r\n <i class='mdi mdi-menu-up' *ngIf=\"datepicker.isOpen()\" (click)=\"isDropdownOpenedForCalendar(datepicker)\"></i>\r\n <div class=\"right\">\r\n <span class=\"material-icons round-btn\" (click)=\"nextWeek()\"> navigate_next </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Multiple week select-->\r\n <div class=\"form-group\" *ngIf=\"config.selectMultipleWeeks\">\r\n <div class=\"input-group\">\r\n <div class=\"multiple-weeks\">\r\n <input\r\n #dpFromDate\r\n class=\"form-control\"\r\n placeholder=\"Select Weeks\"\r\n [ngClass]=\"[config.customClass == '' ? '' : config.customClass]\"\r\n name=\"dpFromDate\"\r\n [readonly]=\"true\"\r\n [value]=\"weekNumbers\"\r\n (click)=\"isFocused(true); isDropdownOpenedForCalendar(datepicker)\"\r\n />\r\n <i *ngIf=\"!multiSelectDropdownOpen\" class=\"mdi mdi-menu-down multiselect-input-arrow\"></i>\r\n <i *ngIf=\"multiSelectDropdownOpen\" class=\"mdi mdi-menu-up multiselect-input-arrow\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ngb-datepicker\r\n #weekPicker\r\n *ngIf=\"!config.showAsDropdown\"\r\n [displayMonths]=\"1\"\r\n [startDate]=\"fromDate!\"\r\n [firstDayOfWeek]=\"config.firstDayOfWeek\"\r\n [showWeekNumbers]=\"config.showWeekNumbers\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n (dateSelect)=\"selectWeek($event)\"\r\n [markDisabled]=\"disabledFunc\"\r\n>\r\n</ngb-datepicker>\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\" />\r\n <button\r\n class=\"btn btn-primary btn-sm m-2 float-right\"\r\n (click)=\"applyChanges(); closeDatepicker(datepicker)\"\r\n style=\"background-color: #268bff; color: #ffffff\"\r\n >\r\n Apply\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm m-2 float-right\"\r\n (click)=\"revertDates(); closeDatepicker(datepicker)\"\r\n style=\"background-color: rgba(38, 139, 255, 0.12); color: #268bff\"\r\n >\r\n Cancel\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #t let-date let-focused=\"focused\" let-disabled=\"disabled\">\r\n <span\r\n class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n [class.disabled]=\"disabled\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\"\r\n >\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<!--\r\n\r\n<hr>\r\n\r\n<pre>From: {{ fromDate | json }} </pre>\r\n<pre>To: {{ toDate | json }} </pre>\r\n<pre>weekNumbers: {{ weekNumbers | json }} </pre>\r\n\r\n-->\r\n","// Angular import statements\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n//Third party import statements\r\nimport { NgbDate, NgbDatepickerConfig, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AnnaDateTimeFormatService } from \"@annalib/anna-core/src/lib/anna-core-shared-lib\";\r\n\r\n@Component({\r\n selector: \"anna-core-calendar-filter-lib\",\r\n templateUrl: \"./anna-calendar-filter.component.html\",\r\n styleUrls: [\"./anna-calendar-filter.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AnnaCalendarFilterComponent implements OnInit {\r\n \r\n @Input() maxDate: any;\r\n @Input() label: string;\r\n @Input() minDate: any;\r\n @Output() selectedDate = new EventEmitter();\r\n @Input() selectedFromDate: any;\r\n @Input() selectedToDate: any;\r\n @Output() apply = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n fromDate: any;\r\n toDate: any;\r\n hoveredDate: any;\r\n disableApplyBtn: boolean = false;\r\n dateToBeShownInInput: string = \"\";\r\n\r\n constructor(private annaTimeService: AnnaDateTimeFormatService,\r\n private datePickerConfig: NgbDatepickerConfig) {}\r\n\r\n ngOnInit() {\r\n this.fromDate = this.selectedFromDate;\r\n this.toDate = this.selectedToDate;\r\n console.log(this.minDate);\r\n console.log(this.maxDate);\r\n console.log(this.fromDate);\r\n console.log(this.toDate);\r\n \r\n this.datePickerConfig.markDisabled = (date: NgbDateStruct) => {\r\n return false;\r\n };\r\n\r\n this.setInputText();\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && (date.after(this.fromDate) || date.equals(this.fromDate))) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n this.selectedDate.emit({ fromDate: this.fromDate, toDate: this.toDate });\r\n this.disableCalendarApplyBtn();\r\n this.setInputText();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date)\r\n );\r\n }\r\n\r\n cancelSelection() {\r\n this.cancel.emit();\r\n }\r\n\r\n applySelection() {\r\n if (this.fromDate && this.toDate) {\r\n let dateObj = { fromDate: this.fromDate, toDate: this.toDate };\r\n this.apply.emit(dateObj);\r\n }\r\n }\r\n\r\n disableCalendarApplyBtn() {\r\n this.disableApplyBtn = !(this.fromDate && this.toDate);\r\n }\r\n\r\n setInputText(){\r\n\r\n if(this.fromDate && this.toDate){\r\n this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMoment(this.fromDate)} - ${this.annaTimeService.convertNgbDateToMoment(this.toDate)}`;\r\n }\r\n else if(this.fromDate){\r\n this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMoment(this.fromDate)}`;\r\n \r\n }\r\n\r\n }\r\n \r\n}\r\n","<!-- container=\"body\"\r\ndatepickerClass = \"calendar-filter\" -->\r\n \r\n<p class=\"calendar-label\">{{label}}</p>\r\n<form>\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [autoClose]=\"'outside'\"\r\n [startDate]=\"fromDate\"\r\n navigation=\"select\"\r\n >\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate\r\n id = \"datepicker-input\"\r\n class=\"form-control\" placeholder=\"mm/dd/yyyy\"\r\n readonly\r\n name=\"dpFromDate\"\r\n [value]=\"dateToBeShownInInput\"\r\n >\r\n <button class=\"icon-container\" (click)=\"datepicker.toggle()\" type=\"button\"><i class=\"mdi mdi-calendar-range\"></i></button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n","// Angular import statements\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n// Third party import statements\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// User defined import statements\r\nimport { AnnaWeekCalendarComponent } from './components/anna-week-calendar-filter/anna-week-calendar-filter.component';\r\nimport { AnnaCalendarFilterComponent } from './components/anna-calendar-filter/anna-calendar-filter.component';\r\n\r\n//sub-entries of anna lib import statement\r\nimport { AnnaCoreSharedLibModule } from '@annalib/anna-core/src/lib/anna-core-shared-lib';\r\n\r\n@NgModule({\r\n declarations: [\r\n AnnaWeekCalendarComponent,\r\n AnnaCalendarFilterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgbModule,\r\n AnnaCoreSharedLibModule\r\n ],\r\n exports: [\r\n AnnaWeekCalendarComponent,\r\n AnnaCalendarFilterComponent\r\n ]\r\n\r\n})\r\nexport class AnnaDropdownLibModule { }\r\n","//Modules\r\nexport * from \"./anna-dropdown-lib.module\";\r\n\r\n//Components\r\nexport * from \"./components/anna-calendar-filter/anna-calendar-filter.component\";\r\nexport * from \"./components/anna-week-calendar-filter/anna-week-calendar-filter.component\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"annalib-anna-core-src-lib-anna-dropdown-lib.mjs","sources":["../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html","../../../projects/anna-core/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/public-api.ts","../../../projects/anna-core/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.ts"],"sourcesContent":["// Angular import statements\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\n\r\n// Third party import statements\r\nimport { NgbCalendar, NgbDate, NgbDatepickerConfig, NgbDateStruct, NgbInputDatepicker } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport moment from \"moment\";\r\n\r\n// User defined import statements\r\n\r\n//sub-entries of anna lib import statement\r\nimport { WeekObject, IWeekCalendar, AnnaDateTimeFormatService, AnnaGlobalConfigService } from \"@annalib/anna-core/src/lib/anna-core-shared-lib\";\r\n\r\n\r\n@Component({\r\n selector: \"anna-core-week-calendar-filter-lib\",\r\n templateUrl: \"./anna-week-calendar-filter.component.html\",\r\n styleUrls: [\"./anna-week-calendar-filter.component.scss\"],\r\n})\r\nexport class AnnaWeekCalendarComponent implements OnInit, OnChanges, AfterViewInit {\r\n fromDate: NgbDate | null;\r\n hoveredDate: NgbDate | null = null;\r\n toDate: NgbDate | null = null;\r\n today: NgbDate;\r\n\r\n model: NgbDateStruct;\r\n\r\n weekNumbers: string[] = [];\r\n pipe: DatePipe;\r\n dateToDisplay: string = \"\";\r\n weekObjects: WeekObject[];\r\n multiSelectDropdownOpen: boolean = false;\r\n datepicker: NgbInputDatepicker;\r\n private formatter: any;\r\n public formattedStartDate: string;\r\n public formattedEndDate: string;\r\n private calendarMap = new Map();\r\n private flag1: boolean;\r\n private flag2: boolean;\r\n @Input(\"from-date\") selectedFromDate: NgbDateStruct;\r\n @Input(\"to-date\") selectedEndDate: NgbDateStruct;\r\n @Input(\"disabled-dates\") disabledDates: NgbDate[] = [];\r\n @Input() maxDate: any;\r\n @Input() minDate: any;\r\n\r\n disabledFunc: any;\r\n state: any;\r\n\r\n //Setting the default values;\r\n private _defaultValues: IWeekCalendar;\r\n\r\n @Input(\"week-calendar-config\") config: IWeekCalendar;\r\n @Output(\"apply\") applyWeekCalendarChanges = new EventEmitter();\r\n @Output(\"toggle-calendar\") calendarToggled = new EventEmitter();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n //if some values are not sent, setting the default values\r\n this._defaultValues = this.globalConfigService.defaultWeekCalendarConfig;\r\n this.config = { ...this._defaultValues, ...this.config };\r\n\r\n if (this.config.selectCurrentWeek) {\r\n this.initializeWeekData();\r\n this.fromDate && this.selectWeek(this.fromDate);\r\n }\r\n\r\n this.formatter = this.formattedDates();\r\n\r\n if (this.selectedFromDate && this.selectedEndDate && this.config) {\r\n // this.selectWeek(this.fromDate);\r\n this.fromDate = NgbDate.from(this.selectedFromDate);\r\n this.toDate = NgbDate.from(this.selectedEndDate);\r\n this.weekNumberGenerator();\r\n this.displayToUI();\r\n this.setCalendarMap();\r\n }\r\n\r\n if (this.disabledDates.length > 0) {\r\n this.disabledFunc = (date: NgbDate, current: { month: number }) => {\r\n return this.checkIfDateIsDisabled(date);\r\n };\r\n }\r\n }\r\n\r\n constructor(\r\n private calendar: NgbCalendar,\r\n private datePickerConfig: NgbDatepickerConfig,\r\n private annaDateTimeFormatService: AnnaDateTimeFormatService,\r\n private globalConfigService: AnnaGlobalConfigService\r\n ) { }\r\n\r\n\r\n getWeekNumber(week: any, firstDayOfWeek: any) {\r\n const weekStartDate = moment(convertNgbDateToMoment(week[0]), \"MM/DD/YYYY\");\r\n const weekYear = weekStartDate.year();\r\n const yearStartDate = moment(`01/01/${weekYear}`, \"MM/DD/YYYY\");\r\n const weekDay = yearStartDate.day();\r\n\r\n const noOfDays = weekStartDate.diff(yearStartDate, \"d\") + 1;\r\n\r\n function convertNgbDateToMoment(ngbDate: NgbDate): string {\r\n let converted = moment();\r\n converted.month(ngbDate.month - 1);\r\n converted.date(ngbDate.day);\r\n converted.year(ngbDate.year);\r\n return converted.format(\"MM/DD/YYYY\");\r\n }\r\n\r\n function checkIfYearIsBroadcastLeapYear() {\r\n let isLeapYear = (weekYear % 4 == 0 && weekYear % 100 != 0) || weekYear % 400 == 0;\r\n return (isLeapYear && (weekDay == 0 || weekDay == 6)) || (!isLeapYear && weekDay == 0);\r\n }\r\n\r\n const isLeapYear = checkIfYearIsBroadcastLeapYear();\r\n const divider = isLeapYear ? 53 : 52;\r\n const adder = isLeapYear ? 2 : 1;\r\n\r\n let broadcastNumberOfDays = weekDay + noOfDays;\r\n let broadcastWeekNumber = broadcastNumberOfDays % 7 > 0 ? broadcastNumberOfDays / 7 + adder : broadcastNumberOfDays / 7;\r\n\r\n if (Math.floor(broadcastWeekNumber % divider) === 0) {\r\n return divider;\r\n }\r\n return Math.floor(broadcastWeekNumber % divider);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // CHANGES@ANNALIB Changed this.\r\n // this.calendar[\"__proto__\"].getWeekNumber = this.getWeekNumber;\r\n Object.setPrototypeOf(this.calendar, {getWeekNumber: this.getWeekNumber})\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.selectWeek(this.fromDate);\r\n this.setCalendarMap();\r\n }\r\n\r\n initializeWeekData() {\r\n this.weekObjects = [];\r\n\r\n this.fromDate = this.calendar.getToday();\r\n this.today = this.calendar.getToday();\r\n\r\n let backDatedPeriod = JSON.parse(localStorage.getItem(\"userDetails\") || '{}').locking_period_days;\r\n if (backDatedPeriod < 0) {\r\n let date: NgbDate = this.calendar.getPrev(this.calendar.getToday(), \"d\", Math.abs(backDatedPeriod));\r\n this.today = NgbDate.from(date);\r\n this.fromDate = NgbDate.from(date);\r\n }\r\n\r\n // Disable months before numberOfMonthsToEnable\r\n this.datePickerConfig.markDisabled = (date: NgbDateStruct) => {\r\n let previousMonth = this.calendar.getPrev(this.today, \"m\", this.config.numberOfMonthsToEnableInPast);\r\n let previousDay = this.calendar.getPrev(previousMonth, \"d\", 1);\r\n return !NgbDate.from(previousDay).before(date);\r\n };\r\n this.formatter = this.formattedDates();\r\n this.flag1 = false;\r\n this.flag2 = false;\r\n }\r\n\r\n selectWeek(date: NgbDate): void {\r\n const dateObject = new Date(date.year, date.month - 1, date.day);\r\n let constructDate = this.buildDate(dateObject);\r\n\r\n if (!this.config.selectMultipleWeeks) {\r\n //Single week selection\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n this.weekNumberGenerator();\r\n } else {\r\n if (date.before(this.fromDate)) {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n if (this.flag1) {\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n this.flag1 = !this.flag1;\r\n } else if (date.after(this.toDate)) {\r\n if (this.flag2) {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n //this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n this.flag2 = !this.flag2;\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n } else {\r\n this.fromDate = this.constructStartDate(dateObject)(constructDate);\r\n this.toDate = this.constructEndDate(dateObject)(constructDate);\r\n }\r\n\r\n if (this.disabledDates.length > 0) {\r\n let momentStartDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(this.fromDate), \"MM/DD/YYYY\");\r\n let momentEndDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(this.toDate), \"MM/DD/YYYY\");\r\n let ngbDate;\r\n while (!momentStartDate.isSame(momentEndDate)) {\r\n ngbDate = this.annaDateTimeFormatService.convertToNgbDate(momentStartDate, \"MM/DD/YYYY\");\r\n if (this.checkIfDateIsDisabled(ngbDate)) {\r\n break;\r\n }\r\n momentStartDate.add(1, \"d\");\r\n }\r\n let newDateObject = new Date(ngbDate.year, ngbDate.month - 1, ngbDate.day - 1);\r\n let constructDate = this.buildDate(newDateObject);\r\n this.toDate = this.constructEndDate(newDateObject)(constructDate);\r\n }\r\n\r\n this.weekNumberGenerator();\r\n }\r\n\r\n if (!this.config.showAsDropdown) {\r\n this.applyChanges();\r\n }\r\n }\r\n\r\n weekNumberGenerator(): void {\r\n let dates = [];\r\n let week = [];\r\n\r\n let startDate = NgbDate.from(this.fromDate);\r\n let endDate = NgbDate.from(this.toDate);\r\n\r\n week.push(startDate);\r\n while (endDate != null && !startDate.equals(endDate)) {\r\n let date = this.calendar.getNext(startDate, \"d\", 1);\r\n startDate = date;\r\n week.push(date);\r\n\r\n // Collect all days in week to calculate the week number\r\n if (week.length == 7) {\r\n dates.push(week);\r\n week = [];\r\n }\r\n }\r\n if (((this.config.maxWeeksToSelect ?? 0) > 0 && dates.length > (this.config.maxWeeksToSelect ?? 0))) {\r\n dates.splice((this.config.maxWeeksToSelect ?? 0), dates.length - (this.config.maxWeeksToSelect ?? 0));\r\n }\r\n this.selectedDates(dates);\r\n\r\n this.weekNumbers = [];\r\n this.weekObjects = [];\r\n if (dates.length > 0) {\r\n for (let date of dates) {\r\n this.weekNumbers.push(\" Week \" + this.calendar.getWeekNumber(date, this.config.firstDayOfWeek));\r\n let dates = this.formatter(date[0], date[6]);\r\n let dateObjects = { startDate: dates.formattedStartDate, endDate: dates.formattedEndDate };\r\n this.weekObjects.push(dateObjects);\r\n }\r\n }\r\n this.displayToUI();\r\n }\r\n\r\n selectedDates(dates: any) {\r\n this.fromDate = dates[0][0];\r\n this.toDate = dates[dates.length - 1][6];\r\n }\r\n\r\n formattedDates() {\r\n let pipe = new DatePipe(\"en-US\");\r\n let thisObj = this;\r\n return function (fromDate: NgbDate, toDate: NgbDate) {\r\n let fromDateObject = new Date(fromDate.year, fromDate.month - 1, fromDate.day);\r\n let toDateObject = new Date(toDate.year, toDate.month - 1, toDate.day);\r\n thisObj.formattedStartDate = pipe.transform(fromDateObject, thisObj.config.dateFormatForRequest);\r\n thisObj.formattedEndDate = pipe.transform(toDateObject, thisObj.config.dateFormatForRequest);\r\n\r\n thisObj.dateToDisplay =\r\n pipe.transform(fromDateObject, thisObj.config.dateFormatToDisplay) +\r\n \" to \" +\r\n pipe.transform(toDateObject, thisObj.config.dateFormatToDisplay);\r\n return thisObj;\r\n };\r\n }\r\n\r\n displayToUI() {\r\n if (!this.config.selectMultipleWeeks && this.fromDate && this.toDate) {\r\n // Display for only Single Week\r\n this.formatter(this.fromDate, this.toDate);\r\n } else {\r\n // Display for Multiple Weeks\r\n if (this.weekNumbers.length > (this.config.maxWeeksToShowWithRemainingCount ?? 0)) {\r\n let weekDisplay = [];\r\n for (let i = 0; i < (this.config.maxWeeksToShowWithRemainingCount ?? 0); i++) {\r\n weekDisplay.push(this.weekNumbers.shift());\r\n }\r\n let remainingWeeks = this.weekNumbers.length;\r\n this.weekNumbers = [];\r\n this.weekNumbers.push(weekDisplay + \" +\" + remainingWeeks);\r\n }\r\n }\r\n }\r\n\r\n constructStartDate(date: Date) {\r\n let firstDayOfWeek = this.config.firstDayOfWeek;\r\n return function (constructDate: any) {\r\n let startDay = date.getDay() != 0 ? (firstDayOfWeek ?? 0) - date.getDay() : -6;\r\n return constructDate(startDay);\r\n };\r\n }\r\n\r\n constructEndDate(date: Date) {\r\n let firstDayOfWeek = this.config.firstDayOfWeek;\r\n return function (constructDate: any) {\r\n let endDay = date.getDay() != 0 ? (firstDayOfWeek ?? 0) + 6 - date.getDay() : 0;\r\n return constructDate(endDay);\r\n };\r\n }\r\n\r\n buildDate(date: Date) {\r\n return function (number: number): NgbDate | null {\r\n let day = date.getDate() + number;\r\n const dateObject = new Date(date.getFullYear(), date.getMonth(), day);\r\n\r\n let ngbDateObject = {} as NgbDate;\r\n ngbDateObject.day = day;\r\n\r\n if (ngbDateObject.day > 31 || ngbDateObject.day < 1) {\r\n ngbDateObject.day = dateObject.getDate();\r\n }\r\n\r\n ngbDateObject.month = dateObject.getMonth() + 1;\r\n ngbDateObject.year = dateObject.getFullYear();\r\n return NgbDate.from(ngbDateObject);\r\n };\r\n }\r\n\r\n isHovered(date: NgbDate): boolean | null {\r\n return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDate): boolean | null {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate): boolean | null {\r\n return (\r\n date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date)\r\n );\r\n }\r\n\r\n previousWeek(): void {\r\n if (this.fromDate) {\r\n this.toDate = this.calendar.getPrev(this.fromDate, \"d\", 1);\r\n this.fromDate = this.calendar.getPrev(this.fromDate, \"d\", this.calendar.getDaysPerWeek());\r\n }\r\n this.weekNumberGenerator();\r\n this.applyChanges();\r\n }\r\n\r\n nextWeek(): void {\r\n if (this.fromDate) {\r\n this.fromDate = this.calendar.getNext(this.fromDate, \"d\", this.calendar.getDaysPerWeek());\r\n this.toDate = this.calendar.getNext(this.fromDate, \"d\", this.calendar.getDaysPerWeek() - 1);\r\n }\r\n this.weekNumberGenerator();\r\n this.applyChanges();\r\n }\r\n\r\n setCalendarMap() {\r\n let dateObj = { fromDate: this.fromDate, toDate: this.toDate };\r\n this.calendarMap.set(\"oldDates\", dateObj);\r\n }\r\n\r\n applyChanges() {\r\n this.multiSelectDropdownOpen = false;\r\n if (!this.config.emitMultipleWeekObjects) {\r\n let dates = {} as WeekObject;\r\n let formattedDates = this.formatter(this.fromDate, this.toDate);\r\n dates.startDate = formattedDates.formattedStartDate;\r\n dates.endDate = formattedDates.formattedEndDate;\r\n this.applyWeekCalendarChanges.emit(dates);\r\n } else {\r\n this.applyWeekCalendarChanges.emit(this.weekObjects);\r\n }\r\n this.setCalendarMap();\r\n }\r\n\r\n isFocused(value: any) {\r\n this.calendarToggled.emit(value);\r\n }\r\n\r\n isDropdownOpenedForCalendar(datepicker: NgbInputDatepicker) {\r\n this.datepicker = datepicker;\r\n if (this.datepicker.isOpen()) {\r\n this.revertDates();\r\n this.datepicker.close();\r\n this.multiSelectDropdownOpen = false;\r\n } else {\r\n this.datepicker.open();\r\n this.multiSelectDropdownOpen = true;\r\n }\r\n }\r\n\r\n revertDates() {\r\n this.multiSelectDropdownOpen = false;\r\n if (this.calendarMap.get(\"oldDates\")) {\r\n let dateObj = this.calendarMap.get(\"oldDates\");\r\n this.fromDate = dateObj.fromDate;\r\n this.toDate = dateObj.toDate;\r\n this.weekNumberGenerator();\r\n this.displayToUI();\r\n }\r\n }\r\n\r\n checkIfDateIsDisabled(date: any): boolean {\r\n const validatorFunc = (ngbDate: NgbDate) => ngbDate.year === date.year && ngbDate.month === date.month && ngbDate.day === date.day;\r\n return this.disabledDates.some(validatorFunc);\r\n }\r\n\r\n closeDatepicker(datepickerRef: any) {\r\n datepickerRef.close();\r\n }\r\n}\r\n","<form class=\"form-inline\" *ngIf=\"config.showAsDropdown\">\r\n <div class=\"form-group hidden\">\r\n <div class=\"input-group\">\r\n <input\r\n name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"false\"\r\n (dateSelect)=\"selectWeek($event)\"\r\n (closed)=\"isFocused(false)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [startDate]=\"fromDate!\"\r\n [firstDayOfWeek]=\"config.firstDayOfWeek\"\r\n [showWeekNumbers]=\"config.showWeekNumbers\"\r\n tabindex=\"-1\"\r\n style=\"display: none\"\r\n [footerTemplate]=\"footerTemplate\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <!--Single week select-->\r\n <div *ngIf=\"!config.selectMultipleWeeks\">\r\n <span style=\"position: relative; left: 30px; font-size: 12px\"> &nbsp;{{ weekNumbers }} </span>\r\n <div class=\"form-group\">\r\n <div class=\"input-group\">\r\n <div class=\"single-week\">\r\n <div class=\"left\">\r\n <span class=\"material-icons next-round-btn\" (click)=\"previousWeek()\"> navigate_next </span>\r\n </div>\r\n <input\r\n #dpFromDate\r\n class=\"form-control\"\r\n placeholder=\"Select Weeks\"\r\n [ngClass]=\"[config.customClass == '' ? '' : config.customClass]\"\r\n name=\"dpFromDate\"\r\n [value]=\"dateToDisplay\"\r\n [readonly]=\"true\"\r\n (click)=\"isFocused(true); isDropdownOpenedForCalendar(datepicker)\"\r\n />\r\n <i class=\"mdi mdi-menu-down\" *ngIf='!datepicker.isOpen()' (click)=\"datepicker.open()\"></i>\r\n <i class='mdi mdi-menu-up' *ngIf=\"datepicker.isOpen()\" (click)=\"isDropdownOpenedForCalendar(datepicker)\"></i>\r\n <div class=\"right\">\r\n <span class=\"material-icons round-btn\" (click)=\"nextWeek()\"> navigate_next </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--Multiple week select-->\r\n <div class=\"form-group\" *ngIf=\"config.selectMultipleWeeks\">\r\n <div class=\"input-group\">\r\n <div class=\"multiple-weeks\">\r\n <input\r\n #dpFromDate\r\n class=\"form-control\"\r\n placeholder=\"Select Weeks\"\r\n [ngClass]=\"[config.customClass == '' ? '' : config.customClass]\"\r\n name=\"dpFromDate\"\r\n [readonly]=\"true\"\r\n [value]=\"weekNumbers\"\r\n (click)=\"isFocused(true); isDropdownOpenedForCalendar(datepicker)\"\r\n />\r\n <i *ngIf=\"!multiSelectDropdownOpen\" class=\"mdi mdi-menu-down multiselect-input-arrow\"></i>\r\n <i *ngIf=\"multiSelectDropdownOpen\" class=\"mdi mdi-menu-up multiselect-input-arrow\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ngb-datepicker\r\n #weekPicker\r\n *ngIf=\"!config.showAsDropdown\"\r\n [displayMonths]=\"1\"\r\n [startDate]=\"fromDate!\"\r\n [firstDayOfWeek]=\"config.firstDayOfWeek\"\r\n [showWeekNumbers]=\"config.showWeekNumbers\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n (dateSelect)=\"selectWeek($event)\"\r\n [markDisabled]=\"disabledFunc\"\r\n>\r\n</ngb-datepicker>\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\" />\r\n <button\r\n class=\"btn btn-primary btn-sm m-2 float-right\"\r\n (click)=\"applyChanges(); closeDatepicker(datepicker)\"\r\n style=\"background-color: #268bff; color: #ffffff\"\r\n >\r\n Apply\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm m-2 float-right\"\r\n (click)=\"revertDates(); closeDatepicker(datepicker)\"\r\n style=\"background-color: rgba(38, 139, 255, 0.12); color: #268bff\"\r\n >\r\n Cancel\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #t let-date let-focused=\"focused\" let-disabled=\"disabled\">\r\n <span\r\n class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n [class.disabled]=\"disabled\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\"\r\n >\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<!--\r\n\r\n<hr>\r\n\r\n<pre>From: {{ fromDate | json }} </pre>\r\n<pre>To: {{ toDate | json }} </pre>\r\n<pre>weekNumbers: {{ weekNumbers | json }} </pre>\r\n\r\n-->\r\n","// Angular import statements\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\n\r\n//Third party import statements\r\nimport { NgbDate, NgbDatepickerConfig, NgbDateStruct } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AnnaDateTimeFormatService } from \"@annalib/anna-core/src/lib/anna-core-shared-lib\";\r\n\r\n@Component({\r\n selector: \"anna-core-calendar-filter-lib\",\r\n templateUrl: \"./anna-calendar-filter.component.html\",\r\n styleUrls: [\"./anna-calendar-filter.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AnnaCalendarFilterComponent implements OnInit,OnChanges {\r\n \r\n @Input() maxDate: any;\r\n @Input() label: string;\r\n @Input() minDate: any;\r\n @Output() selectedDate = new EventEmitter();\r\n @Input() selectedFromDate: any;\r\n @Input() selectedToDate: any;\r\n @Output() apply = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n fromDate: any;\r\n toDate: any;\r\n hoveredDate: any;\r\n disableApplyBtn: boolean = false;\r\n dateToBeShownInInput: string = \"\";\r\n\r\n constructor(private annaTimeService: AnnaDateTimeFormatService,\r\n private datePickerConfig: NgbDatepickerConfig) {}\r\n \r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.fromDate = this.selectedFromDate;\r\n this.toDate = this.selectedToDate;\r\n this.setInputText();\r\n }\r\n\r\n ngOnInit() {\r\n // this.fromDate = this.selectedFromDate;\r\n // this.toDate = this.selectedToDate;\r\n \r\n this.datePickerConfig.markDisabled = (date: NgbDateStruct) => {\r\n return false;\r\n };\r\n\r\n // this.setInputText();\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && (date.after(this.fromDate) || date.equals(this.fromDate))) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n this.selectedDate.emit({ fromDate: this.fromDate, toDate: this.toDate });\r\n this.disableCalendarApplyBtn();\r\n this.setInputText();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date)\r\n );\r\n }\r\n\r\n cancelSelection() {\r\n this.cancel.emit();\r\n }\r\n\r\n applySelection() {\r\n if (this.fromDate && this.toDate) {\r\n let dateObj = { fromDate: this.fromDate, toDate: this.toDate };\r\n this.apply.emit(dateObj);\r\n }\r\n }\r\n\r\n disableCalendarApplyBtn() {\r\n this.disableApplyBtn = !(this.fromDate && this.toDate);\r\n }\r\n\r\n setInputText(){\r\n\r\n if(this.fromDate && this.toDate){\r\n this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMoment(this.fromDate)} - ${this.annaTimeService.convertNgbDateToMoment(this.toDate)}`;\r\n }\r\n else if(this.fromDate){\r\n this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMoment(this.fromDate)}`;\r\n \r\n }\r\n\r\n }\r\n \r\n}\r\n","<!-- container=\"body\"\r\ndatepickerClass = \"calendar-filter\" -->\r\n \r\n<p class=\"calendar-label\">{{label}}</p>\r\n<form>\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [autoClose]=\"'outside'\"\r\n [startDate]=\"fromDate\"\r\n navigation=\"select\"\r\n >\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate\r\n id = \"datepicker-input\"\r\n class=\"form-control\" placeholder=\"mm/dd/yyyy\"\r\n readonly\r\n name=\"dpFromDate\"\r\n [value]=\"dateToBeShownInInput\"\r\n >\r\n <button class=\"icon-container\" (click)=\"datepicker.toggle()\" type=\"button\"><i class=\"mdi mdi-calendar-range\"></i></button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n","// Angular import statements\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n// Third party import statements\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// User defined import statements\r\nimport { AnnaWeekCalendarComponent } from './components/anna-week-calendar-filter/anna-week-calendar-filter.component';\r\nimport { AnnaCalendarFilterComponent } from './components/anna-calendar-filter/anna-calendar-filter.component';\r\n\r\n//sub-entries of anna lib import statement\r\nimport { AnnaCoreSharedLibModule } from '@annalib/anna-core/src/lib/anna-core-shared-lib';\r\n\r\n@NgModule({\r\n declarations: [\r\n AnnaWeekCalendarComponent,\r\n AnnaCalendarFilterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgbModule,\r\n AnnaCoreSharedLibModule\r\n ],\r\n exports: [\r\n AnnaWeekCalendarComponent,\r\n AnnaCalendarFilterComponent\r\n ]\r\n\r\n})\r\nexport class AnnaDropdownLibModule { }\r\n","//Modules\r\nexport * from \"./anna-dropdown-lib.module\";\r\n\r\n//Components\r\nexport * from \"./components/anna-calendar-filter/anna-calendar-filter.component\";\r\nexport * from \"./components/anna-week-calendar-filter/anna-week-calendar-filter.component\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}