@tapsellorg/angular-material-library
Version:
Angular library for Tapsell
1 lines • 24.3 kB
Source Map (JSON)
{"version":3,"file":"tapsellorg-angular-material-library-src-lib-day-hour-picker.mjs","sources":["../../projects/pegah-library/src/lib/day-hour-picker/day-hour-picker.constant.ts","../../projects/pegah-library/src/lib/day-hour-picker/day-hour-picker.component.ts","../../projects/pegah-library/src/lib/day-hour-picker/day-hour-picker.component.html","../../projects/pegah-library/src/lib/day-hour-picker/day-hour-picker.module.ts","../../projects/pegah-library/src/lib/day-hour-picker/tapsellorg-angular-material-library-src-lib-day-hour-picker.ts"],"sourcesContent":["export type WeekDay =\n | 'SATURDAY'\n | 'SUNDAY'\n | 'MONDAY'\n | 'TUESDAY'\n | 'WEDNESDAY'\n | 'THURSDAY'\n | 'FRIDAY';\n\nexport const DaysDictionary = new Map<WeekDay, string>([\n ['SATURDAY', 'شنبه'],\n ['SUNDAY', 'یکشنبه'],\n ['MONDAY', 'دوشنبه'],\n ['TUESDAY', 'سهشنبه'],\n ['WEDNESDAY', 'چهارشنبه'],\n ['THURSDAY', 'پنجشنبه'],\n ['FRIDAY', 'جمعه'],\n]);\n\nexport const days: WeekDay[] = [\n 'SATURDAY',\n 'SUNDAY',\n 'MONDAY',\n 'TUESDAY',\n 'WEDNESDAY',\n 'THURSDAY',\n 'FRIDAY',\n];\n\nexport type HOURS =\n | '00'\n | '01'\n | '02'\n | '03'\n | '04'\n | '05'\n | '06'\n | '07'\n | '08'\n | '09'\n | '10'\n | '11'\n | '12'\n | '13'\n | '14'\n | '15'\n | '16'\n | '17'\n | '18'\n | '19'\n | '20'\n | '21'\n | '22'\n | '23';\n\nexport const hours: HOURS[] = [\n '00',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '20',\n '21',\n '22',\n '23',\n];\n\nexport interface HourItem {\n hour: HOURS;\n isSelected: boolean;\n}\n\nexport type PghSelectedHoursModel = Record<string, { start: number; end: number }[]>;\n\nexport const HOUR_ITEMS: HourItem[] = hours.map(h => ({\n isSelected: true,\n hour: h,\n}));\n\nexport interface DayItem {\n id: string;\n name: WeekDay;\n isDaySelected: boolean;\n isDayHovered: boolean;\n hours: {\n hourId: HOURS;\n start: number;\n end: number;\n isHourHovered: boolean;\n isHourSelected: boolean;\n }[];\n}\n\nexport const ALL_DAYS: DayItem[] = days.map(d => ({\n id: d + '-day',\n name: d,\n isDaySelected: false,\n isDayHovered: false,\n hours: HOUR_ITEMS.map(h => ({\n hourId: h.hour,\n start: Number(h.hour),\n end: Number(h.hour) + 1,\n isHourHovered: false,\n isHourSelected: false,\n })),\n}));\n\nexport const WEEKENDS = ALL_DAYS.filter(d => isWeekendDay(d.name));\nexport const WEEKDAYS = ALL_DAYS.filter(d => !isWeekendDay(d.name));\n\nfunction isWeekendDay(day: WeekDay) {\n return day.includes('THURSDAY') || day.includes('FRIDAY');\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n input,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ALL_DAYS,\n DayItem,\n DaysDictionary,\n HOUR_ITEMS,\n HOURS,\n PghSelectedHoursModel,\n WeekDay,\n WEEKDAYS,\n WEEKENDS,\n} from './day-hour-picker.constant';\nimport { withDestroy } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { takeUntil } from 'rxjs';\nimport { PghBreakpoints } from '@tapsellorg/angular-material-library/media';\nimport { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader';\n\n@Component({\n selector: 'pgh-day-hour-picker',\n templateUrl: './day-hour-picker.component.html',\n styleUrls: ['./day-hour-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PghDayHourPickerComponent extends withDestroy() implements OnInit, OnChanges {\n selectedHoursChange = output<PghSelectedHoursModel | null>();\n loader = input<PghLoader>();\n selectedHours = input<PghSelectedHoursModel>();\n allDays = signal(ALL_DAYS);\n hourItems = signal(HOUR_ITEMS);\n daysDictionary = DaysDictionary;\n weekEnds = WEEKENDS;\n weekDays = WEEKDAYS;\n isMobile = signal<boolean>(false);\n selectedOption = signal<'always' | 'weekend' | 'weekday' | 'none'>('none');\n constructor(private breakpointObserver: BreakpointObserver, private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n this.fillTable();\n this.onObserveBreakpoints();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.selectedHours) {\n this.fillTable();\n }\n }\n\n fillTable() {\n if (this.selectedHours()) {\n for (const key in this.selectedHours()) {\n this.allDays().forEach(a => {\n if (a.name === (key as WeekDay)) {\n this.selectedHours()![key].forEach(s => {\n const selectedHour = a.hours.find(h => s.start === h.start);\n if (selectedHour) {\n selectedHour.isHourSelected = true;\n }\n });\n }\n });\n }\n } else {\n this.onClickAlways();\n }\n this.selectedOption.set(this.getSelectedOption());\n }\n\n getSelectedOption() {\n const selectedDays = this.getSelectedDays();\n switch (true) {\n case this.allDays().every(c => c.isDaySelected):\n return 'always';\n case selectedDays.includes('THURSDAY') &&\n selectedDays.includes('FRIDAY') &&\n !this.allDays()\n .filter(c => c.name !== 'THURSDAY' && c.name !== 'FRIDAY')\n .some(i => i.hours.some(i => i.isHourSelected)):\n return 'weekend';\n case selectedDays.includes('SATURDAY') &&\n selectedDays.includes('SUNDAY') &&\n selectedDays.includes('MONDAY') &&\n selectedDays.includes('TUESDAY') &&\n selectedDays.includes('WEDNESDAY') &&\n !this.allDays()\n .filter(c => c.name === 'THURSDAY' || c.name === 'FRIDAY')\n .some(i => i.hours.some(i => i.isHourSelected)):\n return 'weekday';\n default:\n return 'none';\n }\n }\n\n onHourHovered(h: HOURS) {\n this.allDays().forEach(c =>\n c.hours.filter(i => i.hourId.includes(h)).map(j => (j.isHourHovered = true)),\n );\n }\n\n onMouseLeave(h: HOURS) {\n this.allDays().forEach(c =>\n c.hours.filter(i => i.hourId.includes(h)).map(j => (j.isHourHovered = false)),\n );\n }\n\n onDayHovered(id: string) {\n this.allDays()\n .filter(c => c.id.includes(id))\n .forEach(i => i.hours.map(h => (h.isHourHovered = true)));\n }\n\n onDayLeave(id: string) {\n this.allDays()\n .filter(c => c.id.includes(id))\n .forEach(i => i.hours.map(h => (h.isHourHovered = false)));\n }\n\n unSelectAllCells() {\n this.allDays().forEach(c => {\n c.isDaySelected = false;\n c.hours.forEach(i => (i.isHourSelected = false));\n });\n }\n\n getSelectedDays() {\n return this.allDays()\n .map(c => {\n c.isDaySelected = c.hours.every(i => i.isHourSelected);\n return c;\n })\n .filter(c => c.isDaySelected)\n .map(s => s.name);\n }\n\n updateHourItemsState() {\n this.hourItems().forEach(h => {\n const hours = this.allDays().map(c => c.hours.find(i => i.hourId === h.hour));\n hours.every(h => h?.isHourSelected) ? (h.isSelected = true) : (h.isSelected = false);\n });\n }\n\n onDaySelected(id: string) {\n const selectedDay = this.allDays().find(c => c.id === id);\n if (!selectedDay) return;\n\n selectedDay.isDaySelected = !selectedDay.isDaySelected;\n selectedDay.hours.forEach(i => {\n i.isHourSelected = selectedDay.isDaySelected;\n i.isHourHovered = false;\n });\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n this.updateHourItemsState();\n }\n\n onHourSelected(h: HOURS) {\n const selectedHour = this.hourItems().find(i => i.hour === h);\n if (!selectedHour) return;\n\n selectedHour.isSelected = !selectedHour.isSelected;\n this.allDays().forEach(c =>\n c.hours\n .filter(i => i.hourId.includes(h))\n .forEach(j => {\n j.isHourSelected = selectedHour.isSelected;\n j.isHourHovered = false;\n }),\n );\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n }\n\n onCellSelected(h: DayItem['hours'][number]) {\n h.isHourSelected = !h.isHourSelected;\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n this.updateHourItemsState();\n }\n\n onClickAlways() {\n this.allDays().forEach(c => c.hours.map(i => (i.isHourSelected = true)));\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n this.updateHourItemsState();\n }\n\n onClickWeekend() {\n this.unSelectAllCells();\n this.weekEnds.forEach(w => {\n w.isDaySelected = true;\n w.hours.forEach(i => (i.isHourSelected = true));\n });\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n this.updateHourItemsState();\n }\n\n onClickWeekDay() {\n this.unSelectAllCells();\n this.weekDays.forEach(w => {\n w.isDaySelected = true;\n w.hours.forEach(i => (i.isHourSelected = true));\n });\n this.selectedOption.set(this.getSelectedOption());\n this.sendSelectedHours();\n this.updateHourItemsState();\n }\n\n private onObserveBreakpoints() {\n this.breakpointObserver\n .observe(PghBreakpoints.lg)\n .pipe(takeUntil(this._destroyed$))\n .subscribe(result => {\n this.isMobile.set(!result.matches);\n this.cdr.detectChanges();\n });\n }\n\n sendSelectedHours() {\n let newInfo: { start: number; end: number }[];\n const selectedCells = this.allDays()\n .map(c => {\n newInfo = c.hours.filter(i => i.isHourSelected).map(i => ({ start: i.start, end: i.end }));\n return newInfo.length > 0 ? { [c.name]: newInfo } : null;\n })\n .filter(i => i);\n\n if (selectedCells.length === 0) {\n this.selectedHoursChange.emit(null);\n return;\n }\n const convertedSelectedCells = selectedCells.reduce((obj, item) =>\n Object.assign(obj!, item, {}),\n );\n\n this.selectedHoursChange.emit(convertedSelectedCells!);\n }\n}\n","<div\n [class.pgh-day-hour-container-mobile]=\"isMobile()\"\n class=\"d-flex flex-column align-items-center p-3\"\n>\n <div class=\"mb-3\">\n <button\n [class.pgh-day-hour-action-button-mobile]=\"isMobile()\"\n mat-stroked-button\n color=\"primary\"\n (click)=\"onClickAlways()\"\n class=\"me-md-2\"\n [class.pgh-active-button]=\"selectedOption() === 'always'\"\n >\n همه روزها\n </button>\n <button\n [class.pgh-day-hour-action-button-mobile]=\"isMobile()\"\n mat-stroked-button\n color=\"primary\"\n (click)=\"onClickWeekend()\"\n [class.pgh-active-button]=\"selectedOption() === 'weekend'\"\n class=\"me-md-2\"\n >\n فقط آخر هفتهها\n </button>\n <button\n [class.pgh-day-hour-action-button-mobile]=\"isMobile()\"\n mat-stroked-button\n color=\"primary\"\n (click)=\"onClickWeekDay()\"\n [class.pgh-active-button]=\"selectedOption() === 'weekday'\"\n class=\"me-md-2\"\n >\n بهجز آخر هفتهها\n </button>\n </div>\n <div [class.pgh-day-hour-table-mobile]=\"isMobile()\">\n <table>\n <tr>\n <td></td>\n @for (i of hourItems(); track i) {\n <td\n (mouseover)=\"onHourHovered(i.hour)\"\n (mouseleave)=\"onMouseLeave(i.hour)\"\n class=\"pgh-hour-item\"\n (click)=\"onHourSelected(i.hour)\"\n >\n <div class=\"pgh-hour-item-title\">{{ i.hour }}:00</div>\n </td>\n }\n </tr>\n\n @for (d of allDays(); track d) {\n <tr>\n <td\n class=\"text-end pgh-day-title\"\n (click)=\"onDaySelected(d.id)\"\n [class.pgh-day-selected]=\"d.isDaySelected\"\n (mouseover)=\"onDayHovered(d.id)\"\n (mouseleave)=\"onDayLeave(d.id)\"\n >\n {{ d.name | pghReplaceWith : daysDictionary }}\n </td>\n @for (h of d.hours; track h; let i = $index) {\n <td class=\"text-end pgh-day-cell\" (click)=\"onCellSelected(h)\">\n <div\n [matTooltip]=\"(d.name | pghReplaceWith : daysDictionary) + ' ' + 'ساعت ' + h.hourId\"\n [class.pgh-isHovered]=\"h.isHourHovered\"\n [class.pgh-isSelected]=\"h.isHourSelected\"\n class=\"box pgh-day-cell-info\"\n ></div>\n </td>\n }\n </tr>\n }\n </table>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghDayHourPickerComponent } from './day-hour-picker.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PghLoaderModule } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { PghReplaceWithModule } from '@tapsellorg/angular-material-library/src/lib/common';\n\n@NgModule({\n declarations: [PghDayHourPickerComponent],\n imports: [\n CommonModule,\n PghReplaceWithModule,\n MatTooltipModule,\n MatButtonModule,\n MatIconModule,\n PghLoaderModule,\n ],\n exports: [PghDayHourPickerComponent],\n})\nexport class PghDayHourPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}