mis-crystal-design-system 17.0.1 → 17.0.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 (29) hide show
  1. package/async-search-dropdown/async-dropdown.component.d.ts +1 -4
  2. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +1 -1
  3. package/dynamic-form/dynamic-form.component.d.ts +0 -1
  4. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +9 -27
  5. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +27 -17
  6. package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  7. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +52 -46
  8. package/esm2022/dynamic-form/dynamic-form.component.mjs +11 -6
  9. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +55 -41
  10. package/esm2022/timepicker/timepicker.component.mjs +54 -48
  11. package/esm2022/timerangepicker/timerangepicker.component.mjs +46 -42
  12. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +8 -26
  13. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  14. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +26 -16
  15. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  16. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +51 -44
  17. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  18. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +10 -4
  19. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  20. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +54 -40
  21. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  22. package/fesm2022/mis-crystal-design-system-timepicker.mjs +53 -47
  23. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
  24. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +45 -41
  25. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  26. package/package.json +13 -13
  27. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  28. package/table/filter/filter.component.d.ts +1 -1
  29. package/timepicker/timepicker.component.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-timepicker.mjs","sources":["../../../projects/mis-components/timepicker/timepicker.directive.ts","../../../projects/mis-components/timepicker/timepicker.component.html","../../../projects/mis-components/timepicker/timepicker.component.ts","../../../projects/mis-components/timepicker/timepicker.module.ts","../../../projects/mis-components/timepicker/mis-crystal-design-system-timepicker.ts"],"sourcesContent":["import { Directive, Output, TemplateRef } from '@angular/core';\nimport { EventEmitter, Input, ViewContainerRef } from \"@angular/core\";\nimport { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\n\n@Directive({\n selector: '[libTimepicker]'\n})\nexport class TimepickerDirective {\n private openStatus: boolean = false;\n @Input('originEl') originEl : any;\n @Output() statusEmitter = new EventEmitter<boolean>(); \n\n @Input('openStatus') set createOverlayOnInput(openStatus){\n this.openStatus = openStatus;\n if(this.originEl && this.openStatus) this.createOverlay(this.originEl);\n }; \n private overlayRef!: OverlayRef;\n constructor(private templateRef: TemplateRef<Element>, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {}\n\n createOverlay(origin: any): void {\n const positions = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"bottom\" }, { overlayX: \"start\", overlayY: \"top\" }, 0, 4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"bottom\" }, { overlayX: \"end\", overlayY: \"top\" }, 0, 4)\n ];\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n positionStrategy: this.overlay\n .position()\n //connecting the dropdown overlay to the input element\n .flexibleConnectedTo(origin)\n .withPositions([...positions])\n .withPush(true)\n });\n\n this.overlayRef = this.overlay.create(overlayConfig);\n const dropdownPortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n this.overlayRef.attach(dropdownPortal);\n this.overlayRef.backdropClick().subscribe(resp => {\n this.openStatus = false;\n this.statusEmitter.emit(false);\n this.overlayRef.detach();\n });\n }\n\n destroyOverlay(){\n this.overlayRef.detach();\n }\n \n}\n","<div class=\"timepicker-container\" [ngStyle]=\"{ height: height }\" [ngClass]=\"{'disable': disable}\">\n <input\n type=\"text\"\n [(ngModel)]=\"chosenTime\"\n (ngModelChange)=\"onTimeChange(chosenTime)\"\n [ngClass]=\"{ invalid: isInvalid || !rangeValidity }\"\n [ngStyle]=\"{ width: inputWidth }\"\n (click)=\"openDropdown()\"\n misToolTip\n [showToolTip]=\"showTooltip && (isInvalid || !rangeValidity) && dispayToolTip\"\n [text]=\"'Invalid Time'\"\n [position]=\"'top'\"\n [showOnHover]=\"false\"\n #input\n cdkOverlayOrigin\n class=\"h7\"\n />\n\n <ng-template #dropdownContainer libDropdownScroll libTimepicker [originEl]=\"input\" [openStatus]=\"openStatus\" (statusEmitter)=\"closeDropdown()\">\n <div *ngIf=\"openStatus\" class=\"timepicker-dropdown\" [ngStyle]=\"{ width: dropdownWidth || inputWidth }\">\n <ul #dropdown>\n <li #timeInterval (click)=\"onTimeSelect(interval)\" *ngFor=\"let interval of timeIntervals; index as i\" [ngClass]=\"{ highlight: i === isHighlighted }\">\n {{ interval }}\n <div class=\"ic-ui-check-24 selected-icon\" *ngIf=\"interval === chosenTime\"></div>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild, ViewChildren } from \"@angular/core\";\nimport moment from \"moment-timezone\";\nimport { ITime } from \"./time.namespace\";\nimport { TimepickerDirective } from \"./timepicker.directive\";\nimport { ToolTipDirective } from \"mis-crystal-design-system/tooltip\";\n\n\n@Component({\n selector: \"mis-timepicker\",\n templateUrl: \"./timepicker.component.html\",\n styleUrls: [\"./timepicker.component.scss\"]\n})\nexport class TimePickerComponent implements OnInit, OnChanges, OnDestroy {\n currTime!: string;\n chosenTime: string;\n openStatus: boolean = false;\n isHighlighted: number = 0;\n isInvalid: boolean = false;\n timeIntervals: string[] = [];\n shouldScroll: boolean = false;\n userInputFlag: boolean = false;\n givenTimeFlag: boolean = true;\n @Input() clockFormat: number = 12;\n timeFormat!: string;\n \n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() height: string = \"max-content\";\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() interval: number = 15;\n @Input() dateAsEpoch: number = moment().valueOf();\n @Input() firstInterval!: number;\n @Input() rangeValidity: boolean = true;\n @Input() showTooltip: boolean = true;\n dispayToolTip: boolean = this.showTooltip;\n @Input() givenTime: number;\n @Input() minTime?: number;\n @Input() triggerChange: boolean = true;\n @Input() disable: boolean = false;\n @Output() timeEmitter = new EventEmitter<ITime>();\n @ViewChild(\"input\", { static: true }) input: ElementRef;\n @ViewChild(TimepickerDirective) timepickerDirective: TimepickerDirective;\n @ViewChild(ToolTipDirective) tooltipDirective: ToolTipDirective;\n\n // gets all the li elements from the dropdown and scrolls to the highlighted element\n @ViewChildren(\"timeInterval\") set timeIntervalRefs(intervals) {\n intervals.forEach(interval => {\n if (interval.nativeElement.classList[0] === \"highlight\") {\n const highlighted = interval.nativeElement;\n setTimeout(() => highlighted.scrollIntoView({ block: \"center\" }));\n }\n });\n }\n\n constructor(){}\n ngOnInit(): void {\n if(!this.givenTime && !this.minTime) {\n this.chosenTime = moment(this.firstInterval).format(this.timeFormat);\n let chosenTimeMoment = this.getMoment(this.chosenTime);\n this.emitTime({\n valid: !this.isInvalid,\n time: this.chosenTime,\n epoch: chosenTimeMoment.valueOf()\n });\n }\n }\n\n ngOnChanges(): void {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n moment.tz.setDefault(this.timezone);\n\n if (this.timeFormat) {\n let chosenTimeMoment = this.getMoment(this.chosenTime);\n \n // if the first interval is >= the chosen time\n // then only update the value of chosen time\n // else it remains the same\n if (this.firstInterval >= chosenTimeMoment.valueOf() && this.rangeValidity && !this.userInputFlag) {\n this.chosenTime = moment(this.firstInterval).format(this.timeFormat);\n chosenTimeMoment = this.getMoment(this.chosenTime)\n }\n\n if((this.givenTimeFlag && this.givenTime) || this.minTime ) {\n this.chosenTime = moment(this.minTime || this.givenTime).format(this.timeFormat);\n }\n chosenTimeMoment = this.getMoment(this.chosenTime)\n\n if (!this.userInputFlag) this.populateDropdown();\n this.userInputFlag = false;\n \n if(this.chosenTime) {\n this.isInvalid = !this.checkTimeValidity(this.chosenTime.trim());\n this.emitTime({\n valid: !this.isInvalid,\n time: this.chosenTime,\n epoch: chosenTimeMoment.valueOf()\n });\n this.calculateClosestInterval(this.chosenTime);\n }\n }\n }\n\n emitTime(data: ITime): void {\n this.timeEmitter.emit(data);\n }\n\n // function to get moment object when time is given in string\n getMoment(time: string){\n return moment(`${moment(this.dateAsEpoch).format(\"DD-MM-YYYY\")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`)\n }\n\n closeDropdown() {\n this.dispayToolTip = false;\n this.userInputFlag = false;\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // toggle timepicker dropdown\n openDropdown(): void {\n this.dispayToolTip = true;\n this.openStatus = true;\n }\n\n checkTimeValidity(time: string): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timeMoment = this.getMoment(time);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // or a time is already provided to the component to show\n // then we don't check its validity against the current time\n if (\n this.minTime || \n this.givenTime ||\n (this.firstInterval &&\n moment(this.firstInterval).format(this.timeFormat).valueOf() === moment().startOf(\"d\").format(this.timeFormat).valueOf())\n ) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timeMoment.diff(moment(), \"m\") >= 0 ? true: false;\n }\n\n return flag;\n }\n\n // update chosen time as soon as the user clicks on an interval\n onTimeSelect(time: string): void {\n this.isInvalid = !this.checkTimeValidity(time.trim());\n if (!this.isInvalid) {\n this.chosenTime = time;\n this.calculateClosestInterval(this.chosenTime);\n }\n\n const timeMoment = this.getMoment(time);\n this.emitTime({\n valid: !this.isInvalid,\n time: time,\n epoch: timeMoment.valueOf() \n });\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // checks validity of time on input change and calculates the closest interval\n onTimeChange(time: string): void {\n this.isInvalid = !this.checkTimeValidity(time.trim());\n\n if (!this.isInvalid) {\n this.userInputFlag = true;\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n this.calculateClosestInterval(time);\n }\n const timeMoment = this.getMoment(time);\n this.emitTime({\n valid: !this.isInvalid,\n time: time,\n epoch: timeMoment.valueOf() \n });\n }\n\n calculateClosestInterval(time: string): void {\n let roundedEpoch: number;\n // Converting time and date to a moment object \n const chosenDate = moment(this.dateAsEpoch).format(\"DD-MM-YYYY\"); // 05-01-2024\n const parsedTimeWithDate = moment(`${chosenDate} ${time}`, `DD-MM-YYYY ${this.timeFormat}`);\n // Converting moment object to epoch\n const chosenTimeEpoch = parsedTimeWithDate.valueOf();\n const offset = this.interval - (moment(chosenTimeEpoch).minutes() % this.interval);\n\n if (this.minTime && !this.givenTime) {\n this.isHighlighted = 0;\n return;\n }\n roundedEpoch = offset >= this.interval / 2 ? (moment(chosenTimeEpoch).subtract(this.interval - offset, \"m\")).valueOf() : (moment(chosenTimeEpoch).add( offset, \"m\")).valueOf();\n\n // finding the index of element that needs to be highlighted\n if ( chosenTimeEpoch > moment(this.dateAsEpoch).endOf(\"d\").subtract(this.interval, \"m\").valueOf()) {\n this.isHighlighted = this.timeIntervals.length - 1;\n } else {\n const roundedEpochMoment = moment(roundedEpoch);\n this.isHighlighted = this.timeIntervals.findIndex(interval => {\n const intervalObj = moment(`${chosenDate} ${interval}`, `DD-MM-YYYY ${this.timeFormat}`);\n return intervalObj.isSame(roundedEpochMoment);\n });\n }\n }\n\n\n // populates the dropdown according to the first interval received\n populateDropdown(): void {\n this.timeIntervals = [];\n\n // if picker is used as an individual component\n if (!this.firstInterval) {\n // firstInterval is initialised according to the current time\n // if the date is same as the current date\n if (moment(this.dateAsEpoch).format(\"DD-MM-YYYY\") === moment().format(\"DD-MM-YYYY\") && !this.minTime) {\n const offset = this.interval - (moment().minutes() % this.interval);\n this.firstInterval = moment().add(offset, \"m\").valueOf();\n }\n // if minimum time to show is provided\n else if(this.minTime){\n const offset = this.interval - (moment(this.minTime).minutes() % this.interval);\n this.firstInterval = moment(this.minTime).add(offset, \"m\").valueOf();\n }\n // else the firstInterval is initialised as start of day\n else {\n this.firstInterval = moment().startOf(\"d\").valueOf();\n }\n }\n\n if(this.givenTime && this.givenTimeFlag){\n this.firstInterval = moment(this.givenTime).startOf('d').valueOf();\n this.givenTimeFlag = false;\n }\n\n const dateAsString = moment(this.dateAsEpoch).format('DD-MM-YYYY');\n const intervalAsString = moment(this.firstInterval).format(this.timeFormat);\n const start = moment(`${dateAsString} ${intervalAsString}`, `DD-MM-YYYY ${this.timeFormat}`);\n const end = moment(`${dateAsString}`, 'DD-MM-YYYY').endOf('d');\n\n \n while (start.valueOf() < end.valueOf()) {\n this.timeIntervals.push(start.format(this.timeFormat));\n start.add(this.interval, \"m\");\n }\n\n // if the start time is equal to the interval just before midnight\n // and the start date = end date\n // push 11:59pm only\n if (this.timeIntervals.length === 0) {\n this.chosenTime = moment().endOf(\"d\").format(this.timeFormat);\n this.timeIntervals.push(moment().endOf(\"d\").format(this.timeFormat));\n }\n }\n\n ngOnDestroy() {\n if (this.tooltipDirective) this.tooltipDirective.hideToolTip();\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimePickerComponent } from \"./timepicker.component\";\nimport { ToolTipModule } from \"mis-crystal-design-system/tooltip\";\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TimepickerDirective } from './timepicker.directive';\n\n@NgModule({\n declarations: [TimePickerComponent, TimepickerDirective],\n imports: [CommonModule, FormsModule, ToolTipModule, OverlayModule],\n exports: [TimePickerComponent]\n})\nexport class TimePickerModule {\n static forRoot(): ModuleWithProviders<TimePickerModule> {\n return { ngModule: TimePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mis-crystal-design-system-timepicker.mjs","sources":["../../../projects/mis-components/timepicker/timepicker.directive.ts","../../../projects/mis-components/timepicker/timepicker.component.html","../../../projects/mis-components/timepicker/timepicker.component.ts","../../../projects/mis-components/timepicker/timepicker.module.ts","../../../projects/mis-components/timepicker/mis-crystal-design-system-timepicker.ts"],"sourcesContent":["import { Directive, Output, TemplateRef } from '@angular/core';\nimport { EventEmitter, Input, ViewContainerRef } from \"@angular/core\";\nimport { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\n\n@Directive({\n selector: '[libTimepicker]'\n})\nexport class TimepickerDirective {\n private openStatus: boolean = false;\n @Input('originEl') originEl : any;\n @Output() statusEmitter = new EventEmitter<boolean>(); \n\n @Input('openStatus') set createOverlayOnInput(openStatus){\n this.openStatus = openStatus;\n if(this.originEl && this.openStatus) this.createOverlay(this.originEl);\n }; \n private overlayRef!: OverlayRef;\n constructor(private templateRef: TemplateRef<Element>, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {}\n\n createOverlay(origin: any): void {\n const positions = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"bottom\" }, { overlayX: \"start\", overlayY: \"top\" }, 0, 4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"bottom\" }, { overlayX: \"end\", overlayY: \"top\" }, 0, 4)\n ];\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n positionStrategy: this.overlay\n .position()\n //connecting the dropdown overlay to the input element\n .flexibleConnectedTo(origin)\n .withPositions([...positions])\n .withPush(true)\n });\n\n this.overlayRef = this.overlay.create(overlayConfig);\n const dropdownPortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n this.overlayRef.attach(dropdownPortal);\n this.overlayRef.backdropClick().subscribe(resp => {\n this.openStatus = false;\n this.statusEmitter.emit(false);\n this.overlayRef.detach();\n });\n }\n\n destroyOverlay(){\n this.overlayRef.detach();\n }\n \n}\n","<div class=\"timepicker-container\" [ngStyle]=\"{ height: height }\" [ngClass]=\"{'disable': disable}\">\n <input\n type=\"text\"\n [(ngModel)]=\"chosenTime\"\n (ngModelChange)=\"onTimeChange(chosenTime)\"\n [ngClass]=\"{ invalid: isInvalid || !rangeValidity }\"\n [ngStyle]=\"{ width: inputWidth }\"\n (click)=\"openDropdown()\"\n misToolTip\n [showToolTip]=\"showTooltip && (isInvalid || !rangeValidity) && dispayToolTip\"\n [text]=\"'Invalid Time'\"\n [position]=\"'top'\"\n [showOnHover]=\"false\"\n #input\n cdkOverlayOrigin\n class=\"h7\"\n />\n\n <ng-template #dropdownContainer libDropdownScroll libTimepicker [originEl]=\"input\" [openStatus]=\"openStatus\" (statusEmitter)=\"closeDropdown()\">\n <div *ngIf=\"openStatus\" class=\"timepicker-dropdown\" [ngStyle]=\"{ width: dropdownWidth || inputWidth }\">\n <ul #dropdown>\n <li #timeInterval (click)=\"onTimeSelect(interval)\" *ngFor=\"let interval of timeIntervals; index as i\" [ngClass]=\"{ highlight: i === isHighlighted }\">\n {{ interval }}\n <div class=\"ic-ui-check-24 selected-icon\" *ngIf=\"interval === chosenTime\"></div>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild, ViewChildren } from \"@angular/core\";\nimport { ITime } from \"./time.namespace\";\nimport { TimepickerDirective } from \"./timepicker.directive\";\nimport { ToolTipDirective } from \"mis-crystal-design-system/tooltip\";\n\nimport dayjs from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(customParseFormat);\n\n\n@Component({\n selector: \"mis-timepicker\",\n templateUrl: \"./timepicker.component.html\",\n styleUrls: [\"./timepicker.component.scss\"]\n})\nexport class TimePickerComponent implements OnInit, OnChanges, OnDestroy {\n currTime!: string;\n chosenTime: string;\n openStatus: boolean = false;\n isHighlighted: number = 0;\n isInvalid: boolean = false;\n timeIntervals: string[] = [];\n shouldScroll: boolean = false;\n userInputFlag: boolean = false;\n givenTimeFlag: boolean = true;\n @Input() clockFormat: number = 12;\n timeFormat!: string;\n \n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() height: string = \"max-content\";\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() interval: number = 15;\n @Input() dateAsEpoch: number = dayjs().valueOf();\n @Input() firstInterval!: number;\n @Input() rangeValidity: boolean = true;\n @Input() showTooltip: boolean = true;\n dispayToolTip: boolean = this.showTooltip;\n @Input() givenTime: number;\n @Input() minTime?: number;\n @Input() triggerChange: boolean = true;\n @Input() disable: boolean = false;\n @Output() timeEmitter = new EventEmitter<ITime>();\n @ViewChild(\"input\", { static: true }) input: ElementRef;\n @ViewChild(TimepickerDirective) timepickerDirective: TimepickerDirective;\n @ViewChild(ToolTipDirective) tooltipDirective: ToolTipDirective;\n\n // gets all the li elements from the dropdown and scrolls to the highlighted element\n @ViewChildren(\"timeInterval\") set timeIntervalRefs(intervals) {\n intervals.forEach(interval => {\n if (interval.nativeElement.classList[0] === \"highlight\") {\n const highlighted = interval.nativeElement;\n setTimeout(() => highlighted.scrollIntoView({ block: \"center\" }));\n }\n });\n }\n\n constructor(){}\n ngOnInit(): void {\n if(!this.givenTime && !this.minTime) {\n this.chosenTime = dayjs(this.firstInterval).format(this.timeFormat);\n let chosenTimedayjs = this.getdayjs(this.chosenTime);\n this.emitTime({\n valid: !this.isInvalid,\n time: this.chosenTime,\n epoch: chosenTimedayjs.valueOf()\n });\n }\n }\n\n ngOnChanges(): void {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n dayjs.tz.setDefault(this.timezone);\n\n if (this.timeFormat) {\n let chosenTimedayjs = this.getdayjs(this.chosenTime);\n \n // if the first interval is >= the chosen time\n // then only update the value of chosen time\n // else it remains the same\n if (this.firstInterval >= chosenTimedayjs.valueOf() && this.rangeValidity && !this.userInputFlag) {\n this.chosenTime = dayjs(this.firstInterval).format(this.timeFormat);\n chosenTimedayjs = this.getdayjs(this.chosenTime)\n }\n\n if((this.givenTimeFlag && this.givenTime) || this.minTime ) {\n this.chosenTime = dayjs(this.minTime || this.givenTime).format(this.timeFormat);\n }\n chosenTimedayjs = this.getdayjs(this.chosenTime)\n\n if (!this.userInputFlag) this.populateDropdown();\n this.userInputFlag = false;\n \n if(this.chosenTime) {\n this.isInvalid = !this.checkTimeValidity(this.chosenTime.trim());\n this.emitTime({\n valid: !this.isInvalid,\n time: this.chosenTime,\n epoch: chosenTimedayjs.valueOf()\n });\n this.calculateClosestInterval(this.chosenTime);\n }\n }\n }\n\n emitTime(data: ITime): void {\n this.timeEmitter.emit(data);\n }\n\n // function to get dayjs object when time is given in string\n getdayjs(time: string = '00:00'){\n return dayjs( `${dayjs(this.dateAsEpoch).format(\"DD-MM-YYYY\")} ${time}`, `DD-MM-YYYY ${this.timeFormat}`)\n }\n\n closeDropdown() {\n this.dispayToolTip = false;\n this.userInputFlag = false;\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // toggle timepicker dropdown\n openDropdown(): void {\n this.dispayToolTip = true;\n this.openStatus = true;\n }\n\n checkTimeValidity(time: string): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timedayjs = this.getdayjs(time);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // or a time is already provided to the component to show\n // then we don't check its validity against the current time\n if (\n this.minTime || \n this.givenTime ||\n (this.firstInterval &&\n dayjs(this.firstInterval).format(this.timeFormat).valueOf() === dayjs().startOf(\"day\").format(this.timeFormat).valueOf())\n ) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timedayjs.diff(dayjs(), \"m\") >= 0 ? true: false;\n }\n\n return flag;\n }\n\n // update chosen time as soon as the user clicks on an interval\n onTimeSelect(time: string): void {\n this.isInvalid = !this.checkTimeValidity(time.trim());\n if (!this.isInvalid) {\n this.chosenTime = time;\n this.calculateClosestInterval(this.chosenTime);\n }\n\n const timedayjs = this.getdayjs(time);\n this.emitTime({\n valid: !this.isInvalid,\n time: time,\n epoch: timedayjs.valueOf() \n });\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // checks validity of time on input change and calculates the closest interval\n onTimeChange(time: string): void {\n this.isInvalid = !this.checkTimeValidity(time.trim());\n\n if (!this.isInvalid) {\n this.userInputFlag = true;\n this.openStatus = false;\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n this.calculateClosestInterval(time);\n }\n const timedayjs = this.getdayjs(time);\n this.emitTime({\n valid: !this.isInvalid,\n time: time,\n epoch: timedayjs.valueOf() \n });\n }\n\n calculateClosestInterval(time: string): void {\n let roundedEpoch: number;\n // Converting time and date to a dayjs object \n const chosenDate = dayjs(this.dateAsEpoch).format(\"DD-MM-YYYY\"); // 05-01-2024\n const parsedTimeWithDate = dayjs(`${chosenDate} ${time}`, `DD-MM-YYYY ${this.timeFormat}`);\n // Converting dayjs object to epoch\n const chosenTimeEpoch = parsedTimeWithDate.valueOf();\n const offset = this.interval - (dayjs(chosenTimeEpoch).minute() % this.interval);\n\n if (this.minTime && !this.givenTime) {\n this.isHighlighted = 0;\n return;\n }\n roundedEpoch = offset >= this.interval / 2 ? (dayjs(chosenTimeEpoch).subtract(this.interval - offset, \"m\")).valueOf() : (dayjs(chosenTimeEpoch).add( offset, \"m\")).valueOf();\n\n // finding the index of element that needs to be highlighted\n if ( chosenTimeEpoch > dayjs(this.dateAsEpoch).endOf(\"day\").subtract(this.interval, \"m\").valueOf()) {\n this.isHighlighted = this.timeIntervals.length - 1;\n } else {\n const roundedEpochdayjs = dayjs(roundedEpoch);\n this.isHighlighted = this.timeIntervals.findIndex(interval => {\n const intervalObj = dayjs(`${chosenDate} ${interval}`, `DD-MM-YYYY ${this.timeFormat}`);\n return intervalObj.isSame(roundedEpochdayjs);\n });\n }\n }\n\n\n // populates the dropdown according to the first interval received\n populateDropdown(): void {\n this.timeIntervals = [];\n\n // if picker is used as an individual component\n if (!this.firstInterval) {\n // firstInterval is initialised according to the current time\n // if the date is same as the current date\n if (dayjs(this.dateAsEpoch).format(\"DD-MM-YYYY\") === dayjs().format(\"DD-MM-YYYY\") && !this.minTime) {\n const offset = this.interval - (dayjs().minute() % this.interval);\n this.firstInterval = dayjs().add(offset, \"m\").valueOf();\n }\n // if minimum time to show is provided\n else if(this.minTime){\n const offset = this.interval - (dayjs(this.minTime).minute() % this.interval);\n this.firstInterval = dayjs(this.minTime).add(offset, \"m\").valueOf();\n }\n // else the firstInterval is initialised as start of day\n else {\n this.firstInterval = dayjs().startOf(\"day\").valueOf();\n }\n }\n\n if(this.givenTime && this.givenTimeFlag){\n this.firstInterval = dayjs(this.givenTime).startOf('d').valueOf();\n this.givenTimeFlag = false;\n }\n\n const dateAsString = dayjs(this.dateAsEpoch).format('DD-MM-YYYY');\n const intervalAsString = dayjs(this.firstInterval).format(this.timeFormat);\n let start = dayjs(`${dateAsString} ${intervalAsString}`, `DD-MM-YYYY ${this.timeFormat}`);\n const end = dayjs(this.dateAsEpoch).endOf('d');\n while (start.valueOf() < end.valueOf()) {\n this.timeIntervals.push(start.format(this.timeFormat));\n start = start.add(this.interval, \"m\");\n }\n\n // if the start time is equal to the interval just before midnight\n // and the start date = end date\n // push 11:59pm only\n if (this.timeIntervals.length === 0) {\n this.chosenTime = dayjs().endOf(\"d\").format(this.timeFormat);\n this.timeIntervals.push(dayjs().endOf(\"d\").format(this.timeFormat));\n }\n }\n\n ngOnDestroy() {\n if (this.tooltipDirective) this.tooltipDirective.hideToolTip();\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimePickerComponent } from \"./timepicker.component\";\nimport { ToolTipModule } from \"mis-crystal-design-system/tooltip\";\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TimepickerDirective } from './timepicker.directive';\n\n@NgModule({\n declarations: [TimePickerComponent, TimepickerDirective],\n imports: [CommonModule, FormsModule, ToolTipModule, OverlayModule],\n exports: [TimePickerComponent]\n})\nexport class TimePickerModule {\n static forRoot(): ModuleWithProviders<TimePickerModule> {\n return { ngModule: TimePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Output, Input, NgModule } from '@angular/core';
3
- import moment from 'moment-timezone';
3
+ import dayjs from 'dayjs';
4
+ import timezone from 'dayjs/plugin/timezone';
5
+ import utc from 'dayjs/plugin/utc';
4
6
  import * as i1 from '@angular/common';
5
7
  import { CommonModule } from '@angular/common';
6
8
  import * as i2 from 'mis-crystal-design-system/timepicker';
@@ -13,14 +15,16 @@ function TimeRangePickerComponent_p_2_Template(rf, ctx) { if (rf & 1) {
13
15
  i0.ɵɵtext(1, "-");
14
16
  i0.ɵɵelementEnd();
15
17
  } }
18
+ dayjs.extend(utc);
19
+ dayjs.extend(timezone);
16
20
  class TimeRangePickerComponent {
17
21
  constructor(cdr) {
18
22
  this.cdr = cdr;
19
23
  this.inputWidth = "100px";
20
24
  this.height = "46px";
21
25
  this.timezone = "Asia/Kolkata";
22
- this.startDateEpoch = moment().tz(this.timezone).valueOf();
23
- this.endDateEpoch = moment().tz(this.timezone).valueOf();
26
+ this.startDateEpoch = dayjs().tz(this.timezone).valueOf();
27
+ this.endDateEpoch = dayjs().tz(this.timezone).valueOf();
24
28
  this.clockFormat = 12;
25
29
  this.interval = 15;
26
30
  this.showTooltip = true;
@@ -29,51 +33,51 @@ class TimeRangePickerComponent {
29
33
  this.disableStartTime = false;
30
34
  this.disableEndTime = false;
31
35
  this.timeRangeEmitter = new EventEmitter();
32
- this.firstIntervalForStartPicker = moment().valueOf();
33
- this.firstIntervalForEndPicker = moment().valueOf();
36
+ this.firstIntervalForStartPicker = dayjs().valueOf();
37
+ this.firstIntervalForEndPicker = dayjs().valueOf();
34
38
  this.rangeValidity = true;
35
39
  this.triggerChange = true;
36
40
  }
37
41
  ngOnInit() { }
38
42
  ngOnChanges() {
39
43
  this.timeFormat = this.clockFormat === 12 ? "hh:mm a" : "HH:mm";
40
- moment.tz.setDefault(this.timezone);
41
- this.startDate = moment(this.startDateEpoch).format("DD-MM-YYYY");
42
- this.endDate = moment(this.endDateEpoch).format("DD-MM-YYYY");
43
- this.currDate = moment().format("DD-MM-YYYY");
44
+ dayjs.tz.setDefault(this.timezone);
45
+ this.startDate = dayjs(this.startDateEpoch).format("DD-MM-YYYY");
46
+ this.endDate = dayjs(this.endDateEpoch).format("DD-MM-YYYY");
47
+ this.currDate = dayjs().format("DD-MM-YYYY");
44
48
  this.setFirstIntervals();
45
49
  }
46
50
  // calculate the first interval of the picker
47
51
  setFirstIntervals() {
48
- const minutes = moment().minutes();
52
+ const minutes = dayjs().minute();
49
53
  const offset = this.interval - (minutes % this.interval);
50
54
  // start date, 22 MAY === current date, 22 MAY
51
55
  if (this.startDate === this.currDate) {
52
- const currentTime = moment().valueOf();
56
+ const currentTime = dayjs().valueOf();
53
57
  // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY
54
58
  if (this.startDate === this.endDate) {
55
59
  // current time is in last interval
56
- if (currentTime >= moment(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
60
+ if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
57
61
  this.firstIntervalForStartPicker = currentTime;
58
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf("d").valueOf();
62
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
59
63
  }
60
64
  // current time isn't in last interval
61
65
  else {
62
- this.firstIntervalForStartPicker = moment().add(offset, "m").valueOf();
63
- this.firstIntervalForEndPicker = moment().add(offset, "m").add(this.interval, "m").valueOf();
66
+ this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
67
+ this.firstIntervalForEndPicker = dayjs().add(offset, "m").add(this.interval, "m").valueOf();
64
68
  }
65
69
  }
66
70
  // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY
67
71
  else {
68
72
  // current time is in last interval
69
- if (currentTime >= moment(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
73
+ if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
70
74
  this.firstIntervalForStartPicker = currentTime;
71
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf("d").valueOf();
75
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
72
76
  }
73
77
  // current time isn't in last interval
74
78
  else {
75
- this.firstIntervalForStartPicker = moment().add(offset, "m").valueOf();
76
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).valueOf();
79
+ this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
80
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).valueOf();
77
81
  }
78
82
  }
79
83
  }
@@ -81,13 +85,13 @@ class TimeRangePickerComponent {
81
85
  else {
82
86
  // start date === end Date
83
87
  if (this.startDate === this.endDate) {
84
- this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf("d").valueOf();
85
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).add(this.interval, "m").valueOf();
88
+ this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
89
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).add(this.interval, "m").valueOf();
86
90
  }
87
91
  // start date !== end date
88
92
  else {
89
- this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf("d").valueOf();
90
- this.firstIntervalForEndPicker = moment(this.startDateEpoch).startOf("d").valueOf();
93
+ this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
94
+ this.firstIntervalForEndPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
91
95
  }
92
96
  }
93
97
  if (this.givenStartTime)
@@ -96,13 +100,13 @@ class TimeRangePickerComponent {
96
100
  this.firstIntervalForEndPicker = this.givenEndTime;
97
101
  this.startTime = {
98
102
  valid: true,
99
- time: moment(this.firstIntervalForStartPicker).format(this.timeFormat),
100
- epoch: moment(this.firstIntervalForStartPicker).valueOf()
103
+ time: dayjs(this.firstIntervalForStartPicker).format(this.timeFormat),
104
+ epoch: dayjs(this.firstIntervalForStartPicker).valueOf()
101
105
  };
102
106
  this.endTime = {
103
107
  valid: true,
104
- time: moment(this.firstIntervalForEndPicker).format(this.timeFormat),
105
- epoch: moment(this.firstIntervalForEndPicker).valueOf()
108
+ time: dayjs(this.firstIntervalForEndPicker).format(this.timeFormat),
109
+ epoch: dayjs(this.firstIntervalForEndPicker).valueOf()
106
110
  };
107
111
  }
108
112
  emitTimeRange(data) {
@@ -116,16 +120,16 @@ class TimeRangePickerComponent {
116
120
  // and the start time >= end time
117
121
  // update the first interval of end picker according to the time set in start picker
118
122
  if (this.startDate === this.endDate) {
119
- let minutes = moment(this.startTime.time, this.timeFormat).minutes();
123
+ let minutes = dayjs(this.startTime.time, this.timeFormat).minute();
120
124
  let offset = this.interval - (minutes % this.interval);
121
- this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)
125
+ this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)
122
126
  .add(offset, "m")
123
127
  .valueOf();
124
128
  // if the first interval == 12:00am, set it as 11:59pm
125
- const intervalAsString = moment(this.firstIntervalForEndPicker).format(this.timeFormat);
126
- const endOfDayAsString = moment(moment(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf("d").add(1, "m")).format(this.timeFormat);
129
+ const intervalAsString = dayjs(this.firstIntervalForEndPicker).format(this.timeFormat);
130
+ const endOfDayAsString = dayjs(dayjs(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf("d").add(1, "m")).format(this.timeFormat);
127
131
  if (intervalAsString === endOfDayAsString) {
128
- this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf("d").valueOf();
132
+ this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf("d").valueOf();
129
133
  }
130
134
  }
131
135
  else {
@@ -136,8 +140,8 @@ class TimeRangePickerComponent {
136
140
  valid: validity && this.rangeValidity,
137
141
  startTime: this.startTime.time,
138
142
  endTime: this.endTime.time,
139
- startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
140
- endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
143
+ startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
144
+ endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
141
145
  });
142
146
  }
143
147
  this.triggerChange = !this.triggerChange;
@@ -150,15 +154,15 @@ class TimeRangePickerComponent {
150
154
  valid: validity && this.rangeValidity,
151
155
  startTime: this.startTime.time,
152
156
  endTime: this.endTime.time,
153
- startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
154
- endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
157
+ startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
158
+ endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
155
159
  });
156
160
  }
157
161
  checkTimeValidity(time, date) {
158
162
  const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;
159
163
  const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
160
164
  const RE = this.clockFormat === 12 ? RE12 : RE24;
161
- const timeMoment = moment(`${moment(date).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);
165
+ const timedayjs = dayjs(`${dayjs(date).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);
162
166
  let flag = false;
163
167
  // if the first interval is set to the start of the day
164
168
  // then we don't check its validity against the current time
@@ -166,16 +170,16 @@ class TimeRangePickerComponent {
166
170
  flag = time.match(RE) ? true : false;
167
171
  }
168
172
  else {
169
- flag = time.match(RE) && timeMoment.diff(moment(), "m") >= 0 ? true : false;
173
+ flag = time.match(RE) && timedayjs.diff(dayjs(), "m") >= 0 ? true : false;
170
174
  }
171
175
  return flag;
172
176
  }
173
177
  // validates end picker's input according to the start picker's input
174
178
  rangeValidation(validity) {
175
179
  if (validity && this.startDate === this.endDate) {
176
- const startMoment = moment(this.startTime.time, this.timeFormat);
177
- const endMoment = moment(this.endTime.time, this.timeFormat);
178
- this.rangeValidity = endMoment.diff(startMoment, "m") >= 1 ? true : false;
180
+ const startdayjs = dayjs(this.startTime.time, this.timeFormat);
181
+ const enddayjs = dayjs(this.endTime.time, this.timeFormat);
182
+ this.rangeValidity = enddayjs.diff(startdayjs, "m") >= 1 ? true : false;
179
183
  this.cdr.detectChanges();
180
184
  }
181
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-timerangepicker.mjs","sources":["../../../projects/mis-components/timerangepicker/timerangepicker.component.html","../../../projects/mis-components/timerangepicker/timerangepicker.component.ts","../../../projects/mis-components/timerangepicker/timerangepicker.module.ts","../../../projects/mis-components/timerangepicker/mis-crystal-design-system-timerangepicker.ts"],"sourcesContent":["<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n [disable]=\"disableStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n [disable]=\"disableEndTime\"\n ></mis-timepicker>\n</div>\n","import { Component, Input, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\nimport moment from \"moment-timezone\";\nimport { ITimeRange, ITime, TDirection } from \"./timerange.namespace\";\n\n@Component({\n selector: \"mis-timerangepicker\",\n templateUrl: \"./timerangepicker.component.html\",\n styleUrls: [\"./timerangepicker.component.scss\"]\n})\nexport class TimeRangePickerComponent {\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() height: string = \"46px\";\n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() startDateEpoch: number = moment().tz(this.timezone).valueOf();\n @Input() endDateEpoch: number = moment().tz(this.timezone).valueOf();\n @Input() givenStartTime: number;\n @Input() givenEndTime: number;\n @Input() clockFormat: number = 12;\n @Input() interval: number = 15;\n @Input() showTooltip: boolean = true;\n @Input() direction: TDirection = 'row';\n @Input() gap: string = '1rem';\n @Input() disableStartTime: boolean = false;\n @Input() disableEndTime: boolean = false;\n @Output() timeRangeEmitter = new EventEmitter<ITimeRange>();\n\n startDate!: string;\n endDate!: string;\n currDate!: string;\n timeFormat!: string;\n firstIntervalForStartPicker: number = moment().valueOf();\n firstIntervalForEndPicker: number = moment().valueOf();\n startTime!: ITime;\n endTime!: ITime;\n rangeValidity: boolean = true;\n triggerChange: boolean = true;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n moment.tz.setDefault(this.timezone);\n this.startDate = moment(this.startDateEpoch).format(\"DD-MM-YYYY\");\n this.endDate = moment(this.endDateEpoch).format(\"DD-MM-YYYY\");\n this.currDate = moment().format(\"DD-MM-YYYY\");\n this.setFirstIntervals();\n }\n\n // calculate the first interval of the picker\n setFirstIntervals(): void {\n const minutes = moment().minutes();\n const offset = this.interval - (minutes % this.interval);\n\n // start date, 22 MAY === current date, 22 MAY\n if( this.startDate === this.currDate ){\n const currentTime = moment().valueOf();\n\n // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY\n if(this.startDate === this.endDate){\n\n // current time is in last interval\n if( currentTime >= moment(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = moment().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = moment().add(offset, \"m\").add(this.interval, \"m\").valueOf();\n }\n } \n // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY\n else {\n // current time is in last interval\n if( currentTime >= moment(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = moment().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).valueOf();\n }\n }\n }\n // start date, 30 MAY !== current date, 22 MAY\n else {\n // start date === end Date\n if( this.startDate === this.endDate){\n this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = moment(this.endDateEpoch).add(this.interval, \"m\").valueOf();\n } \n // start date !== end date\n else {\n this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = moment(this.startDateEpoch).startOf(\"d\").valueOf();\n }\n\n }\n\n if(this.givenStartTime)\n this.firstIntervalForStartPicker = this.givenStartTime;\n \n if(this.givenEndTime)\n this.firstIntervalForEndPicker = this.givenEndTime;\n \n this.startTime = {\n valid: true,\n time: moment(this.firstIntervalForStartPicker).format(this.timeFormat),\n epoch: moment(this.firstIntervalForStartPicker).valueOf()\n };\n\n this.endTime = {\n valid: true,\n time: moment(this.firstIntervalForEndPicker).format(this.timeFormat),\n epoch: moment(this.firstIntervalForEndPicker).valueOf()\n };\n }\n\n emitTimeRange(data: ITimeRange): void {\n this.timeRangeEmitter.emit(data);\n }\n\n //handlers catch the emitted values and run validation\n startPickerHandler(time: ITime): void {\n this.startTime = time;\n this.rangeValidity = true;\n // if the start time changes and the start date is the same as the end date\n // and the start time >= end time\n // update the first interval of end picker according to the time set in start picker\n if (this.startDate === this.endDate) {\n let minutes = moment(this.startTime.time, this.timeFormat).minutes();\n let offset = this.interval - (minutes % this.interval);\n this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)\n .add(offset, \"m\")\n .valueOf();\n\n // if the first interval == 12:00am, set it as 11:59pm\n const intervalAsString = moment(this.firstIntervalForEndPicker).format(this.timeFormat);\n const endOfDayAsString = moment(moment(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf(\"d\").add(1, \"m\")).format(this.timeFormat);\n if (intervalAsString === endOfDayAsString) {\n this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf(\"d\").valueOf();\n }\n\n } else {\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) &&\n this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n this.triggerChange = !this.triggerChange;\n }\n\n endPickerHandler(time: ITime): void {\n this.endTime = time;\n\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) && this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n checkTimeValidity(time: string, date: number): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timeMoment = moment(`${moment(date).format(\"DD-MM-YYYY\")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // then we don't check its validity against the current time\n if ((this.givenStartTime && this.givenEndTime) || (this.startDate !== this.endDate && this.startDate !== this.currDate)) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timeMoment.diff(moment(), \"m\") >= 0 ? true : false;\n }\n\n return flag;\n }\n\n // validates end picker's input according to the start picker's input\n rangeValidation(validity: boolean) {\n if (validity && this.startDate === this.endDate) {\n const startMoment = moment(this.startTime.time, this.timeFormat);\n const endMoment = moment(this.endTime.time, this.timeFormat);\n this.rangeValidity = endMoment.diff(startMoment, \"m\") >= 1 ? true : false;\n this.cdr.detectChanges();\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimeRangePickerComponent } from \"./timerangepicker.component\";\nimport { TimePickerModule } from \"mis-crystal-design-system/timepicker\";\n\n@NgModule({\n declarations: [TimeRangePickerComponent],\n imports: [CommonModule, FormsModule, TimePickerModule],\n exports: [TimeRangePickerComponent]\n})\nexport class TimeRangePickerModule {\n static forRoot(): ModuleWithProviders<TimeRangePickerModule> {\n return { ngModule: TimeRangePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mis-crystal-design-system-timerangepicker.mjs","sources":["../../../projects/mis-components/timerangepicker/timerangepicker.component.html","../../../projects/mis-components/timerangepicker/timerangepicker.component.ts","../../../projects/mis-components/timerangepicker/timerangepicker.module.ts","../../../projects/mis-components/timerangepicker/mis-crystal-design-system-timerangepicker.ts"],"sourcesContent":["<div class=\"rangepicker-container\" [ngStyle]=\"{'flexDirection': direction, 'gap': gap}\">\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"startDateEpoch\"\n [firstInterval]=\"firstIntervalForStartPicker\"\n (timeEmitter)=\"startPickerHandler($event)\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenStartTime\"\n [disable]=\"disableStartTime\"\n ></mis-timepicker>\n <p *ngIf=\"direction === 'row'\">-</p>\n <mis-timepicker\n [clockFormat]=\"clockFormat\"\n [interval]=\"interval\"\n [dateAsEpoch]=\"endDateEpoch\"\n [firstInterval]=\"firstIntervalForEndPicker\"\n (timeEmitter)=\"endPickerHandler($event)\"\n [rangeValidity]=\"rangeValidity\"\n [timezone]=\"timezone\"\n [height]=\"height\"\n [inputWidth]=\"inputWidth\"\n [dropdownWidth]=\"dropdownWidth\"\n [showTooltip]=\"showTooltip\"\n [givenTime]=\"givenEndTime\"\n [triggerChange]=\"triggerChange\"\n [disable]=\"disableEndTime\"\n ></mis-timepicker>\n</div>\n","import { Component, Input, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\nimport { ITimeRange, ITime, TDirection } from \"./timerange.namespace\";\nimport dayjs from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n@Component({\n selector: \"mis-timerangepicker\",\n templateUrl: \"./timerangepicker.component.html\",\n styleUrls: [\"./timerangepicker.component.scss\"]\n})\nexport class TimeRangePickerComponent {\n @Input() inputWidth: string = \"100px\";\n @Input() dropdownWidth?: string;\n @Input() height: string = \"46px\";\n @Input() timezone: string = \"Asia/Kolkata\";\n @Input() startDateEpoch: number = dayjs().tz(this.timezone).valueOf();\n @Input() endDateEpoch: number = dayjs().tz(this.timezone).valueOf();\n @Input() givenStartTime: number;\n @Input() givenEndTime: number;\n @Input() clockFormat: number = 12;\n @Input() interval: number = 15;\n @Input() showTooltip: boolean = true;\n @Input() direction: TDirection = 'row';\n @Input() gap: string = '1rem';\n @Input() disableStartTime: boolean = false;\n @Input() disableEndTime: boolean = false;\n @Output() timeRangeEmitter = new EventEmitter<ITimeRange>();\n\n startDate!: string;\n endDate!: string;\n currDate!: string;\n timeFormat!: string;\n firstIntervalForStartPicker: number = dayjs().valueOf();\n firstIntervalForEndPicker: number = dayjs().valueOf();\n startTime!: ITime;\n endTime!: ITime;\n rangeValidity: boolean = true;\n triggerChange: boolean = true;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {}\n\n ngOnChanges() {\n this.timeFormat = this.clockFormat === 12 ? \"hh:mm a\" : \"HH:mm\";\n dayjs.tz.setDefault(this.timezone);\n this.startDate = dayjs(this.startDateEpoch).format(\"DD-MM-YYYY\");\n this.endDate = dayjs(this.endDateEpoch).format(\"DD-MM-YYYY\");\n this.currDate = dayjs().format(\"DD-MM-YYYY\");\n this.setFirstIntervals();\n }\n\n // calculate the first interval of the picker\n setFirstIntervals(): void {\n const minutes = dayjs().minute();\n const offset = this.interval - (minutes % this.interval);\n\n // start date, 22 MAY === current date, 22 MAY\n if( this.startDate === this.currDate ){\n const currentTime = dayjs().valueOf();\n\n // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY\n if(this.startDate === this.endDate){\n\n // current time is in last interval\n if( currentTime >= dayjs(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = dayjs().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = dayjs().add(offset, \"m\").add(this.interval, \"m\").valueOf();\n }\n } \n // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY\n else {\n // current time is in last interval\n if( currentTime >= dayjs(this.startDateEpoch).endOf(\"d\").subtract(this.interval,\"m\").valueOf()){\n this.firstIntervalForStartPicker = currentTime;\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf(\"d\").valueOf();\n }\n // current time isn't in last interval\n else {\n this.firstIntervalForStartPicker = dayjs().add(offset, \"m\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).valueOf();\n }\n }\n }\n // start date, 30 MAY !== current date, 22 MAY\n else {\n // start date === end Date\n if( this.startDate === this.endDate){\n this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).add(this.interval, \"m\").valueOf();\n } \n // start date !== end date\n else {\n this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n this.firstIntervalForEndPicker = dayjs(this.startDateEpoch).startOf(\"d\").valueOf();\n }\n\n }\n\n if(this.givenStartTime)\n this.firstIntervalForStartPicker = this.givenStartTime;\n \n if(this.givenEndTime)\n this.firstIntervalForEndPicker = this.givenEndTime;\n \n this.startTime = {\n valid: true,\n time: dayjs(this.firstIntervalForStartPicker).format(this.timeFormat),\n epoch: dayjs(this.firstIntervalForStartPicker).valueOf()\n };\n\n this.endTime = {\n valid: true,\n time: dayjs(this.firstIntervalForEndPicker).format(this.timeFormat),\n epoch: dayjs(this.firstIntervalForEndPicker).valueOf()\n };\n }\n\n emitTimeRange(data: ITimeRange): void {\n this.timeRangeEmitter.emit(data);\n }\n\n //handlers catch the emitted values and run validation\n startPickerHandler(time: ITime): void {\n this.startTime = time;\n this.rangeValidity = true;\n // if the start time changes and the start date is the same as the end date\n // and the start time >= end time\n // update the first interval of end picker according to the time set in start picker\n if (this.startDate === this.endDate) {\n let minutes = dayjs(this.startTime.time, this.timeFormat).minute();\n let offset = this.interval - (minutes % this.interval);\n this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)\n .add(offset, \"m\")\n .valueOf();\n\n // if the first interval == 12:00am, set it as 11:59pm\n const intervalAsString = dayjs(this.firstIntervalForEndPicker).format(this.timeFormat);\n const endOfDayAsString = dayjs(dayjs(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf(\"d\").add(1, \"m\")).format(this.timeFormat);\n if (intervalAsString === endOfDayAsString) {\n this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf(\"d\").valueOf();\n }\n\n } else {\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) &&\n this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n this.triggerChange = !this.triggerChange;\n }\n\n endPickerHandler(time: ITime): void {\n this.endTime = time;\n\n const validity =\n this.checkTimeValidity(this.startTime.time.trim(), this.startDateEpoch) && this.checkTimeValidity(this.endTime.time.trim(), this.endDateEpoch);\n\n this.rangeValidation(validity);\n this.emitTimeRange({\n valid: validity && this.rangeValidity,\n startTime: this.startTime.time,\n endTime: this.endTime.time,\n startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),\n endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()\n });\n }\n\n checkTimeValidity(time: string, date: number): boolean {\n const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;\n const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;\n const RE = this.clockFormat === 12 ? RE12 : RE24;\n\n const timedayjs = dayjs(`${dayjs(date).format(\"DD-MM-YYYY\")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);\n let flag: boolean = false;\n\n // if the first interval is set to the start of the day\n // then we don't check its validity against the current time\n if ((this.givenStartTime && this.givenEndTime) || (this.startDate !== this.endDate && this.startDate !== this.currDate)) {\n flag = time.match(RE) ? true : false;\n } else {\n flag = time.match(RE) && timedayjs.diff(dayjs(), \"m\") >= 0 ? true : false;\n }\n\n return flag;\n }\n\n // validates end picker's input according to the start picker's input\n rangeValidation(validity: boolean) {\n if (validity && this.startDate === this.endDate) {\n const startdayjs = dayjs(this.startTime.time, this.timeFormat);\n const enddayjs = dayjs(this.endTime.time, this.timeFormat);\n this.rangeValidity = enddayjs.diff(startdayjs, \"m\") >= 1 ? true : false;\n this.cdr.detectChanges();\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TimeRangePickerComponent } from \"./timerangepicker.component\";\nimport { TimePickerModule } from \"mis-crystal-design-system/timepicker\";\n\n@NgModule({\n declarations: [TimeRangePickerComponent],\n imports: [CommonModule, FormsModule, TimePickerModule],\n exports: [TimeRangePickerComponent]\n})\nexport class TimeRangePickerModule {\n static forRoot(): ModuleWithProviders<TimeRangePickerModule> {\n return { ngModule: TimeRangePickerModule, providers: [] };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mis-crystal-design-system",
3
- "version": "17.0.1",
3
+ "version": "17.0.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "*",
6
6
  "@angular/core": "*",
@@ -34,18 +34,6 @@
34
34
  "esm": "./esm2022/analytics/mis-crystal-design-system-analytics.mjs",
35
35
  "default": "./fesm2022/mis-crystal-design-system-analytics.mjs"
36
36
  },
37
- "./checkbox": {
38
- "types": "./checkbox/index.d.ts",
39
- "esm2022": "./esm2022/checkbox/mis-crystal-design-system-checkbox.mjs",
40
- "esm": "./esm2022/checkbox/mis-crystal-design-system-checkbox.mjs",
41
- "default": "./fesm2022/mis-crystal-design-system-checkbox.mjs"
42
- },
43
- "./chip": {
44
- "types": "./chip/index.d.ts",
45
- "esm2022": "./esm2022/chip/mis-crystal-design-system-chip.mjs",
46
- "esm": "./esm2022/chip/mis-crystal-design-system-chip.mjs",
47
- "default": "./fesm2022/mis-crystal-design-system-chip.mjs"
48
- },
49
37
  "./async-search-dropdown": {
50
38
  "types": "./async-search-dropdown/index.d.ts",
51
39
  "esm2022": "./esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs",
@@ -58,12 +46,24 @@
58
46
  "esm": "./esm2022/button/mis-crystal-design-system-button.mjs",
59
47
  "default": "./fesm2022/mis-crystal-design-system-button.mjs"
60
48
  },
49
+ "./chip": {
50
+ "types": "./chip/index.d.ts",
51
+ "esm2022": "./esm2022/chip/mis-crystal-design-system-chip.mjs",
52
+ "esm": "./esm2022/chip/mis-crystal-design-system-chip.mjs",
53
+ "default": "./fesm2022/mis-crystal-design-system-chip.mjs"
54
+ },
61
55
  "./datepicker_v2": {
62
56
  "types": "./datepicker_v2/index.d.ts",
63
57
  "esm2022": "./esm2022/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs",
64
58
  "esm": "./esm2022/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs",
65
59
  "default": "./fesm2022/mis-crystal-design-system-datepicker_v2.mjs"
66
60
  },
61
+ "./checkbox": {
62
+ "types": "./checkbox/index.d.ts",
63
+ "esm2022": "./esm2022/checkbox/mis-crystal-design-system-checkbox.mjs",
64
+ "esm": "./esm2022/checkbox/mis-crystal-design-system-checkbox.mjs",
65
+ "default": "./fesm2022/mis-crystal-design-system-checkbox.mjs"
66
+ },
67
67
  "./daterangepicker_v2": {
68
68
  "types": "./daterangepicker_v2/index.d.ts",
69
69
  "esm2022": "./esm2022/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs",
@@ -8,7 +8,7 @@ export declare class TzDrpContainerComponent implements OnInit {
8
8
  private toast;
9
9
  private cdr;
10
10
  data: IDatePickerData;
11
- private parseZoneInstance;
11
+ private dayjsInstance;
12
12
  private rawWeekDays;
13
13
  weekDays: IWeekDay[];
14
14
  currentMonthNumber: number;
@@ -15,7 +15,7 @@ export declare class TableFilterComponent implements OnInit {
15
15
  updateFilter(data: any): void;
16
16
  getFiltersBasedOnSearchValue(): Filter[] | any;
17
17
  getCheckedFilters(): Filter[] | any;
18
- mySort: (a: Filter | any, b: Filter | any) => 1 | -1 | 0;
18
+ mySort: (a: Filter | any, b: Filter | any) => 1 | 0 | -1;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<TableFilterComponent, never>;
20
20
  static ɵcmp: i0.ɵɵComponentDeclaration<TableFilterComponent, "mis-table-filter", never, { "filtersData": { "alias": "filtersData"; "required": false; }; "containerStyles": { "alias": "containerStyles"; "required": false; }; }, { "filtersApplied": "filtersApplied"; }, never, never, false, never>;
21
21
  }
@@ -1,8 +1,8 @@
1
1
  import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit } from "@angular/core";
2
- import moment from "moment-timezone";
3
2
  import { ITime } from "./time.namespace";
4
3
  import { TimepickerDirective } from "./timepicker.directive";
5
4
  import { ToolTipDirective } from "mis-crystal-design-system/tooltip";
5
+ import dayjs from 'dayjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class TimePickerComponent implements OnInit, OnChanges, OnDestroy {
8
8
  currTime: string;
@@ -39,7 +39,7 @@ export declare class TimePickerComponent implements OnInit, OnChanges, OnDestroy
39
39
  ngOnInit(): void;
40
40
  ngOnChanges(): void;
41
41
  emitTime(data: ITime): void;
42
- getMoment(time: string): moment.Moment;
42
+ getdayjs(time?: string): dayjs.Dayjs;
43
43
  closeDropdown(): void;
44
44
  openDropdown(): void;
45
45
  checkTimeValidity(time: string): boolean;