mis-crystal-design-system 18.1.16 → 18.1.18

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.
@@ -12,8 +12,8 @@ export declare class TzDatepickerDirective implements OnInit {
12
12
  selectedDate: import("@angular/core").InputSignal<string>;
13
13
  datesDisabled: import("@angular/core").InputSignal<string[]>;
14
14
  dateMessages: import("@angular/core").InputSignal<IDatePickerToastText[]>;
15
- positionX: import("@angular/core").InputSignal<"start" | "end" | "center">;
16
- positionY: import("@angular/core").InputSignal<"top" | "bottom" | "center">;
15
+ positionX: import("@angular/core").InputSignal<"start" | "center" | "end">;
16
+ positionY: import("@angular/core").InputSignal<"center" | "top" | "bottom">;
17
17
  offsetX: import("@angular/core").InputSignal<number>;
18
18
  offsetY: import("@angular/core").InputSignal<number>;
19
19
  allowBookingOnDisabledDay: import("@angular/core").InputSignal<boolean>;
@@ -13,8 +13,8 @@ export declare class TzDaterangepickerDirective {
13
13
  datesDisabled: import("@angular/core").InputSignal<string[]>;
14
14
  selectedRangeLabel: import("@angular/core").InputSignal<string>;
15
15
  dateMessages: import("@angular/core").InputSignal<IDatePickerToastText[]>;
16
- positionX: import("@angular/core").InputSignal<"start" | "end" | "center">;
17
- positionY: import("@angular/core").InputSignal<"top" | "bottom" | "center">;
16
+ positionX: import("@angular/core").InputSignal<"start" | "center" | "end">;
17
+ positionY: import("@angular/core").InputSignal<"center" | "top" | "bottom">;
18
18
  offsetX: import("@angular/core").InputSignal<number>;
19
19
  offsetY: import("@angular/core").InputSignal<number>;
20
20
  dateChange: import("@angular/core").OutputEmitterRef<ISelectedDatesConfig>;
@@ -56,7 +56,7 @@ export class StarRatingComponent {
56
56
  // keep in sync if parent changes later
57
57
  effect(() => {
58
58
  this._selectedRating.set(this.selectedRating());
59
- });
59
+ }, { allowSignalWrites: true });
60
60
  }
61
61
  // === Handlers ===
62
62
  starMouseOver(index) {
@@ -96,4 +96,4 @@ export class StarRatingComponent {
96
96
  args: [{ selector: 'mis-star-rating', template: "<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.rating-container{display:flex;flex-direction:row;gap:12px}.not-hovered{opacity:.6}.hoveredStarZoom{transform:scale(1.2);filter:drop-shadow(0px 2px 5px var(--brand-warning, #FF9D00));transition:all .3s ease-out}\n"] }]
97
97
  }], () => [], null); })();
