@agorapulse/ui-components 16.1.2-beta → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/agorapulse-ui-components-16.2.0.tgz +0 -0
  2. package/esm2022/avatar/avatar.component.mjs +3 -3
  3. package/esm2022/icon-button/icon-button.component.mjs +3 -3
  4. package/esm2022/modal/modal.component.mjs +3 -3
  5. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +3 -3
  6. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +5 -0
  7. package/esm2022/range-slider/public_api.mjs +2 -0
  8. package/esm2022/range-slider/range-slider.component.mjs +155 -0
  9. package/esm2022/select/select.component.mjs +3 -3
  10. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +3 -3
  11. package/esm2022/social-button/social-button.component.mjs +3 -3
  12. package/esm2022/toggle/toggle.component.mjs +3 -3
  13. package/fesm2022/agorapulse-ui-components-avatar.mjs +2 -2
  14. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
  15. package/fesm2022/agorapulse-ui-components-icon-button.mjs +2 -2
  16. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
  17. package/fesm2022/agorapulse-ui-components-modal.mjs +2 -2
  18. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
  19. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +2 -2
  20. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
  21. package/fesm2022/agorapulse-ui-components-range-slider.mjs +162 -0
  22. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -0
  23. package/fesm2022/agorapulse-ui-components-select.mjs +2 -2
  24. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  25. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +2 -2
  26. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  27. package/fesm2022/agorapulse-ui-components-social-button.mjs +2 -2
  28. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  29. package/fesm2022/agorapulse-ui-components-toggle.mjs +2 -2
  30. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  31. package/package.json +21 -15
  32. package/range-slider/index.d.ts +5 -0
  33. package/range-slider/public_api.d.ts +1 -0
  34. package/range-slider/range-slider.component.d.ts +35 -0
  35. package/snackbars-thread/component/snackbars-thread.component.d.ts +1 -1
  36. package/agorapulse-ui-components-16.1.2-beta.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DayDetail } from './day-detail.model';\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true,\n})\nexport class DayDisabledPipe implements PipeTransform {\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return (\n day.month !== 0 ||\n (day.timestamp < todayTimestamp && !minDateTimestamp) ||\n (!!minDateTimestamp && day.timestamp < minDateTimestamp) ||\n (!!maxDateTimestamp && day.timestamp > maxDateTimestamp)\n );\n }\n}\n","import { ButtonComponent } from '@agorapulse/ui-components/button';\nimport { IconButtonComponent } from '@agorapulse/ui-components/icon-button';\nimport { SymbolComponent, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport { injectDestroy } from 'ngxtension/inject-destroy';\nimport { BehaviorSubject, filter } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { DayDetail } from './day-detail.model';\nimport { DayDisabledPipe } from './day-disabled.pipe';\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n SymbolComponent,\n TitleCasePipe,\n ButtonComponent,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe,\n IconButtonComponent,\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number = Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<{ day: DayDetail }> | undefined = undefined;\n @Input() locale: NeoDatePickerLocale = 'en';\n\n private _maxDate: dayjs.Dayjs | undefined;\n\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs | undefined {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs | undefined;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs | undefined {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[] = [];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear!: number;\n currentMonth!: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number | undefined = undefined;\n maxDateTimestamp: number | undefined = undefined;\n months: string[] = [];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[] = [];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n private destroy$ = injectDestroy();\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([apArrowButtonLeft, apArrowButtonRight]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp),\n takeUntil(this.destroy$)\n )\n .subscribe(currentMonthDates => {\n const minDateInPreviousMonth = this.minDateTimestamp\n ? new Date(this.minDateTimestamp).getMonth() < this.currentMonth\n : undefined;\n this.previousMonthAvailable =\n !currentMonthDates.some(dayDetail => dayDetail.timestamp === this.minDateTimestamp) || !!minDateInPreviousMonth;\n });\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(dayDetail, this.TODAY_TIMESTAMP, this.minDateTimestamp, this.maxDateTimestamp);\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <ap-icon-button\n name=\"neo-date-picker-previous-month\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\">\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\" />\n </ap-icon-button>\n <span>{{ months[currentMonth] | titlecase }} {{ currentYear }}</span>\n <ap-icon-button\n name=\"neo-date-picker-next-month\"\n (click)=\"onNextMonth()\">\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\" />\n </ap-icon-button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice : 0 : 2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container\n *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{ day: day }\" />\n <ng-container *ngIf=\"!dayTemplate\">\n <div\n class=\"day\"\n [class.disabled]=\"day | dayDisabled : TODAY_TIMESTAMP : minDateTimestamp : maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\">\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agorapulse-ui-components-neo-datepicker.mjs","sources":["../../../libs/ui-components/neo-datepicker/src/day-disabled.pipe.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.ts","../../../libs/ui-components/neo-datepicker/src/neo-datepicker.component.html","../../../libs/ui-components/neo-datepicker/src/agorapulse-ui-components-neo-datepicker.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DayDetail } from './day-detail.model';\n\n@Pipe({\n name: 'dayDisabled',\n pure: true,\n standalone: true,\n})\nexport class DayDisabledPipe implements PipeTransform {\n transform(day: DayDetail, todayTimestamp: number, minDateTimestamp?: number, maxDateTimestamp?: number): boolean {\n return (\n day.month !== 0 ||\n (day.timestamp < todayTimestamp && !minDateTimestamp) ||\n (!!minDateTimestamp && day.timestamp < minDateTimestamp) ||\n (!!maxDateTimestamp && day.timestamp > maxDateTimestamp)\n );\n }\n}\n","import { ButtonComponent } from '@agorapulse/ui-components/button';\nimport { IconButtonComponent } from '@agorapulse/ui-components/icon-button';\nimport { SymbolComponent, apArrowButtonLeft, apArrowButtonRight, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, SlicePipe, TitleCasePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/en';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/pt';\nimport localeData from 'dayjs/plugin/localeData';\nimport { injectDestroy } from 'ngxtension/inject-destroy';\nimport { BehaviorSubject, filter } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { DayDetail } from './day-detail.model';\nimport { DayDisabledPipe } from './day-disabled.pipe';\n\nexport type NeoDatePickerMode = 'single' | 'multiple';\nexport type NeoDatePickerStartsOn = 'monday' | 'sunday';\nexport type NeoDatePickerLocale = 'en' | 'es' | 'fr' | 'pt' | 'de';\n\n@Component({\n selector: 'ap-neo-date-picker',\n styleUrls: ['neo-datepicker.component.scss'],\n templateUrl: 'neo-datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DayDisabledPipe],\n imports: [\n SymbolComponent,\n TitleCasePipe,\n ButtonComponent,\n NgForOf,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n DayDisabledPipe,\n AsyncPipe,\n IconButtonComponent,\n ],\n standalone: true,\n})\nexport class NeoDatepickerComponent implements OnInit {\n readonly ONE_DAY: number = 60 * 60 * 24 * 1000;\n readonly TODAY_TIMESTAMP: number = Date.now() - (Date.now() % this.ONE_DAY) + new Date().getTimezoneOffset() * 1000 * 60;\n\n @Input() dayTemplate: TemplateRef<{ day: DayDetail }> | undefined = undefined;\n @Input() locale: NeoDatePickerLocale = 'en';\n\n private _maxDate: dayjs.Dayjs | undefined;\n\n @Input() set maxDate(maxDate: dayjs.Dayjs) {\n this._maxDate = maxDate;\n this.maxDateTimestamp = maxDate.toDate().getTime();\n }\n get maxDate(): dayjs.Dayjs | undefined {\n return this._maxDate;\n }\n\n private _minDate: dayjs.Dayjs | undefined;\n @Input() set minDate(minDate: dayjs.Dayjs) {\n this._minDate = minDate;\n this.minDateTimestamp = minDate.toDate().getTime();\n }\n get minDate(): dayjs.Dayjs | undefined {\n return this._minDate;\n }\n\n previousMonthAvailable: boolean = true;\n\n private _mode: NeoDatePickerMode = 'single';\n @Input() set mode(mode: NeoDatePickerMode) {\n this._mode = mode;\n if (this._mode === 'single') {\n this._selectedDates = this._selectedDates.slice(0, 1);\n this.selectedDaysTimestamp = new Set(Array.from(this.selectedDaysTimestamp).slice(0, 1));\n }\n }\n get mode(): NeoDatePickerMode {\n return this._mode;\n }\n\n private _selectedDates: dayjs.Dayjs[] = [];\n @Input() set selectedDates(dates: dayjs.Dayjs[]) {\n if (this._mode === 'single') {\n dates = dates.slice(0, 1);\n }\n this.selectedDaysTimestamp = new Set();\n this._selectedDates = dates;\n if (this._selectedDates.length) {\n this._selectedDates.forEach(day => {\n this.selectedDaysTimestamp.add(day.toDate().getTime());\n });\n }\n }\n\n get selectedDates(): dayjs.Dayjs[] {\n return this._selectedDates;\n }\n\n @Input() startsOn: NeoDatePickerStartsOn = 'monday';\n\n @Output() datesSelected: EventEmitter<dayjs.Dayjs[]> = new EventEmitter<dayjs.Dayjs[]>();\n @Output() nextMonth: EventEmitter<void> = new EventEmitter<void>();\n @Output() previousMonth: EventEmitter<void> = new EventEmitter<void>();\n\n currentYear!: number;\n currentMonth!: number;\n currentMonthDates$: BehaviorSubject<DayDetail[]> = new BehaviorSubject<DayDetail[]>([]);\n minDateTimestamp: number | undefined = undefined;\n maxDateTimestamp: number | undefined = undefined;\n months: string[] = [];\n selectedDaysTimestamp: Set<number> = new Set();\n weekDays: string[] = [];\n\n dayDisabledPipe: DayDisabledPipe = inject(DayDisabledPipe);\n\n private destroy$ = injectDestroy();\n\n constructor(public symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([apArrowButtonLeft, apArrowButtonRight]);\n }\n\n ngOnInit(): void {\n dayjs.extend(localeData);\n const date = new Date();\n this.currentYear = date.getFullYear();\n this.currentMonth = date.getMonth();\n if (this.locale) {\n dayjs.locale(this.locale);\n }\n this.months = dayjs.months();\n this.weekDays = [...dayjs.weekdays()];\n\n if (this.startsOn === 'monday') {\n const sunday = this.weekDays.slice(0, 1);\n this.weekDays.splice(0, 1);\n this.weekDays = this.weekDays.concat(sunday);\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n this.currentMonthDates$\n .pipe(\n distinctUntilChanged(),\n filter(() => !!this.minDateTimestamp),\n takeUntil(this.destroy$)\n )\n .subscribe(currentMonthDates => {\n const minDateInPreviousMonth = this.minDateTimestamp\n ? new Date(this.minDateTimestamp).getMonth() < this.currentMonth\n : undefined;\n this.previousMonthAvailable =\n !currentMonthDates.some(dayDetail => dayDetail.timestamp === this.minDateTimestamp) || !!minDateInPreviousMonth;\n });\n }\n\n getDayDetails(index: number, firstDay: number, month: number, numberOfDays: number, year: number): DayDetail {\n const date = index - firstDay;\n const day = index % 7;\n let prevMonth = month - 1;\n let prevYear = year;\n if (prevMonth < 0) {\n prevMonth = 11;\n prevYear--;\n }\n const prevMonthNumberOfDays = this.getNumberOfDays(prevYear, prevMonth);\n const _date = (date < 0 ? prevMonthNumberOfDays + date : date % numberOfDays) + 1;\n const _month = date < 0 ? -1 : date >= numberOfDays ? 1 : 0;\n const newDate = new Date(year, _month + month, _date);\n const timestamp = newDate.getTime();\n const dayString = this.weekDays[day];\n return {\n date: _date,\n day,\n month: _month,\n timestamp,\n dayString,\n dayjs: dayjs(newDate),\n };\n }\n\n getNumberOfDays(year: number, month: number): number {\n return 40 - new Date(year, month, 40).getDate();\n }\n\n getMonthDetails(year: number, month: number): DayDetail[] {\n let firstDay = new Date(year, month).getDay();\n if (this.startsOn === 'monday') {\n firstDay -= 1;\n }\n // If the first day is below 0 it means the sunday is the first day of the month so we need to show the last month\n if (firstDay < 0) {\n firstDay = 6;\n }\n const numberOfDays = this.getNumberOfDays(year, month);\n const monthArray = [];\n const rows = 6;\n let currentDay = null;\n let index = 0;\n const cols = 7;\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n currentDay = this.getDayDetails(index, firstDay, month, numberOfDays, year);\n monthArray.push(currentDay);\n index++;\n }\n }\n return monthArray;\n }\n\n onPreviousMonth(): void {\n if (this.previousMonthAvailable) {\n this.previousMonth.emit();\n this.currentMonth -= 1;\n if (this.currentMonth === -1) {\n this.currentMonth = 11;\n this.currentYear -= 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n }\n\n onNextMonth(): void {\n this.nextMonth.emit();\n this.currentMonth += 1;\n if (this.currentMonth === 12) {\n this.currentMonth = 0;\n this.currentYear += 1;\n }\n this.currentMonthDates$.next(this.getMonthDetails(this.currentYear, this.currentMonth));\n }\n\n onSelectDay(dayDetail: DayDetail): void {\n const dayDisabled = this.dayDisabledPipe.transform(dayDetail, this.TODAY_TIMESTAMP, this.minDateTimestamp, this.maxDateTimestamp);\n if (!dayDisabled) {\n if (this.mode === 'single') {\n this.selectedDaysTimestamp.clear();\n }\n if (this.minDate && dayDetail.dayjs.isBefore(dayjs(this.minDate))) {\n return;\n }\n if (this.maxDate && dayDetail.dayjs.isAfter(dayjs(this.maxDate))) {\n return;\n }\n if (this.selectedDaysTimestamp.has(dayDetail.timestamp)) {\n this.selectedDaysTimestamp.delete(dayDetail.timestamp);\n } else {\n this.selectedDaysTimestamp.add(dayDetail.timestamp);\n }\n this.datesSelected.emit(Array.from(this.selectedDaysTimestamp).map(timestamp => dayjs(timestamp)));\n }\n }\n}\n","<div class=\"date-picker-container\">\n <div class=\"date-picker\">\n <div class=\"month-navigation\">\n <ap-icon-button\n name=\"neo-date-picker-previous-month\"\n [disabled]=\"!previousMonthAvailable\"\n (click)=\"onPreviousMonth()\">\n <ap-symbol\n symbolId=\"arrow-button-left\"\n size=\"micro\" />\n </ap-icon-button>\n <span>{{ months[currentMonth] | titlecase }} {{ currentYear }}</span>\n <ap-icon-button\n name=\"neo-date-picker-next-month\"\n (click)=\"onNextMonth()\">\n <ap-symbol\n symbolId=\"arrow-button-right\"\n size=\"micro\" />\n </ap-icon-button>\n </div>\n <div class=\"week-header\">\n <ng-container *ngFor=\"let day of weekDays\">\n <div class=\"day\">\n {{ day | slice : 0 : 2 | titlecase }}\n </div>\n </ng-container>\n </div>\n <div class=\"days-container\">\n <ng-container *ngFor=\"let day of currentMonthDates$ | async\">\n <ng-container\n *ngIf=\"dayTemplate\"\n [ngTemplateOutlet]=\"dayTemplate\"\n [ngTemplateOutletContext]=\"{ day: day }\" />\n <ng-container *ngIf=\"!dayTemplate\">\n <div\n class=\"day\"\n [class.disabled]=\"day | dayDisabled : TODAY_TIMESTAMP : minDateTimestamp : maxDateTimestamp\"\n [class.today]=\"day.timestamp === TODAY_TIMESTAMP\"\n [class.selected]=\"selectedDaysTimestamp.has(day.timestamp)\"\n (click)=\"onSelectDay(day)\">\n <span>\n {{ day.date }}\n </span>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { NgClass } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { forwardRef, Component, Input } from '@angular/core';
4
+ import * as i2 from '@angular/material/slider';
5
+ import { MatSliderModule } from '@angular/material/slider';
6
+ import * as i1 from '@angular/forms';
7
+ import { Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule } from '@angular/forms';
8
+
9
+ class RangeSliderComponent {
10
+ fb;
11
+ set min(min) {
12
+ this.minimumFormControl.setValue(min);
13
+ this.change();
14
+ }
15
+ get min() {
16
+ return this.minFormControl.getRawValue();
17
+ }
18
+ set max(max) {
19
+ this.maximumFormControl.setValue(max);
20
+ this.change();
21
+ }
22
+ get max() {
23
+ return this.maxFormControl.getRawValue();
24
+ }
25
+ rangeSliderFormGroup;
26
+ constructor(fb) {
27
+ this.fb = fb;
28
+ const minimumValidator = (control) => {
29
+ let errors = null;
30
+ const rangeFormValue = control.getRawValue();
31
+ if (rangeFormValue.min && rangeFormValue.minimum && (rangeFormValue.min < rangeFormValue.minimum)) {
32
+ errors = {
33
+ minimumError: {
34
+ expectedMin: rangeFormValue.minimum,
35
+ currentMin: rangeFormValue.min
36
+ }
37
+ };
38
+ }
39
+ return errors;
40
+ };
41
+ const minimumRequiredValidator = (control) => {
42
+ let errors = null;
43
+ const rangeFormValue = control.getRawValue();
44
+ if (rangeFormValue.min == undefined) {
45
+ errors = {
46
+ minimumRequired: true
47
+ };
48
+ }
49
+ return errors;
50
+ };
51
+ const maximumValidator = (control) => {
52
+ let errors = null;
53
+ const rangeFormValue = control.getRawValue();
54
+ if (rangeFormValue.max && rangeFormValue.maximum && (rangeFormValue.max > rangeFormValue.maximum)) {
55
+ errors = {
56
+ maximumError: {
57
+ expectedMax: rangeFormValue.maximum,
58
+ currentMax: rangeFormValue.max
59
+ }
60
+ };
61
+ }
62
+ return errors;
63
+ };
64
+ const maximumRequiredValidator = (control) => {
65
+ let errors = null;
66
+ const rangeFormValue = control.getRawValue();
67
+ if (rangeFormValue.max == undefined) {
68
+ errors = {
69
+ maximumRequired: true
70
+ };
71
+ }
72
+ return errors;
73
+ };
74
+ this.rangeSliderFormGroup = fb.group({
75
+ maximum: fb.control(0, { nonNullable: true }),
76
+ minimum: fb.control(100, { nonNullable: true }),
77
+ min: fb.control(undefined, { nonNullable: true }),
78
+ max: fb.control(undefined, { nonNullable: true }),
79
+ }, { validators: Validators.compose([minimumRequiredValidator, maximumRequiredValidator, minimumValidator, maximumValidator]) });
80
+ }
81
+ propagateChange = null;
82
+ propagateOnTouch = null;
83
+ registerOnChange(fn) {
84
+ this.propagateChange = fn;
85
+ }
86
+ registerOnTouched(fn) {
87
+ this.propagateOnTouch = fn;
88
+ }
89
+ get minimum() {
90
+ return this.minimumFormControl.getRawValue();
91
+ }
92
+ get maximum() {
93
+ return this.maximumFormControl.getRawValue();
94
+ }
95
+ get minFormControl() {
96
+ return this.rangeSliderFormGroup.controls.min;
97
+ }
98
+ get minimumFormControl() {
99
+ return this.rangeSliderFormGroup.controls.minimum;
100
+ }
101
+ get maximumFormControl() {
102
+ return this.rangeSliderFormGroup.controls.maximum;
103
+ }
104
+ get maxFormControl() {
105
+ return this.rangeSliderFormGroup.controls.max;
106
+ }
107
+ writeValue(inputRange) {
108
+ this.minFormControl.setValue(inputRange.min);
109
+ this.maxFormControl.setValue(inputRange.max);
110
+ }
111
+ change() {
112
+ if (this.propagateChange) {
113
+ const formValue = this.rangeSliderFormGroup.getRawValue();
114
+ this.propagateChange({
115
+ min: formValue.min,
116
+ max: formValue.max
117
+ });
118
+ }
119
+ }
120
+ validate() {
121
+ return this.rangeSliderFormGroup.errors;
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RangeSliderComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: RangeSliderComponent, isStandalone: true, selector: "ap-range-slider", inputs: { min: "min", max: "max" }, providers: [
125
+ {
126
+ provide: NG_VALUE_ACCESSOR,
127
+ useExisting: forwardRef(() => RangeSliderComponent),
128
+ multi: true,
129
+ },
130
+ {
131
+ provide: NG_VALIDATORS,
132
+ useExisting: forwardRef(() => RangeSliderComponent),
133
+ multi: true
134
+ }
135
+ ], ngImport: i0, template: "<div class=\"slider-wrapper\" [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\"><span>{{min}}</span></div>\n <mat-slider class=\"slider\" [min]=\"minimum\" [max]=\"maximum\">\n <input matSliderStartThumb formControlName=\"min\" (change)=\"change()\">\n <input matSliderEndThumb formControlName=\"max\" (change)=\"change()\">\n </mat-slider>\n <div class=\"number\">\n <span>{{max > maximum ? max + '+' : max}}</span>\n </div>\n</div>\n", styles: [":host{width:100%;height:52px}:host .slider-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--ref-spacing-xxs)}:host .slider-wrapper .slider{flex-grow:2}:host .slider-wrapper .slider .mat-slider-thumb{background-color:var(--ref-color-electric-blue-100)}:host .slider-wrapper .number{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:46px;height:36px;border:1px solid var(--ref-color-grey-20);border-radius:3px}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100);width:var(--ref-spacing-md);height:var(--ref-spacing-md)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--ref-color-electric-blue-150)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active{height:var(--ref-spacing-xxxs)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--ref-color-grey-20)}\n"], dependencies: [{ kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["color", "disableRipple", "disabled", "discrete", "showTickMarks", "min", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i2.MatSliderRangeThumb, selector: "input[matSliderStartThumb], input[matSliderEndThumb]", exportAs: ["matSliderRangeThumb"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RangeSliderComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'ap-range-slider', standalone: true, imports: [NgClass, MatSliderModule, ReactiveFormsModule], providers: [
140
+ {
141
+ provide: NG_VALUE_ACCESSOR,
142
+ useExisting: forwardRef(() => RangeSliderComponent),
143
+ multi: true,
144
+ },
145
+ {
146
+ provide: NG_VALIDATORS,
147
+ useExisting: forwardRef(() => RangeSliderComponent),
148
+ multi: true
149
+ }
150
+ ], template: "<div class=\"slider-wrapper\" [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\"><span>{{min}}</span></div>\n <mat-slider class=\"slider\" [min]=\"minimum\" [max]=\"maximum\">\n <input matSliderStartThumb formControlName=\"min\" (change)=\"change()\">\n <input matSliderEndThumb formControlName=\"max\" (change)=\"change()\">\n </mat-slider>\n <div class=\"number\">\n <span>{{max > maximum ? max + '+' : max}}</span>\n </div>\n</div>\n", styles: [":host{width:100%;height:52px}:host .slider-wrapper{display:flex;justify-content:space-between;align-items:center;gap:var(--ref-spacing-xxs)}:host .slider-wrapper .slider{flex-grow:2}:host .slider-wrapper .slider .mat-slider-thumb{background-color:var(--ref-color-electric-blue-100)}:host .slider-wrapper .number{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:46px;height:36px;border:1px solid var(--ref-color-grey-20);border-radius:3px}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb--focused .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__thumb-knob{background-color:var(--ref-color-white);border:3px solid var(--ref-color-electric-blue-100);width:var(--ref-spacing-md);height:var(--ref-spacing-md)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active_fill{border-color:var(--ref-color-electric-blue-150)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--active{height:var(--ref-spacing-xxxs)}::ng-deep .slider-wrapper .mat-mdc-slider .mdc-slider__track--inactive{background-color:var(--ref-color-grey-20)}\n"] }]
151
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { min: [{
152
+ type: Input
153
+ }], max: [{
154
+ type: Input
155
+ }] } });
156
+
157
+ /**
158
+ * Generated bundle index. Do not edit.
159
+ */
160
+
161
+ export { RangeSliderComponent };
162
+ //# sourceMappingURL=agorapulse-ui-components-range-slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-range-slider.mjs","sources":["../../../libs/ui-components/range-slider/src/range-slider.component.ts","../../../libs/ui-components/range-slider/src/range-slider.component.html","../../../libs/ui-components/range-slider/src/agorapulse-ui-components-range-slider.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { MatSliderModule } from '@angular/material/slider';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\n\nexport type RangeSlider = { min: number, max: number };\ntype RangeFormValue = {\n minimum: number,\n maximum: number,\n min: number,\n max: number,\n};\n\n@Component({\n selector: 'ap-range-slider',\n templateUrl: './range-slider.component.html',\n styleUrls: ['./range-slider.component.scss'],\n standalone: true,\n imports: [NgClass, MatSliderModule, ReactiveFormsModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true\n }\n ],\n})\nexport class RangeSliderComponent implements ControlValueAccessor, Validator {\n @Input()\n set min(min: number) {\n this.minimumFormControl.setValue(min);\n this.change()\n }\n\n get min(): number {\n return this.minFormControl.getRawValue();\n }\n\n @Input()\n set max(max: number) {\n this.maximumFormControl.setValue(max);\n this.change()\n }\n\n get max(): number {\n return this.maxFormControl.getRawValue();\n }\n\n rangeSliderFormGroup: FormGroup<{\n maximum: FormControl<number>;\n minimum: FormControl<number>;\n min: FormControl<number | undefined>;\n max: FormControl<number | undefined>;\n }>;\n\n constructor(private fb: FormBuilder) {\n const minimumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min && rangeFormValue.minimum && (rangeFormValue.min < rangeFormValue.minimum)) {\n errors = {\n minimumError: {\n expectedMin: rangeFormValue.minimum,\n currentMin: rangeFormValue.min\n }\n }\n }\n return errors;\n }\n\n const minimumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min == undefined) {\n errors = {\n minimumRequired: true\n }\n }\n return errors;\n }\n\n const maximumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max && rangeFormValue.maximum && (rangeFormValue.max > rangeFormValue.maximum)) {\n errors = {\n maximumError: {\n expectedMax: rangeFormValue.maximum,\n currentMax: rangeFormValue.max\n }\n }\n }\n return errors;\n }\n\n const maximumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max == undefined) {\n errors = {\n maximumRequired: true\n }\n }\n return errors;\n };\n\n this.rangeSliderFormGroup = fb.group({\n maximum: fb.control(0, { nonNullable: true }),\n minimum: fb.control(100, { nonNullable: true }),\n min: fb.control<number | undefined>(undefined, { nonNullable: true }),\n max: fb.control<number | undefined>(undefined, { nonNullable: true }),\n }, { validators: Validators.compose([minimumRequiredValidator, maximumRequiredValidator, minimumValidator, maximumValidator]) })\n }\n\n propagateChange: ((v: RangeSlider) => void) | null = null;\n\n propagateOnTouch: (() => void) | null = null;\n\n registerOnChange(fn: (v: RangeSlider) => void): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.propagateOnTouch = fn\n }\n\n get minimum(): number {\n return this.minimumFormControl.getRawValue();\n }\n\n get maximum(): number {\n return this.maximumFormControl.getRawValue();\n }\n\n get minFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.min;\n }\n\n get minimumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.minimum;\n }\n\n get maximumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.maximum;\n }\n\n get maxFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.max;\n }\n\n writeValue(inputRange: RangeSlider): void {\n this.minFormControl.setValue(inputRange.min)\n this.maxFormControl.setValue(inputRange.max)\n }\n\n change(): void {\n if (this.propagateChange) {\n const formValue = this.rangeSliderFormGroup.getRawValue();\n this.propagateChange({\n min: formValue.min,\n max: formValue.max\n } as RangeSlider);\n }\n }\n\n validate(): ValidationErrors | null {\n return this.rangeSliderFormGroup.errors;\n }\n}\n","<div class=\"slider-wrapper\" [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\"><span>{{min}}</span></div>\n <mat-slider class=\"slider\" [min]=\"minimum\" [max]=\"maximum\">\n <input matSliderStartThumb formControlName=\"min\" (change)=\"change()\">\n <input matSliderEndThumb formControlName=\"max\" (change)=\"change()\">\n </mat-slider>\n <div class=\"number\">\n <span>{{max > maximum ? max + '+' : max}}</span>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}