UNPKG

@candidosales/material-time-picker

Version:
1 lines 27.5 kB
{"version":3,"file":"candidosales-material-time-picker.mjs","sources":["../../../projects/material-time-picker/src/lib/w-clock/w-clock.component.ts","../../../projects/material-time-picker/src/lib/w-clock/w-clock.component.html","../../../projects/material-time-picker/src/lib/utils.ts","../../../projects/material-time-picker/src/lib/w-time/w-time.component.ts","../../../projects/material-time-picker/src/lib/w-time/w-time.component.html","../../../projects/material-time-picker/src/lib/w-time-dialog/w-time-dialog.component.ts","../../../projects/material-time-picker/src/lib/w-time-dialog/w-time-dialog.component.html","../../../projects/material-time-picker/src/lib/material-timepicker/material-timepicker.component.ts","../../../projects/material-time-picker/src/lib/material-timepicker/material-timepicker.component.html","../../../projects/material-time-picker/src/public_api.ts","../../../projects/material-time-picker/src/candidosales-material-time-picker.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatMiniFabButton } from '@angular/material/button';\n\n// Current type to show\nexport enum CLOCK_TYPE {\n HOURS = 1,\n MINUTES = 2\n}\n\nexport type TimeFormat = 12 | 24;\n\nexport interface ITime {\n hour: any;\n minute: any;\n meriden: 'PM' | 'AM';\n format: TimeFormat;\n}\n\n@Component({\n selector: 'w-clock',\n styleUrls: ['./w-clock.component.scss'],\n templateUrl: './w-clock.component.html',\n imports: [MatMiniFabButton, MatToolbar, NgStyle]\n})\nexport class WClockComponent implements OnChanges {\n @Input() public userTime: ITime;\n @Output() public userTimeChange: EventEmitter<ITime> = new EventEmitter();\n\n @Input() public currentView: CLOCK_TYPE;\n @Output() public viewChange = new EventEmitter<CLOCK_TYPE>();\n\n @Input() public color: string;\n\n public steps = new Array<number>();\n selectedTimePart;\n private STEP_DEG: number;\n\n ngOnChanges() {\n this.setupUI();\n }\n\n private setupUI() {\n this.steps = new Array<number>();\n\n switch (this.currentView) {\n case CLOCK_TYPE.HOURS:\n for (let i = 1; i <= this.userTime.format; i++) {\n this.steps.push(i);\n this.selectedTimePart = this.userTime.hour || 0;\n\n if (this.selectedTimePart > this.userTime.format) {\n this.selectedTimePart -= this.userTime.format;\n }\n }\n break;\n\n case CLOCK_TYPE.MINUTES:\n for (let i = 5; i <= 55; i += 5) {\n this.steps.push(i);\n }\n this.steps.push(0);\n this.selectedTimePart = this.userTime.minute || 0;\n break;\n }\n }\n\n getPointerStyle() {\n let divider = 1;\n switch (this.currentView) {\n case CLOCK_TYPE.HOURS:\n divider = this.userTime.format;\n break;\n\n case CLOCK_TYPE.MINUTES:\n divider = 60;\n break;\n }\n\n let degrees = 0;\n if (this.currentView === CLOCK_TYPE.HOURS) {\n degrees = Math.round(this.userTime.hour * (360 / divider)) - 180;\n } else {\n degrees = Math.round(this.userTime.minute * (360 / divider)) - 180;\n }\n\n const style = {\n '-webkit-transform': 'rotate(' + degrees + 'deg)',\n '-ms-transform': 'rotate(' + degrees + 'deg)',\n transform: 'rotate(' + degrees + 'deg)'\n };\n\n return style;\n }\n\n getTimeValueClass(step: number, index: number) {\n if (this.currentView === CLOCK_TYPE.HOURS) {\n this.STEP_DEG = 360 / this.userTime.format;\n } else {\n this.STEP_DEG = 360 / 12;\n }\n let classes = 'w-clock-step w-clock-deg' + this.STEP_DEG * (index + 1);\n\n if (this.selectedTimePart === step) {\n classes += ' mat-primary';\n }\n\n return classes;\n }\n\n changeTimeValue(step: number) {\n if (this.currentView === CLOCK_TYPE.HOURS) {\n this.userTime.hour = step;\n\n // auto switch to minutes\n this.viewChange.emit(CLOCK_TYPE.MINUTES);\n } else {\n this.userTime.minute = step;\n\n // auto switch to hours\n this.viewChange.emit(CLOCK_TYPE.HOURS);\n }\n this.userTimeChange.emit(this.userTime);\n }\n}\n","<div class=\"d-flex flex-row justify-content-center align-items-center w-clock-wrapper\">\n <div class=\"w-clock\">\n <div class=\"w-clock-container\">\n\n <!-- Clock center -->\n <button mat-mini-fab [color]=\"color\" class=\"w-clock-center\"></button>\n\n <!-- Clock hand -->\n <mat-toolbar [ngStyle]=\"getPointerStyle()\" [color]=\"color\" class=\"w-pointer\">\n <button mat-mini-fab [color]=\"color\" class=\"w-clock-selected\"></button>\n </mat-toolbar>\n\n <!-- Hour / Minute number faces -->\n @for (step of steps; track step; let i = $index) {\n <div [class]=\"getTimeValueClass(step, i)\" >\n <button mat-mini-fab\n [color]=\"selectedTimePart === step ? color : ''\"\n (click)=\"changeTimeValue(step)\">\n {{ step }}\n </button>\n </div>\n }\n\n </div>\n </div>\n</div>","export class Utils {\n static formatHour(format, hour): string {\n if (format === 24) {\n if (hour === 24) {\n return '00';\n } else if (hour < 10) {\n return '0' + String(hour);\n }\n }\n return String(hour);\n }\n\n static formatMinute(minute): string {\n if (minute === 0) {\n return '00';\n } else if (minute < 10) {\n return '0' + String(minute);\n } else {\n return String(minute);\n }\n }\n}\n","import { CLOCK_TYPE, ITime, WClockComponent } from '../w-clock/w-clock.component';\nimport { Utils } from '../utils';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output\n } from '@angular/core';\n\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport { Subject } from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'w-time',\n templateUrl: './w-time.component.html',\n styleUrls: ['./w-time.component.scss'],\n imports: [NgClass, MatToolbar, WClockComponent]\n})\nexport class WTimeComponent implements OnInit {\n destroyed = new Subject<void>();\n \n @Input() userTime: ITime;\n @Output() userTimeChange: EventEmitter<ITime> = new EventEmitter();\n\n @Input() revertLabel: string;\n @Input() submitLabel: string;\n\n @Output() onRevert: EventEmitter<null> = new EventEmitter();\n @Output() onSubmit: EventEmitter<ITime> = new EventEmitter();\n\n @Input() color: string;\n\n public VIEW_HOURS = CLOCK_TYPE.HOURS;\n public VIEW_MINUTES = CLOCK_TYPE.MINUTES;\n public currentView: CLOCK_TYPE = this.VIEW_HOURS;\n\n currentClassScreenSize: string = '';\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe([\n Breakpoints.XSmall,\n Breakpoints.Small,\n ])\n .pipe(takeUntil(this.destroyed))\n .subscribe(result => {\n for (const query of Object.keys(result.breakpoints)) {\n if (result.breakpoints[query]) {\n\n this.currentClassScreenSize = 'vertical-time';\n }\n else \n this.currentClassScreenSize = '';\n }\n });\n\n }\n\n ngOnInit() {\n if (!this.userTime) {\n this.userTime = {\n hour: 6,\n minute: 0,\n meriden: 'PM',\n format: 12\n };\n }\n\n if (!this.revertLabel) {\n this.revertLabel = 'Cancel';\n }\n\n if (!this.submitLabel) {\n this.submitLabel = 'Okay';\n }\n }\n\n public formatHour(format, hour): string {\n return Utils.formatHour(format, hour);\n }\n\n public formatMinute(minute): string {\n return Utils.formatMinute(minute);\n }\n\n public setCurrentView(type: CLOCK_TYPE) {\n this.currentView = type;\n }\n\n public setMeridien(m: 'PM' | 'AM') {\n this.userTime.meriden = m;\n }\n\n public revert() {\n this.onRevert.emit();\n }\n\n public submit() {\n this.onSubmit.emit(this.userTime);\n }\n\n public emituserTimeChange(event) {\n this.userTimeChange.emit(this.userTime);\n }\n}\n","<div class=\"d-flex flex-row flex-md-column justify-content-center align-items-center w-time\" [ngClass]=\"currentClassScreenSize\">\n <mat-toolbar class=\"d-flex flex-column flex-md-row justify-content-center align-items-center w-timepicker-time-container\" [color]=\"color\">\n\n <div class=\"w-timepicker-selected-time\">\n <span [class]=\"currentView === VIEW_HOURS ? 'active': ''\" (click)=\"setCurrentView(VIEW_HOURS)\">{{ formatHour(userTime.format, userTime.hour) }}:</span>\n <span [class]=\"currentView === VIEW_MINUTES ? 'active': ''\" (click)=\"setCurrentView(VIEW_MINUTES)\">{{ formatMinute(userTime.minute) }}</span>\n </div>\n @if (userTime.format === 12) {\n <div class=\"d-flex flex-column justify-content-center align-items-center w-timepicker-selected-ampm\">\n <span (click)=\"setMeridien('AM')\" [class]=\"userTime.meriden === 'AM' ? 'active' : ''\">AM</span>\n <span (click)=\"setMeridien('PM')\" [class]=\"userTime.meriden === 'PM' ? 'active' : ''\">PM</span>\n </div>\n }\n\n </mat-toolbar>\n\n <div class=\"d-flex flex-column flex-md-row justify-content-between align-items-center w-time-content\">\n <w-clock [color]=\"color\" class=\"w-animation-zoom\" [userTime]=\"userTime\" (userTimeChange)=\"emituserTimeChange($event)\" [(currentView)]=\"currentView\" (viewChange)=\"setCurrentView($event)\"></w-clock>\n\n <div class=\"d-flex align-items-end\">\n <button class=\"btn btn-sm\" (click)=\"revert()\">{{revertLabel}}</button>\n <button class=\"btn btn-sm btn-{{color}}\" (click)=\"submit()\">{{submitLabel}}</button>\n </div>\n </div>\n</div>\n","import { CLOCK_TYPE, ITime } from '../w-clock/w-clock.component';\nimport { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogContent } from '@angular/material/dialog';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { WTimeComponent } from '../w-time/w-time.component';\n\n@Component({\n styleUrls: ['./w-time-dialog.component.scss'],\n templateUrl: './w-time-dialog.component.html',\n imports: [MatDialogContent, WTimeComponent]\n})\nexport class WTimeDialogComponent {\n userTime: ITime;\n color: string;\n\n private VIEW_HOURS = CLOCK_TYPE.HOURS;\n private VIEW_MINUTES = CLOCK_TYPE.MINUTES;\n private currentView: CLOCK_TYPE = this.VIEW_HOURS;\n\n constructor(\n private dialogRef: MatDialogRef<WTimeDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.userTime = this.data.time;\n this.color = this.data.color;\n }\n\n public revert() {\n this.dialogRef.close(-1);\n }\n\n public submit() {\n this.dialogRef.close(this.userTime);\n }\n}\n","\n<div mat-dialog-content class=\"w-timepicker-dialog\">\n <w-time [color]=\"color\" [userTime]=\"userTime\" (onRevert)=\"revert()\" (onSubmit)=\"submit()\" [revertLabel]=\"data.revertLabel\" [submitLabel]=\"data.submitLabel\"></w-time>\n</div>\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ITime } from \"../w-clock/w-clock.component\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { Utils } from \"../utils\";\nimport { WTimeDialogComponent } from \"../w-time-dialog/w-time-dialog.component\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatInput } from \"@angular/material/input\";\nimport { MatFormField, MatLabel, MatSuffix } from \"@angular/material/form-field\";\n\n@Component({\n selector: \"material-timepicker\",\n styleUrls: [\"./material-timepicker.component.scss\"],\n templateUrl: \"./material-timepicker.component.html\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatFormField,\n MatLabel,\n MatInput,\n MatIcon,\n MatSuffix,\n ]\n})\nexport class MaterialTimePickerComponent implements OnInit {\n @Input() label = \"Hour\";\n @Input() appearance = \"fill\";\n @Input() userTime: ITime;\n @Input() color: string;\n @Input() revertLabel: string;\n @Input() submitLabel: string;\n @Input() disabled: boolean;\n @Input() readonly: boolean;\n /**\n * Class to put in the form-field\n */\n @Input() classFormField: string;\n\n @Output() change: EventEmitter<ITime> = new EventEmitter<ITime>();\n\n constructor(private dialog: MatDialog) {}\n\n ngOnInit() {\n if (!this.userTime) {\n this.userTime = {\n hour: 0,\n minute: 0,\n meriden: \"PM\",\n format: 24,\n };\n }\n }\n\n time(): string {\n if (!this.userTime) {\n return \"\";\n }\n\n let meriden = `${this.userTime.meriden}`;\n if (this.userTime.format === 24) {\n meriden = \"\";\n }\n\n let hour = `${this.userTime.hour}`;\n if (this.userTime.hour === 24) {\n hour = \"00\";\n }\n\n if (this.userTime.minute === 0) {\n return `${hour}:00 ${meriden}`;\n } else if (this.userTime.minute < 10) {\n const tt = \"0\" + String(this.userTime.minute);\n return `${hour}:${tt} ${meriden}`;\n } else {\n return `${hour}:${this.userTime.minute} ${meriden}`;\n }\n }\n\n showPicker() {\n const dialogRef = this.dialog.open(WTimeDialogComponent, {\n data: {\n time: {\n hour: this.userTime.hour,\n minute: this.userTime.minute,\n meriden: this.userTime.meriden,\n format: this.userTime.format,\n },\n color: this.color,\n revertLabel: this.revertLabel,\n submitLabel: this.submitLabel,\n },\n });\n\n dialogRef.afterClosed().subscribe((result: ITime | -1) => {\n // result will be update userTime object or -1 or undefined (closed dialog w/o clicking cancel)\n if (result === undefined) {\n return;\n } else if (result !== -1) {\n this.userTime = result;\n\n const hour = result.hour;\n const minute = result.minute;\n\n const dataEvent = {\n hour: Utils.formatHour(result.format, hour),\n minute: Utils.formatMinute(minute),\n meriden: this.userTime.meriden,\n format: this.userTime.format,\n };\n this.emitChange(dataEvent);\n }\n });\n return false;\n }\n\n private emitChange(data) {\n this.change.emit(data);\n }\n}\n","<div class=\"d-flex flex-row w-mat-timepicker\">\n <mat-form-field class=\"d-flex {{classFormField}}\" class=\"timeContainer\" appearance=\"{{appearance}}\">\n <mat-label>{{ label }}</mat-label>\n <input matInput class=\"timeInput\" placeholder=\"Select time\" id=\"time_Control\" name=\"time_Control\" [value]=\"time()\" [disabled]=\"disabled\" [readonly]=\"readonly\">\n <mat-icon matSuffix (click)=\"showPicker()\">access_time</mat-icon>\n </mat-form-field>\n</div>\n","\n/*\n * Public API Surface of material-time-picker\n */\nexport { WClockComponent } from './lib/w-clock/w-clock.component';\nexport { WTimeComponent } from './lib/w-time/w-time.component';\nexport { WTimeDialogComponent } from './lib/w-time-dialog/w-time-dialog.component';\nexport { MaterialTimePickerComponent } from './lib/material-timepicker/material-timepicker.component';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}