98
98
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StarRatingComponent, { className: "StarRatingComponent" }); })();
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztJQ0t2RixBQURGLDhCQUFpRixhQU92RTtJQUpILEFBREEsc01BQVMsbUNBQXlCLEtBQUMsaU1BQ3RCLGdDQUFzQixLQUFDO0lBS3ZDLHlCQUFtRjtJQUV2RixBQURFLGlCQUFNLEVBQ0Y7Ozs7SUFOQyxjQUdFO0lBSEYsMElBR0U7SUFDQSxjQUFrQjtJQUFDLEFBQW5CLHFEQUFrQixnRkFBMkQ7O0FETHhGLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFFBQVE7UUFDTix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEO1FBdEJBLGlCQUFpQjtRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDbkQsaUJBQVksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxD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cG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLXN0YXItcmF0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXItcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhclJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vID09PSBJbnB1dHMgPT09XG4gIG5vT2ZTdGFycyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFJhdGluZyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFN0YXJTdmcgPSBpbnB1dCgnYXNzZXRzL3NlbGVjdGVkU3Rhci5zdmcnKTtcbiAgZW1wdHlTdGFyU3ZnID0gaW5wdXQoJ2Fzc2V0cy9zdGFyLnN2ZycpO1xuICBzdGFySGVpZ2h0ID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhcldpZHRoID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhclNlbGVjdGlvbkFsbG93ZWQgPSBpbnB1dCh0cnVlKTtcbiAgc3RhckhvdmVyQWxsb3dlZCA9IGlucHV0KHRydWUpO1xuXG4gIC8vID09PSBPdXRwdXQgPT09XG4gIHN0YXJSYXRlZCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgLy8gPT09IEludGVybmFsIHN0YXRlID09PVxuICBwcml2YXRlIF9ob3ZlckluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIF9zZWxlY3RlZFJhdGluZyA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGluaXRpYWxpemUgb25jZSBpbnB1dHMgYXJlIGF2YWlsYWJsZVxuICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8ga2VlcCBpbiBzeW5jIGlmIHBhcmVudCBjaGFuZ2VzIGxhdGVyXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09IENvbXB1dGVkID09PVxuICBzdGFyRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubm9PZlN0YXJzKCkpO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fc2VsZWN0ZWRSYXRpbmcoKTtcbiAgICBjb25zdCBob3ZlciA9IHRoaXMuX2hvdmVySW5kZXgoKTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4ge1xuICAgICAgY29uc3QgaXNIb3ZlcmVkID0gaG92ZXIgIT0gbnVsbCAmJiBpIDw9IGhvdmVyO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGkgPCBzZWxlY3RlZDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGksXG4gICAgICAgIGFzc2V0OiBpc0hvdmVyZWQgfHwgaXNTZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRTdGFyU3ZnKCkgOiB0aGlzLmVtcHR5U3RhclN2ZygpLFxuICAgICAgICBob3ZlcklkOiBob3ZlciA/PyAtMSxcbiAgICAgIH0gYXMgU1RBUl9EQVRBO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyA9PT0gSGFuZGxlcnMgPT09XG4gIHN0YXJNb3VzZU92ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnN0YXJIb3ZlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy5faG92ZXJJbmRleC5zZXQoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXJNb3VzZUxlYXZlKCkge1xuICAgIGlmICh0aGlzLnN0YXJIb3ZlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy5faG92ZXJJbmRleC5zZXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0ZWRTdGFyRGF0YShpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc3RhclNlbGVjdGlvbkFsbG93ZWQoKSkge1xuICAgICAgY29uc3QgcmF0aW5nID0gaW5kZXggKyAxO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRSYXRpbmcuc2V0KHJhdGluZyk7XG4gICAgICB0aGlzLnN0YXJSYXRlZC5lbWl0KHJhdGluZyk7XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeUlkKF86IG51bWJlciwgaXRlbTogU1RBUl9EQVRBKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVEFSX0RBVEEge1xuICBpZDogbnVtYmVyO1xuICBhc3NldDogc3RyaW5nO1xuICBob3ZlcklkOiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwicmF0aW5nLWNvbnRhaW5lclwiXG4gICAgIChtb3VzZWxlYXZlKT1cInN0YXJNb3VzZUxlYXZlKClcIlxuICAgICBbbmdTdHlsZV09XCJ7J2N1cnNvcic6IHN0YXJTZWxlY3Rpb25BbGxvd2VkKCkgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnfVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJzdGFycy1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgc3RhciBvZiBzdGFyRGF0YSgpOyB0cmFja0J5OiB0cmFja0J5SWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RhclwiXG4gICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRTdGFyRGF0YShzdGFyLmlkKVwiXG4gICAgICAgICAobW91c2VvdmVyKT1cInN0YXJNb3VzZU92ZXIoc3Rhci5pZClcIlxuICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAnaG92ZXJlZFN0YXJab29tJzogc3Rhci5pZCA9PT0gc3Rhci5ob3ZlcklkLFxuICAgICAgICAgICAnbm90LWhvdmVyZWQnOiBzdGFyLmhvdmVySWQgPj0gMCAmJiBzdGFyLmlkID4gc3Rhci5ob3ZlcklkXG4gICAgICAgICB9XCI+XG4gICAgICA8aW1nIFtzcmNdPVwic3Rhci5hc3NldFwiIFtuZ1N0eWxlXT1cInsnaGVpZ2h0Jzogc3RhckhlaWdodCgpLCAnd2lkdGgnOiBzdGFyV2lkdGgoKX1cIj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztJQ0t2RixBQURGLDhCQUFpRixhQU92RTtJQUpILEFBREEsc01BQVMsbUNBQXlCLEtBQUMsaU1BQ3RCLGdDQUFzQixLQUFDO0lBS3ZDLHlCQUFtRjtJQUV2RixBQURFLGlCQUFNLEVBQ0Y7Ozs7SUFOQyxjQUdFO0lBSEYsMElBR0U7SUFDQSxjQUFrQjtJQUFDLEFBQW5CLHFEQUFrQixnRkFBMkQ7O0FETHhGLE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFFBQVE7UUFDTix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEO1FBdEJBLGlCQUFpQjtRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDbkQsaUJBQVksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxD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SWhCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLXN0YXItcmF0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXItcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhclJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vID09PSBJbnB1dHMgPT09XG4gIG5vT2ZTdGFycyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFJhdGluZyA9IGlucHV0KDApO1xuICBzZWxlY3RlZFN0YXJTdmcgPSBpbnB1dCgnYXNzZXRzL3NlbGVjdGVkU3Rhci5zdmcnKTtcbiAgZW1wdHlTdGFyU3ZnID0gaW5wdXQoJ2Fzc2V0cy9zdGFyLnN2ZycpO1xuICBzdGFySGVpZ2h0ID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhcldpZHRoID0gaW5wdXQoJzI0cHgnKTtcbiAgc3RhclNlbGVjdGlvbkFsbG93ZWQgPSBpbnB1dCh0cnVlKTtcbiAgc3RhckhvdmVyQWxsb3dlZCA9IGlucHV0KHRydWUpO1xuXG4gIC8vID09PSBPdXRwdXQgPT09XG4gIHN0YXJSYXRlZCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgLy8gPT09IEludGVybmFsIHN0YXRlID09PVxuICBwcml2YXRlIF9ob3ZlckluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIF9zZWxlY3RlZFJhdGluZyA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGluaXRpYWxpemUgb25jZSBpbnB1dHMgYXJlIGF2YWlsYWJsZVxuICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8ga2VlcCBpbiBzeW5jIGlmIHBhcmVudCBjaGFuZ2VzIGxhdGVyXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUmF0aW5nLnNldCh0aGlzLnNlbGVjdGVkUmF0aW5nKCkpO1xuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gIH1cblxuICAvLyA9PT0gQ29tcHV0ZWQgPT09XG4gIHN0YXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gTWF0aC5tYXgoMCwgdGhpcy5ub09mU3RhcnMoKSk7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZFJhdGluZygpO1xuICAgIGNvbnN0IGhvdmVyID0gdGhpcy5faG92ZXJJbmRleCgpO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sIChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlciAhPSBudWxsICYmIGkgPD0gaG92ZXI7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gaSA8IHNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaSxcbiAgICAgICAgYXNzZXQ6IGlzSG92ZXJlZCB8fCBpc1NlbGVjdGVkID8gdGhpcy5zZWxlY3RlZFN0YXJTdmcoKSA6IHRoaXMuZW1wdHlTdGFyU3ZnKCksXG4gICAgICAgIGhvdmVySWQ6IGhvdmVyID8/IC0xLFxuICAgICAgfSBhcyBTVEFSX0RBVEE7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vID09PSBIYW5kbGVycyA9PT1cbiAgc3Rhck1vdXNlT3ZlcihpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc3RhckhvdmVyQWxsb3dlZCgpKSB7XG4gICAgICB0aGlzLl9ob3ZlckluZGV4LnNldChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgc3Rhck1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKHRoaXMuc3RhckhvdmVyQWxsb3dlZCgpKSB7XG4gICAgICB0aGlzLl9ob3ZlckluZGV4LnNldChudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RlZFN0YXJEYXRhKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5zdGFyU2VsZWN0aW9uQWxsb3dlZCgpKSB7XG4gICAgICBjb25zdCByYXRpbmcgPSBpbmRleCArIDE7XG4gICAgICB0aGlzLl9zZWxlY3RlZFJhdGluZy5zZXQocmF0aW5nKTtcbiAgICAgIHRoaXMuc3RhclJhdGVkLmVtaXQocmF0aW5nKTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5SWQoXzogbnVtYmVyLCBpdGVtOiBTVEFSX0RBVEEpIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUQVJfREFUQSB7XG4gIGlkOiBudW1iZXI7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIGhvdmVySWQ6IG51bWJlcjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJyYXRpbmctY29udGFpbmVyXCJcbiAgICAgKG1vdXNlbGVhdmUpPVwic3Rhck1vdXNlTGVhdmUoKVwiXG4gICAgIFtuZ1N0eWxlXT1cInsnY3Vyc29yJzogc3RhclNlbGVjdGlvbkFsbG93ZWQoKSA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCd9XCI+XG5cbiAgPGRpdiBjbGFzcz1cInN0YXJzLWNvbnRhaW5lclwiICpuZ0Zvcj1cImxldCBzdGFyIG9mIHN0YXJEYXRhKCk7IHRyYWNrQnk6IHRyYWNrQnlJZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGFyXCJcbiAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFN0YXJEYXRhKHN0YXIuaWQpXCJcbiAgICAgICAgIChtb3VzZW92ZXIpPVwic3Rhck1vdXNlT3ZlcihzdGFyLmlkKVwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICdob3ZlcmVkU3Rhclpvb20nOiBzdGFyLmlkID09PSBzdGFyLmhvdmVySWQsXG4gICAgICAgICAgICdub3QtaG92ZXJlZCc6IHN0YXIuaG92ZXJJZCA+PSAwICYmIHN0YXIuaWQgPiBzdGFyLmhvdmVySWRcbiAgICAgICAgIH1cIj5cbiAgICAgIDxpbWcgW3NyY109XCJzdGFyLmFzc2V0XCIgW25nU3R5bGVdPVwieydoZWlnaHQnOiBzdGFySGVpZ2h0KCksICd3aWR0aCc6IHN0YXJXaWR0aCgpfVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -40,13 +40,13 @@ export class TimepickerDirective {
40
40
  this.overlayRef.backdropClick().subscribe(resp => {
41
41
  this.openStatus = false;
42
42
  this.statusEmitter.emit(false);
43
- if (this.overlay) {
43
+ if (this.overlayRef) {
44
44
  this.overlayRef.detach();
45
45
  }
46
46
  });
47
47
  }
48
48
  destroyOverlay() {
49
- if (this.overlay) {
49
+ if (this.overlayRef) {
50
50
  this.overlayRef.detach();
51
51
  }
52
52
  }
@@ -67,4 +67,4 @@ export class TimepickerDirective {
67
67
  type: Input,
68
68
  args: ['openStatus']
69
69
  }] }); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90aW1lcGlja2VyL3RpbWVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFLckQsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixJQUEwQixvQkFBb0IsQ0FBQyxVQUFVO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFBQSxDQUFDO0lBRUYsWUFBb0IsV0FBaUMsRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUF2RyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVhuSCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVN3RSxDQUFDO0lBRS9ILGFBQWEsQ0FBQyxNQUFXO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakgsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RyxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDdEMsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTztpQkFDM0IsUUFBUSxFQUFFO2dCQUNYLHNEQUFzRDtpQkFDckQsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2lCQUMzQixhQUFhLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUM7WUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO29IQS9DVSxtQkFBbUI7b0VBQW5CLG1CQUFtQjs7aUZBQW5CLG1CQUFtQjtjQUgvQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1QjtpR0FHb0IsUUFBUTtrQkFBMUIsS0FBSzttQkFBQyxVQUFVO1lBQ1AsYUFBYTtrQkFBdEIsTUFBTTtZQUVtQixvQkFBb0I7a0JBQTdDLEtBQUs7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsaWJUaW1lcGlja2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgVGltZXBpY2tlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgb3BlblN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ29yaWdpbkVsJykgb3JpZ2luRWwgOiBhbnk7XG4gIEBPdXRwdXQoKSBzdGF0dXNFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyBcblxuICBASW5wdXQoJ29wZW5TdGF0dXMnKSAgc2V0IGNyZWF0ZU92ZXJsYXlPbklucHV0KG9wZW5TdGF0dXMpe1xuICAgIHRoaXMub3BlblN0YXR1cyA9IG9wZW5TdGF0dXM7XG4gICAgaWYodGhpcy5vcmlnaW5FbCAmJiB0aGlzLm9wZW5TdGF0dXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlT3ZlcmxheSh0aGlzLm9yaWdpbkVsKTtcbiAgICB9XG4gIH07IFxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxFbGVtZW50PiwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgY3JlYXRlT3ZlcmxheShvcmlnaW46IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IFtcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJzdGFydFwiLCBvcmlnaW5ZOiBcImJvdHRvbVwiIH0sIHsgb3ZlcmxheVg6IFwic3RhcnRcIiwgb3ZlcmxheVk6IFwidG9wXCIgfSwgMCwgNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwidG9wXCIgfSwgMCwgNClcbiAgICBdO1xuXG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC8vY29ubmVjdGluZyB0aGUgZHJvcGRvd24gb3ZlcmxheSB0byB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFsuLi5wb3NpdGlvbnNdKVxuICAgICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgY29uc3QgZHJvcGRvd25Qb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGRyb3Bkb3duUG9ydGFsKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShyZXNwID0+IHtcbiAgICAgIHRoaXMub3BlblN0YXR1cyA9IGZhbHNlO1xuICAgICAgdGhpcy5zdGF0dXNFbWl0dGVyLmVtaXQoZmFsc2UpO1xuICAgICAgaWYodGhpcy5vdmVybGF5KXtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVzdHJveU92ZXJsYXkoKXtcbiAgICBpZih0aGlzLm92ZXJsYXkpe1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cbiAgfVxuICBcbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90aW1lcGlja2VyL3RpbWVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFLckQsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixJQUEwQixvQkFBb0IsQ0FBQyxVQUFVO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFBQSxDQUFDO0lBRUYsWUFBb0IsV0FBaUMsRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUF2RyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVhuSCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVN3RSxDQUFDO0lBRS9ILGFBQWEsQ0FBQyxNQUFXO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakgsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RyxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDdEMsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTztpQkFDM0IsUUFBUSxFQUFFO2dCQUNYLHNEQUFzRDtpQkFDckQsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2lCQUMzQixhQUFhLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUMsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7b0hBL0NVLG1CQUFtQjtvRUFBbkIsbUJBQW1COztpRkFBbkIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCO2lHQUdvQixRQUFRO2tCQUExQixLQUFLO21CQUFDLFVBQVU7WUFDUCxhQUFhO2tCQUF0QixNQUFNO1lBRW1CLG9CQUFvQjtrQkFBN0MsS0FBSzttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xpYlRpbWVwaWNrZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBvcGVuU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnb3JpZ2luRWwnKSBvcmlnaW5FbCA6IGFueTtcbiAgQE91dHB1dCgpIHN0YXR1c0VtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7IFxuXG4gIEBJbnB1dCgnb3BlblN0YXR1cycpICBzZXQgY3JlYXRlT3ZlcmxheU9uSW5wdXQob3BlblN0YXR1cyl7XG4gICAgdGhpcy5vcGVuU3RhdHVzID0gb3BlblN0YXR1cztcbiAgICBpZih0aGlzLm9yaWdpbkVsICYmIHRoaXMub3BlblN0YXR1cykge1xuICAgICAgdGhpcy5jcmVhdGVPdmVybGF5KHRoaXMub3JpZ2luRWwpO1xuICAgIH1cbiAgfTsgXG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBjcmVhdGVPdmVybGF5KG9yaWdpbjogYW55KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLy9jb25uZWN0aW5nIHRoZSBkcm9wZG93biBvdmVybGF5IHRvIHRoZSBpbnB1dCBlbGVtZW50XG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLnBvc2l0aW9uc10pXG4gICAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBkcm9wZG93blBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlUmVmLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2goZHJvcGRvd25Qb3J0YWwpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKHJlc3AgPT4ge1xuICAgICAgdGhpcy5vcGVuU3RhdHVzID0gZmFsc2U7XG4gICAgICB0aGlzLnN0YXR1c0VtaXR0ZXIuZW1pdChmYWxzZSk7XG4gICAgICBpZih0aGlzLm92ZXJsYXlSZWYpe1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZXN0cm95T3ZlcmxheSgpe1xuICAgIGlmKHRoaXMub3ZlcmxheVJlZil7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgfVxuICB9XG4gIFxufVxuIl19
@@ -58,7 +58,7 @@ class StarRatingComponent {
58
58
  // keep in sync if parent changes later
59
59
  effect(() => {
60
60
  this._selectedRating.set(this.selectedRating());
61
- });
61
+ }, { allowSignalWrites: true });
62
62
  }
63
63
  // === Handlers ===
64
64
  starMouseOver(index) {
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-star-rating.mjs","sources":["../../../projects/mis-components/star-rating/star-rating.component.html","../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n","import { Component, input, output, signal, computed, effect, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss'],\n})\nexport class StarRatingComponent implements OnInit {\n // === Inputs ===\n noOfStars = input(0);\n selectedRating = input(0);\n selectedStarSvg = input('assets/selectedStar.svg');\n emptyStarSvg = input('assets/star.svg');\n starHeight = input('24px');\n starWidth = input('24px');\n starSelectionAllowed = input(true);\n starHoverAllowed = input(true);\n\n // === Output ===\n starRated = output<number>();\n\n // === Internal state ===\n private _hoverIndex = signal<number | null>(null);\n private _selectedRating = signal<number>(0);\n\n ngOnInit() {\n // initialize once inputs are available\n this._selectedRating.set(this.selectedRating());\n }\n\n constructor() {\n // keep in sync if parent changes later\n effect(() => {\n this._selectedRating.set(this.selectedRating());\n });\n }\n\n // === Computed ===\n starData = computed(() => {\n const count = Math.max(0, this.noOfStars());\n const selected = this._selectedRating();\n const hover = this._hoverIndex();\n\n return Array.from({ length: count }, (_, i) => {\n const isHovered = hover != null && i <= hover;\n const isSelected = i < selected;\n\n return {\n id: i,\n asset: isHovered || isSelected ? this.selectedStarSvg() : this.emptyStarSvg(),\n hoverId: hover ?? -1,\n } as STAR_DATA;\n });\n });\n\n // === Handlers ===\n starMouseOver(index: number) {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(index);\n }\n }\n\n starMouseLeave() {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(null);\n }\n }\n\n selectedStarData(index: number) {\n if (this.starSelectionAllowed()) {\n const rating = index + 1;\n this._selectedRating.set(rating);\n this.starRated.emit(rating);\n }\n }\n\n trackById(_: number, item: STAR_DATA) {\n return item.id;\n }\n}\n\nexport interface STAR_DATA {\n id: number;\n asset: string;\n hoverId: number;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\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-star-rating.mjs","sources":["../../../projects/mis-components/star-rating/star-rating.component.html","../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n","import { Component, input, output, signal, computed, effect, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss'],\n})\nexport class StarRatingComponent implements OnInit {\n // === Inputs ===\n noOfStars = input(0);\n selectedRating = input(0);\n selectedStarSvg = input('assets/selectedStar.svg');\n emptyStarSvg = input('assets/star.svg');\n starHeight = input('24px');\n starWidth = input('24px');\n starSelectionAllowed = input(true);\n starHoverAllowed = input(true);\n\n // === Output ===\n starRated = output<number>();\n\n // === Internal state ===\n private _hoverIndex = signal<number | null>(null);\n private _selectedRating = signal<number>(0);\n\n ngOnInit() {\n // initialize once inputs are available\n this._selectedRating.set(this.selectedRating());\n }\n\n constructor() {\n // keep in sync if parent changes later\n effect(() => {\n this._selectedRating.set(this.selectedRating());\n }, { allowSignalWrites: true });\n }\n\n // === Computed ===\n starData = computed(() => {\n const count = Math.max(0, this.noOfStars());\n const selected = this._selectedRating();\n const hover = this._hoverIndex();\n\n return Array.from({ length: count }, (_, i) => {\n const isHovered = hover != null && i <= hover;\n const isSelected = i < selected;\n\n return {\n id: i,\n asset: isHovered || isSelected ? this.selectedStarSvg() : this.emptyStarSvg(),\n hoverId: hover ?? -1,\n } as STAR_DATA;\n });\n });\n\n // === Handlers ===\n starMouseOver(index: number) {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(index);\n }\n }\n\n starMouseLeave() {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(null);\n }\n }\n\n selectedStarData(index: number) {\n if (this.starSelectionAllowed()) {\n const rating = index + 1;\n this._selectedRating.set(rating);\n this.starRated.emit(rating);\n }\n }\n\n trackById(_: number, item: STAR_DATA) {\n return item.id;\n }\n}\n\nexport interface STAR_DATA {\n id: number;\n asset: string;\n hoverId: number;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAKI,IADF,8BAAiF,CAOvE,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAJH,IADA,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,EAAA,CAAyB,CAAC,CAAA,EAAA,CAAA,CAAA,WAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACtB,gCAAsB,CAAC,CAAA,EAAA,CAAA,CAAA;IAKvC,EAAmF,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAEvF,IADE,iBAAM,EACF,CAAA;;;;IANC,EAGE,CAAA,SAAA,EAAA,CAAA;IAHF,EAGE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,OAAA,CAAA,EAAA,KAAA,OAAA,CAAA,OAAA,EAAA,OAAA,CAAA,OAAA,IAAA,CAAA,IAAA,OAAA,CAAA,EAAA,GAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IACA,EAAkB,CAAA,SAAA,EAAA,CAAA;AAAC,IAAnB,qDAAkB,CAA2D,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,UAAA,EAAA,EAAA,MAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;MCL3E,mBAAmB,CAAA;IAkB9B,QAAQ,GAAA;;QAEN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;KACjD;AAED,IAAA,WAAA,GAAA;;AArBA,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;;QAG/B,IAAS,CAAA,SAAA,GAAG,MAAM,EAAU,CAAC;;AAGrB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;;AAe5C,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEjC,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;gBAC5C,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;AAC9C,gBAAA,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAEhC,OAAO;AACL,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,KAAK,EAAE,SAAS,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;AAC7E,oBAAA,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;iBACR,CAAC;AACjB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;;QArBD,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAClD,SAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;KACjC;;AAqBD,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC7B;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC5B;KACF;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC/B,YAAA,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;KACF;IAED,SAAS,CAAC,CAAS,EAAE,IAAe,EAAA;QAClC,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;oHAvEU,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDPhC,EAEgF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAD3E,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAc,oBAAgB,CAAC,EAAA,CAAA,CAAA;YAGlC,EAAiF,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAWnF,EAAM,CAAA,YAAA,EAAA,CAAA;;YAbD,EAA0E,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,GAAA,CAAA,oBAAA,EAAA,GAAA,SAAA,GAAA,aAAA,CAAA,CAAA,CAAA;YAE/B,EAAe,CAAA,SAAA,EAAA,CAAA;AAAA,YAAf,wCAAe,CAAkB,cAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;;iFCGpE,mBAAmB,EAAA,CAAA;cAL/B,SAAS;2BACE,iBAAiB,EAAA,QAAA,EAAA,wpBAAA,EAAA,MAAA,EAAA,CAAA,i3HAAA,CAAA,EAAA,CAAA;;kFAIhB,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCEnB,gBAAgB,CAAA;iHAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;uEAHjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGX,gBAAgB,EAAA,CAAA;cAL5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,EAJZ,EAAA,YAAA,EAAA,CAAA,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACP/B;;AAEG;;;;"}
@@ -50,13 +50,13 @@ class TimepickerDirective {
50
50
  this.overlayRef.backdropClick().subscribe(resp => {
51
51
  this.openStatus = false;
52
52
  this.statusEmitter.emit(false);
53
- if (this.overlay) {
53
+ if (this.overlayRef) {
54
54
  this.overlayRef.detach();
55
55
  }
56
56
  });
57
57
  }
58
58
  destroyOverlay() {
59
- if (this.overlay) {
59
+ if (this.overlayRef) {
60
60
  this.overlayRef.detach();
61
61
  }
62
62
  }
@@ -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) {\n this.createOverlay(this.originEl);\n }\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 if(this.overlay){\n this.overlayRef.detach();\n }\n });\n }\n\n destroyOverlay(){\n if(this.overlay){\n this.overlayRef.detach();\n }\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($event)\"\n [readOnly]=\"disableUserInput()\"\n [ngClass]=\"{ invalid: isInvalid() || !rangeValidity() }\"\n [ngStyle]=\"{ width: inputWidth(), fontSize: fontSize() }\"\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 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() }\" [ngStyle]=\"{ fontSize: fontSize() }\">\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, OnDestroy, OnInit, Output, ViewChild, ViewChildren, input, output, signal, computed, effect, untracked } 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, OnDestroy {\n // Convert to signals for better performance and change detection\n currTime = signal<string>('');\n chosenTime = signal<string>('');\n openStatus = signal<boolean>(false);\n isHighlighted = signal<number>(0);\n isInvalid = signal<boolean>(false);\n timeIntervals = signal<string[]>([]);\n shouldScroll = signal<boolean>(false);\n userInputFlag = signal<boolean>(false);\n givenTimeFlag = signal<boolean>(true);\n // Signal-based inputs with backward compatibility\n clockFormat = input<number>(12);\n timeFormat!: string;\n \n timezone = input<string>(\"Asia/Kolkata\");\n height = input<string>(\"max-content\");\n inputWidth = input<string>(\"100px\");\n dropdownWidth = input<string | undefined>(undefined);\n interval = input<number>(15);\n dateAsEpoch = input<number>(dayjs.tz(dayjs(), \"Asia/Kolkata\").valueOf());\n firstInterval = input<number>();\n rangeValidity = input<boolean>(true);\n showTooltip = input<boolean>(true);\n dispayToolTip: boolean = this.showTooltip();\n givenTime = input<number>();\n minTime = input<number | undefined>(undefined);\n triggerChange = input<boolean>(true);\n disable = input<boolean>(false);\n disableUserInput = input<boolean>(false);\n fontSize = input<string>(\"14px\");\n \n // Internal state for computed first interval\n private computedFirstInterval: number | null = null;\n private _isInitializing = false;\n \n // Signal-based output with backward compatibility\n timeEmitter = output<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 // Effect to handle triggerChange toggles (explicit reset requests from parent)\n // This effect ONLY resets chosenTime when triggerChange is toggled\n // It does NOT watch firstInterval to avoid resetting time when dropdown intervals are updated\n effect(() => {\n const triggerValue = this.triggerChange();\n const firstIntervalValue = untracked(() => this.firstInterval()); // Use untracked to not create dependency\n \n // Only reset when triggerChange is toggled AND firstInterval is provided\n // This handles cases where parent explicitly wants to reset the time (e.g., conflict resolution)\n if (!untracked(() => this.userInputFlag()) && firstIntervalValue && !this._isInitializing) {\n const newTime = dayjs.tz(firstIntervalValue, untracked(() => this.timezone())).format(this.timeFormat);\n \n // Only update if the time actually changed\n if (untracked(() => this.chosenTime()) !== newTime) {\n // Use setTimeout to defer signal writes and avoid circular dependencies\n setTimeout(() => {\n this.chosenTime.set(newTime);\n this.isInvalid.set(!this.checkTimeValidity(newTime.trim()));\n \n // Repopulate dropdown when time is reset\n this.populateDropdown();\n \n // Recalculate closest interval\n this.calculateClosestInterval(newTime);\n \n // Emit the updated time\n const timedayjs = this.getdayjs(newTime);\n this.emitTime({\n valid: !this.isInvalid(),\n time: newTime,\n epoch: timedayjs.valueOf()\n });\n }, 0);\n }\n }\n });\n \n // Separate effect to handle firstInterval changes (only update dropdown, NOT chosenTime)\n // This allows updating dropdown intervals without resetting the selected time\n effect(() => {\n const firstIntervalValue = this.firstInterval();\n \n // Only update dropdown when firstInterval changes, don't reset chosenTime\n // This is crucial: when timerangepicker updates firstInterval to fix dropdown options,\n // we don't want to reset the user's selected time\n if (!untracked(() => this.userInputFlag()) && firstIntervalValue && !this._isInitializing) {\n // Just repopulate dropdown with new intervals, preserve current chosenTime\n setTimeout(() => {\n this.populateDropdown();\n // Recalculate closest interval for current chosenTime (preserve it)\n if (untracked(() => this.chosenTime())) {\n this.calculateClosestInterval(untracked(() => this.chosenTime()));\n }\n }, 0);\n }\n });\n }\n \n ngOnInit(): void {\n this._isInitializing = true;\n // Ensure timeFormat is set before initialization\n this.timeFormat = this.clockFormat() === 12 ? \"hh:mm a\" : \"HH:mm\";\n \n // Initialize chosenTime - use firstInterval from parent if available, otherwise calculate\n if (!this.givenTime() && !this.minTime()) {\n let initialTime;\n \n // If firstInterval is provided by parent (timerangepicker), use it\n if (this.firstInterval()) {\n initialTime = dayjs.tz(this.firstInterval(), this.timezone()).format(this.timeFormat);\n } else {\n // Get current time and round to nearest interval using original logic\n const now = dayjs.tz(dayjs(), this.timezone());\n const interval = this.interval();\n const minutes = now.minute();\n const offset = interval - (minutes % interval);\n \n // Round to next interval if we're past halfway point\n const roundedTime = offset >= interval / 2 \n ? now.add(offset, \"m\").second(0).millisecond(0)\n : now.subtract(interval - offset, \"m\").second(0).millisecond(0);\n \n initialTime = roundedTime.format(this.timeFormat);\n }\n \n this.chosenTime.set(initialTime);\n \n // Set userInputFlag to false to avoid validation issues during initialization\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // Now validate with the computed first interval\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\n } else if (this.givenTime()) {\n // When givenTime is present, use the given time as the initial value\n // but the dropdown will start from 12:00 AM\n this.chosenTime.set(dayjs.tz(this.givenTime(), this.timezone()).format(this.timeFormat));\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // Now validate with the computed first interval\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\n } else if (this.minTime()) {\n // Use min time directly - this matches original behavior\n this.chosenTime.set(dayjs.tz(this.minTime(), this.timezone()).format(this.timeFormat));\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // For minTime, validation should only check format, not time comparison\n // This matches the original logic where minTime bypasses time validation\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\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 if(typeof time !== 'string' || time?.trim() === '') {\n throw new Error('Time must be a non-empty string');\n }\n\n let hours: number;\n let minutes: number;\n\n if(this.clockFormat() === 24) {\n hours = parseInt(time.split(':')[0]);\n minutes = parseInt(time.split(':')[1]);\n } else {\n const timeParts = time.split(' ');\n const AM_PM = timeParts?.[1];\n hours = parseInt(timeParts?.[0]?.split(':')?.[0]);\n minutes = parseInt(timeParts?.[0]?.split(':')?.[1]);\n\n if(AM_PM?.toUpperCase() === 'PM' && hours !== 12) {\n hours += 12;\n } else if(AM_PM?.toUpperCase() === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n\n // Validate that we got valid numbers\n if(isNaN(hours) || isNaN(minutes)) {\n throw new Error('Invalid time format - could not parse hours and minutes');\n }\n\n // Use the date from dateAsEpoch but set the time to the parsed hours and minutes\n const baseDate = dayjs.tz(this.dateAsEpoch(), this.timezone());\n const result = baseDate.hour(hours).minute(minutes).second(0).millisecond(0);\n return result;\n }\n\n closeDropdown() {\n this.dispayToolTip = false;\n this.userInputFlag.set(false);\n this.openStatus.set(false);\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // toggle timepicker dropdown\n openDropdown(): void {\n this.dispayToolTip = true;\n this.openStatus.set(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 // Check if the time format is valid first\n if (!time.match(RE)) {\n return false;\n }\n\n // Restore proper validation logic\n const timedayjs = this.getdayjs(time);\n let flag: boolean = false;\n\n // Original logic: if minTime, givenTime, or firstInterval is start of day, only check format\n if (\n this.minTime() || \n this.givenTime() ||\n (this.firstInterval() &&\n dayjs.tz(this.firstInterval(), this.timezone()).format(this.timeFormat).valueOf() === dayjs.tz(dayjs(), this.timezone()).startOf(\"day\").format(this.timeFormat).valueOf()) \n ) {\n // Only check format validation, not time comparison\n flag = time.match(RE) ? true : false;\n } else {\n // Check against current time for normal cases\n const currentTime = dayjs.tz(dayjs(), this.timezone());\n const timeDiff = timedayjs.diff(currentTime, \"m\");\n flag = timeDiff >= 0;\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.set(!this.checkTimeValidity(time.trim()));\n if (!this.isInvalid()) {\n this.chosenTime.set(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.set(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 if(this.disableUserInput()) return;\n // Set user input flag to prevent effects from overriding\n this.userInputFlag.set(true);\n // Update the chosenTime signal\n this.chosenTime.set(time);\n const isValid = this.checkTimeValidity(time.trim());\n this.isInvalid.set(!isValid);\n\n // Clear user input flag after a delay to allow effects to work again\n setTimeout(() => {\n this.userInputFlag.set(false);\n }, 1000); // 1 second delay\n\n if (!this.isInvalid()) {\n this.openStatus.set(false);\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n this.calculateClosestInterval(time);\n\n // Only call getdayjs and emit when time is valid\n const timedayjs = this.getdayjs(time);\n this.emitTime({\n valid: true,\n time: time,\n epoch: timedayjs.valueOf()\n });\n } else {\n // Emit invalid state without calling getdayjs\n this.emitTime({\n valid: false,\n time: time,\n epoch: 0\n });\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.tz(this.dateAsEpoch(), this.timezone()).format(\"DD-MM-YYYY\"); // 05-01-2024\n const parsedTimeWithDate = dayjs.tz(`${chosenDate} ${time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\n // Converting dayjs object to epoch\n const chosenTimeEpoch = parsedTimeWithDate.valueOf();\n const offset = this.interval() - (dayjs.tz(chosenTimeEpoch, this.timezone()).minute() % this.interval());\n\n if (this.minTime() && !this.givenTime()) {\n this.isHighlighted.set(0);\n return;\n }\n roundedEpoch = offset >= this.interval() / 2 ? (dayjs.tz(chosenTimeEpoch, this.timezone()).subtract(this.interval() - offset, \"m\")).valueOf() : (dayjs.tz(chosenTimeEpoch, this.timezone()).add( offset, \"m\")).valueOf();\n\n // finding the index of element that needs to be highlighted\n if ( chosenTimeEpoch > dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf(\"day\").subtract(this.interval(), \"m\").valueOf()) {\n this.isHighlighted.set(this.timeIntervals().length - 1);\n } else {\n const roundedEpochdayjs = dayjs.tz(roundedEpoch, this.timezone());\n this.isHighlighted.set(this.timeIntervals().findIndex(interval => {\n const intervalObj = dayjs.tz(`${chosenDate} ${interval}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\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.set([]);\n\n // Compute the effective first interval\n let effectiveFirstInterval = this.firstInterval();\n\n // if picker is used as an individual component\n if (!effectiveFirstInterval) {\n // firstInterval is initialised according to the current time\n // if the date is same as the current date\n if (dayjs.tz(this.dateAsEpoch(), this.timezone()).format(\"DD-MM-YYYY\") === dayjs.tz(dayjs(), this.timezone()).format(\"DD-MM-YYYY\") && !this.minTime()) {\n const offset = this.interval() - (dayjs.tz(dayjs(), this.timezone()).minute() % this.interval());\n effectiveFirstInterval = dayjs.tz(dayjs(), this.timezone()).add(offset, \"m\").valueOf();\n }\n // if minimum time to show is provided\n else if(this.minTime()){\n const minTimeDayjs = dayjs.tz(this.minTime(), this.timezone());\n const offset = this.interval() - (minTimeDayjs.minute() % this.interval());\n effectiveFirstInterval = minTimeDayjs.add(offset, \"m\").valueOf();\n }\n // else the firstInterval is initialised as start of day\n else {\n effectiveFirstInterval = dayjs.tz(dayjs(), this.timezone()).startOf(\"day\").valueOf();\n }\n }\n\n if(this.givenTime()){\n // When givenTime is present, always start from 12:00 AM (start of day)\n // regardless of whether the time has passed or not\n effectiveFirstInterval = dayjs.tz(this.dateAsEpoch(), this.timezone()).startOf('day').valueOf();\n this.givenTimeFlag.set(false);\n }\n\n // Store the computed first interval for later use\n this.computedFirstInterval = effectiveFirstInterval;\n\n const dateAsString = dayjs.tz(this.dateAsEpoch(), this.timezone()).format('DD-MM-YYYY');\n const intervalAsString = dayjs.tz(effectiveFirstInterval, this.timezone()).format(this.timeFormat);\n let start = dayjs.tz(`${dateAsString} ${intervalAsString}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\n const end = dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf('d');\n \n while (start.valueOf() < end.valueOf()) {\n this.timeIntervals.update(intervals => [...intervals, start.format(this.timeFormat)]);\n start = start.add(this.interval(), \"m\");\n }\n\n // NEW: Handle end-of-day case - if firstInterval is at or very close to end of day\n // and we're on the same date, show only 11:59 PM\n const endOfDay = dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf(\"d\");\n const firstIntervalDayjs = dayjs.tz(effectiveFirstInterval, this.timezone());\n \n // Check if firstInterval is at or very close to end of day (within 1 minute)\n const isAtEndOfDay = firstIntervalDayjs.isSame(endOfDay, 'day') && \n firstIntervalDayjs.diff(endOfDay, 'minute') >= -1;\n \n if (isAtEndOfDay || this.timeIntervals().length === 0) {\n // Clear existing intervals and add only 11:59 PM\n this.timeIntervals.set([]);\n this.timeIntervals.update(intervals => [...intervals, endOfDay.format(this.timeFormat)]);\n }\n }\n\n ngOnDestroy() {\n if (this.tooltipDirective) this.tooltipDirective.hideToolTip();\n }\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) {\n this.createOverlay(this.originEl);\n }\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 if(this.overlayRef){\n this.overlayRef.detach();\n }\n });\n }\n\n destroyOverlay(){\n if(this.overlayRef){\n this.overlayRef.detach();\n }\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($event)\"\n [readOnly]=\"disableUserInput()\"\n [ngClass]=\"{ invalid: isInvalid() || !rangeValidity() }\"\n [ngStyle]=\"{ width: inputWidth(), fontSize: fontSize() }\"\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 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() }\" [ngStyle]=\"{ fontSize: fontSize() }\">\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, OnDestroy, OnInit, Output, ViewChild, ViewChildren, input, output, signal, computed, effect, untracked } 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, OnDestroy {\n // Convert to signals for better performance and change detection\n currTime = signal<string>('');\n chosenTime = signal<string>('');\n openStatus = signal<boolean>(false);\n isHighlighted = signal<number>(0);\n isInvalid = signal<boolean>(false);\n timeIntervals = signal<string[]>([]);\n shouldScroll = signal<boolean>(false);\n userInputFlag = signal<boolean>(false);\n givenTimeFlag = signal<boolean>(true);\n // Signal-based inputs with backward compatibility\n clockFormat = input<number>(12);\n timeFormat!: string;\n \n timezone = input<string>(\"Asia/Kolkata\");\n height = input<string>(\"max-content\");\n inputWidth = input<string>(\"100px\");\n dropdownWidth = input<string | undefined>(undefined);\n interval = input<number>(15);\n dateAsEpoch = input<number>(dayjs.tz(dayjs(), \"Asia/Kolkata\").valueOf());\n firstInterval = input<number>();\n rangeValidity = input<boolean>(true);\n showTooltip = input<boolean>(true);\n dispayToolTip: boolean = this.showTooltip();\n givenTime = input<number>();\n minTime = input<number | undefined>(undefined);\n triggerChange = input<boolean>(true);\n disable = input<boolean>(false);\n disableUserInput = input<boolean>(false);\n fontSize = input<string>(\"14px\");\n \n // Internal state for computed first interval\n private computedFirstInterval: number | null = null;\n private _isInitializing = false;\n \n // Signal-based output with backward compatibility\n timeEmitter = output<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 // Effect to handle triggerChange toggles (explicit reset requests from parent)\n // This effect ONLY resets chosenTime when triggerChange is toggled\n // It does NOT watch firstInterval to avoid resetting time when dropdown intervals are updated\n effect(() => {\n const triggerValue = this.triggerChange();\n const firstIntervalValue = untracked(() => this.firstInterval()); // Use untracked to not create dependency\n \n // Only reset when triggerChange is toggled AND firstInterval is provided\n // This handles cases where parent explicitly wants to reset the time (e.g., conflict resolution)\n if (!untracked(() => this.userInputFlag()) && firstIntervalValue && !this._isInitializing) {\n const newTime = dayjs.tz(firstIntervalValue, untracked(() => this.timezone())).format(this.timeFormat);\n \n // Only update if the time actually changed\n if (untracked(() => this.chosenTime()) !== newTime) {\n // Use setTimeout to defer signal writes and avoid circular dependencies\n setTimeout(() => {\n this.chosenTime.set(newTime);\n this.isInvalid.set(!this.checkTimeValidity(newTime.trim()));\n \n // Repopulate dropdown when time is reset\n this.populateDropdown();\n \n // Recalculate closest interval\n this.calculateClosestInterval(newTime);\n \n // Emit the updated time\n const timedayjs = this.getdayjs(newTime);\n this.emitTime({\n valid: !this.isInvalid(),\n time: newTime,\n epoch: timedayjs.valueOf()\n });\n }, 0);\n }\n }\n });\n \n // Separate effect to handle firstInterval changes (only update dropdown, NOT chosenTime)\n // This allows updating dropdown intervals without resetting the selected time\n effect(() => {\n const firstIntervalValue = this.firstInterval();\n \n // Only update dropdown when firstInterval changes, don't reset chosenTime\n // This is crucial: when timerangepicker updates firstInterval to fix dropdown options,\n // we don't want to reset the user's selected time\n if (!untracked(() => this.userInputFlag()) && firstIntervalValue && !this._isInitializing) {\n // Just repopulate dropdown with new intervals, preserve current chosenTime\n setTimeout(() => {\n this.populateDropdown();\n // Recalculate closest interval for current chosenTime (preserve it)\n if (untracked(() => this.chosenTime())) {\n this.calculateClosestInterval(untracked(() => this.chosenTime()));\n }\n }, 0);\n }\n });\n }\n \n ngOnInit(): void {\n this._isInitializing = true;\n // Ensure timeFormat is set before initialization\n this.timeFormat = this.clockFormat() === 12 ? \"hh:mm a\" : \"HH:mm\";\n \n // Initialize chosenTime - use firstInterval from parent if available, otherwise calculate\n if (!this.givenTime() && !this.minTime()) {\n let initialTime;\n \n // If firstInterval is provided by parent (timerangepicker), use it\n if (this.firstInterval()) {\n initialTime = dayjs.tz(this.firstInterval(), this.timezone()).format(this.timeFormat);\n } else {\n // Get current time and round to nearest interval using original logic\n const now = dayjs.tz(dayjs(), this.timezone());\n const interval = this.interval();\n const minutes = now.minute();\n const offset = interval - (minutes % interval);\n \n // Round to next interval if we're past halfway point\n const roundedTime = offset >= interval / 2 \n ? now.add(offset, \"m\").second(0).millisecond(0)\n : now.subtract(interval - offset, \"m\").second(0).millisecond(0);\n \n initialTime = roundedTime.format(this.timeFormat);\n }\n \n this.chosenTime.set(initialTime);\n \n // Set userInputFlag to false to avoid validation issues during initialization\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // Now validate with the computed first interval\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\n } else if (this.givenTime()) {\n // When givenTime is present, use the given time as the initial value\n // but the dropdown will start from 12:00 AM\n this.chosenTime.set(dayjs.tz(this.givenTime(), this.timezone()).format(this.timeFormat));\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // Now validate with the computed first interval\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\n } else if (this.minTime()) {\n // Use min time directly - this matches original behavior\n this.chosenTime.set(dayjs.tz(this.minTime(), this.timezone()).format(this.timeFormat));\n this.userInputFlag.set(false);\n \n // Populate dropdown first to compute the first interval\n this.populateDropdown();\n \n // For minTime, validation should only check format, not time comparison\n // This matches the original logic where minTime bypasses time validation\n this.isInvalid.set(!this.checkTimeValidity(this.chosenTime().trim()));\n \n let chosenTimedayjs = this.getdayjs(this.chosenTime());\n // Defer emission to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n this.emitTime({\n valid: !this.isInvalid(),\n time: this.chosenTime(),\n epoch: chosenTimedayjs.valueOf()\n });\n }, 0);\n \n // Calculate closest interval\n this.calculateClosestInterval(this.chosenTime());\n \n this._isInitializing = false;\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 if(typeof time !== 'string' || time?.trim() === '') {\n throw new Error('Time must be a non-empty string');\n }\n\n let hours: number;\n let minutes: number;\n\n if(this.clockFormat() === 24) {\n hours = parseInt(time.split(':')[0]);\n minutes = parseInt(time.split(':')[1]);\n } else {\n const timeParts = time.split(' ');\n const AM_PM = timeParts?.[1];\n hours = parseInt(timeParts?.[0]?.split(':')?.[0]);\n minutes = parseInt(timeParts?.[0]?.split(':')?.[1]);\n\n if(AM_PM?.toUpperCase() === 'PM' && hours !== 12) {\n hours += 12;\n } else if(AM_PM?.toUpperCase() === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n\n // Validate that we got valid numbers\n if(isNaN(hours) || isNaN(minutes)) {\n throw new Error('Invalid time format - could not parse hours and minutes');\n }\n\n // Use the date from dateAsEpoch but set the time to the parsed hours and minutes\n const baseDate = dayjs.tz(this.dateAsEpoch(), this.timezone());\n const result = baseDate.hour(hours).minute(minutes).second(0).millisecond(0);\n return result;\n }\n\n closeDropdown() {\n this.dispayToolTip = false;\n this.userInputFlag.set(false);\n this.openStatus.set(false);\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n }\n\n // toggle timepicker dropdown\n openDropdown(): void {\n this.dispayToolTip = true;\n this.openStatus.set(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 // Check if the time format is valid first\n if (!time.match(RE)) {\n return false;\n }\n\n // Restore proper validation logic\n const timedayjs = this.getdayjs(time);\n let flag: boolean = false;\n\n // Original logic: if minTime, givenTime, or firstInterval is start of day, only check format\n if (\n this.minTime() || \n this.givenTime() ||\n (this.firstInterval() &&\n dayjs.tz(this.firstInterval(), this.timezone()).format(this.timeFormat).valueOf() === dayjs.tz(dayjs(), this.timezone()).startOf(\"day\").format(this.timeFormat).valueOf()) \n ) {\n // Only check format validation, not time comparison\n flag = time.match(RE) ? true : false;\n } else {\n // Check against current time for normal cases\n const currentTime = dayjs.tz(dayjs(), this.timezone());\n const timeDiff = timedayjs.diff(currentTime, \"m\");\n flag = timeDiff >= 0;\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.set(!this.checkTimeValidity(time.trim()));\n if (!this.isInvalid()) {\n this.chosenTime.set(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.set(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 if(this.disableUserInput()) return;\n // Set user input flag to prevent effects from overriding\n this.userInputFlag.set(true);\n // Update the chosenTime signal\n this.chosenTime.set(time);\n const isValid = this.checkTimeValidity(time.trim());\n this.isInvalid.set(!isValid);\n\n // Clear user input flag after a delay to allow effects to work again\n setTimeout(() => {\n this.userInputFlag.set(false);\n }, 1000); // 1 second delay\n\n if (!this.isInvalid()) {\n this.openStatus.set(false);\n if (this.timepickerDirective) this.timepickerDirective.destroyOverlay();\n this.calculateClosestInterval(time);\n\n // Only call getdayjs and emit when time is valid\n const timedayjs = this.getdayjs(time);\n this.emitTime({\n valid: true,\n time: time,\n epoch: timedayjs.valueOf()\n });\n } else {\n // Emit invalid state without calling getdayjs\n this.emitTime({\n valid: false,\n time: time,\n epoch: 0\n });\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.tz(this.dateAsEpoch(), this.timezone()).format(\"DD-MM-YYYY\"); // 05-01-2024\n const parsedTimeWithDate = dayjs.tz(`${chosenDate} ${time}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\n // Converting dayjs object to epoch\n const chosenTimeEpoch = parsedTimeWithDate.valueOf();\n const offset = this.interval() - (dayjs.tz(chosenTimeEpoch, this.timezone()).minute() % this.interval());\n\n if (this.minTime() && !this.givenTime()) {\n this.isHighlighted.set(0);\n return;\n }\n roundedEpoch = offset >= this.interval() / 2 ? (dayjs.tz(chosenTimeEpoch, this.timezone()).subtract(this.interval() - offset, \"m\")).valueOf() : (dayjs.tz(chosenTimeEpoch, this.timezone()).add( offset, \"m\")).valueOf();\n\n // finding the index of element that needs to be highlighted\n if ( chosenTimeEpoch > dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf(\"day\").subtract(this.interval(), \"m\").valueOf()) {\n this.isHighlighted.set(this.timeIntervals().length - 1);\n } else {\n const roundedEpochdayjs = dayjs.tz(roundedEpoch, this.timezone());\n this.isHighlighted.set(this.timeIntervals().findIndex(interval => {\n const intervalObj = dayjs.tz(`${chosenDate} ${interval}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\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.set([]);\n\n // Compute the effective first interval\n let effectiveFirstInterval = this.firstInterval();\n\n // if picker is used as an individual component\n if (!effectiveFirstInterval) {\n // firstInterval is initialised according to the current time\n // if the date is same as the current date\n if (dayjs.tz(this.dateAsEpoch(), this.timezone()).format(\"DD-MM-YYYY\") === dayjs.tz(dayjs(), this.timezone()).format(\"DD-MM-YYYY\") && !this.minTime()) {\n const offset = this.interval() - (dayjs.tz(dayjs(), this.timezone()).minute() % this.interval());\n effectiveFirstInterval = dayjs.tz(dayjs(), this.timezone()).add(offset, \"m\").valueOf();\n }\n // if minimum time to show is provided\n else if(this.minTime()){\n const minTimeDayjs = dayjs.tz(this.minTime(), this.timezone());\n const offset = this.interval() - (minTimeDayjs.minute() % this.interval());\n effectiveFirstInterval = minTimeDayjs.add(offset, \"m\").valueOf();\n }\n // else the firstInterval is initialised as start of day\n else {\n effectiveFirstInterval = dayjs.tz(dayjs(), this.timezone()).startOf(\"day\").valueOf();\n }\n }\n\n if(this.givenTime()){\n // When givenTime is present, always start from 12:00 AM (start of day)\n // regardless of whether the time has passed or not\n effectiveFirstInterval = dayjs.tz(this.dateAsEpoch(), this.timezone()).startOf('day').valueOf();\n this.givenTimeFlag.set(false);\n }\n\n // Store the computed first interval for later use\n this.computedFirstInterval = effectiveFirstInterval;\n\n const dateAsString = dayjs.tz(this.dateAsEpoch(), this.timezone()).format('DD-MM-YYYY');\n const intervalAsString = dayjs.tz(effectiveFirstInterval, this.timezone()).format(this.timeFormat);\n let start = dayjs.tz(`${dateAsString} ${intervalAsString}`, `DD-MM-YYYY ${this.timeFormat}`, this.timezone());\n const end = dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf('d');\n \n while (start.valueOf() < end.valueOf()) {\n this.timeIntervals.update(intervals => [...intervals, start.format(this.timeFormat)]);\n start = start.add(this.interval(), \"m\");\n }\n\n // NEW: Handle end-of-day case - if firstInterval is at or very close to end of day\n // and we're on the same date, show only 11:59 PM\n const endOfDay = dayjs.tz(this.dateAsEpoch(), this.timezone()).endOf(\"d\");\n const firstIntervalDayjs = dayjs.tz(effectiveFirstInterval, this.timezone());\n \n // Check if firstInterval is at or very close to end of day (within 1 minute)\n const isAtEndOfDay = firstIntervalDayjs.isSame(endOfDay, 'day') && \n firstIntervalDayjs.diff(endOfDay, 'minute') >= -1;\n \n if (isAtEndOfDay || this.timeIntervals().length === 0) {\n // Clear existing intervals and add only 11:59 PM\n this.timeIntervals.set([]);\n this.timeIntervals.update(intervals => [...intervals, endOfDay.format(this.timeFormat)]);\n }\n }\n\n ngOnDestroy() {\n if (this.tooltipDirective) this.tooltipDirective.hideToolTip();\n }\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mis-crystal-design-system",
3
- "version": "18.1.16",
3
+ "version": "18.1.18",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "*",
6
6
  "@angular/core": "*",
@@ -34,12 +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
- "./async-search-dropdown": {
38
- "types": "./async-search-dropdown/index.d.ts",
39
- "esm2022": "./esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs",
40
- "esm": "./esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs",
41
- "default": "./fesm2022/mis-crystal-design-system-async-search-dropdown.mjs"
42
- },
43
37
  "./button": {
44
38
  "types": "./button/index.d.ts",
45
39
  "esm2022": "./esm2022/button/mis-crystal-design-system-button.mjs",
@@ -52,6 +46,12 @@
52
46
  "esm": "./esm2022/checkbox/mis-crystal-design-system-checkbox.mjs",
53
47
  "default": "./fesm2022/mis-crystal-design-system-checkbox.mjs"
54
48
  },
49
+ "./async-search-dropdown": {
50
+ "types": "./async-search-dropdown/index.d.ts",
51
+ "esm2022": "./esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs",
52
+ "esm": "./esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs",
53
+ "default": "./fesm2022/mis-crystal-design-system-async-search-dropdown.mjs"
54
+ },
55
55
  "./chip": {
56
56
  "types": "./chip/index.d.ts",
57
57
  "esm2022": "./esm2022/chip/mis-crystal-design-system-chip.mjs",
@@ -15,8 +15,8 @@ export declare class TzSpecificDatepickerDirective {
15
15
  readonly holidaysDates: import("@angular/core").InputSignal<string[]>;
16
16
  readonly weekOffsSelection: import("@angular/core").InputSignal<string[]>;
17
17
  readonly dateMessages: import("@angular/core").InputSignal<ISDatePickerToastText[]>;
18
- readonly positionX: import("@angular/core").InputSignal<"start" | "end" | "center">;
19
- readonly positionY: import("@angular/core").InputSignal<"top" | "bottom" | "center">;
18
+ readonly positionX: import("@angular/core").InputSignal<"start" | "center" | "end">;
19
+ readonly positionY: import("@angular/core").InputSignal<"center" | "top" | "bottom">;
20
20
  readonly offsetX: import("@angular/core").InputSignal<number>;
21
21
  readonly offsetY: import("@angular/core").InputSignal<number>;
22
22
  readonly isSPickerSelected: import("@angular/core").InputSignal<boolean>;