@nuralyui/timepicker 0.1.5 → 0.1.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.component.js","sourceRoot":"","sources":["../../../src/components/timepicker/timepicker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n// Import UI components\nimport '../input/input.component.js';\nimport '../button/button.component.js';\nimport { INPUT_STATE } from '../input/input.types.js';\n\n// Import base mixin and types\nimport { NuralyUIBaseMixin } from '@nuralyui/common/mixins';\nimport { SharedDropdownController } from '@nuralyui/common/controllers';\nimport { DropdownHost } from '@nuralyui/common/controllers';\nimport {\n TimeValue,\n TimeFormat,\n TimePickerConfig,\n TimePickerState,\n TimePickerPlacement,\n TimeConstraints,\n TimePeriod,\n TimeStep,\n EMPTY_TIME_VALUE,\n TIME_PICKER_EVENTS,\n} from './timepicker.types.js';\n\n// Import controllers\nimport { TimePickerSelectionController } from './controllers/selection.controller.js';\nimport { TimePickerValidationController } from './controllers/validation.controller.js';\nimport { TimePickerFormattingController } from './controllers/formatting.controller.js';\n\n// Import utilities\nimport { TimeUtils } from './utils/time.utils.js';\n\n// Import styles\nimport { styles as timePickerStyles } from './timepicker.style.js';\n\n// Host interface for controllers\nexport interface TimePickerHost extends LitElement, DropdownHost {\n getCurrentTime(): TimeValue;\n setTime(time: TimeValue): void;\n formatTime(time: TimeValue): string;\n parseTime(timeString: string): TimeValue | null;\n getConfig(): TimePickerConfig;\n validateTime(time: TimeValue): boolean;\n requestUpdate(): void;\n}\n\n/**\n * A comprehensive time picker component that supports both 12-hour and 24-hour formats,\n * with optional seconds display and extensive customization options.\n * \n * @example\n * ```html\n * <nr-timepicker \n * value=\"14:30:00\" \n * format=\"24h\" \n * show-seconds\n * placeholder=\"Select time\">\n * </nr-timepicker>\n * ```\n */\n@customElement('nr-timepicker')\nexport class NrTimePickerElement extends NuralyUIBaseMixin(LitElement) implements TimePickerHost {\n static override styles = [timePickerStyles];\n\n // Properties\n @property({ type: String }) value = '';\n @property({ type: String }) name = '';\n @property({ type: String }) placeholder = 'Select time';\n @property({ type: String }) format: TimeFormat = TimeFormat.TwentyFourHour;\n @property({ type: Boolean, attribute: 'show-seconds' }) showSeconds = false;\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) readonly = false;\n @property({ type: Boolean }) required = false;\n @property({ type: String, attribute: 'min-time' }) minTime?: string;\n @property({ type: String, attribute: 'max-time' }) maxTime?: string;\n @property({ type: Array, attribute: 'disabled-times' }) disabledTimes?: string[];\n @property({ type: Array, attribute: 'enabled-times' }) enabledTimes?: string[];\n @property({ type: String, attribute: 'helper-text' }) helperText = '';\n @property({ type: String }) label = '';\n @property({ type: String }) size: 'small' | 'medium' | 'large' = 'medium';\n @property({ type: String }) variant: 'outlined' | 'filled' | 'standard' = 'outlined';\n @property({ type: String }) placement: TimePickerPlacement = TimePickerPlacement.Bottom;\n \n /** Scroll behavior for dropdown navigation - 'instant' for immediate, 'smooth' for animated, 'auto' for browser default */\n @property({ type: String, attribute: 'scroll-behavior' }) scrollBehavior: 'auto' | 'instant' | 'smooth' = 'instant';\n\n // State\n @state() private inputValue = '';\n @state() private state: TimePickerState = TimePickerState.Default;\n @state() private validationMessage = '';\n\n // Controllers\n private dropdownController = new SharedDropdownController(this);\n private selectionController = new TimePickerSelectionController(this);\n private validationController = new TimePickerValidationController(this);\n private formattingController = new TimePickerFormattingController(this);\n\n constructor() {\n super();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.updateConstraints();\n if (this.value) {\n this.setTimeFromValue(this.value);\n }\n \n // Add global click listener to close dropdown when clicking outside\n this.addEventListener('click', this.handleComponentClick.bind(this));\n document.addEventListener('click', this.handleDocumentClick.bind(this));\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n // Clean up global event listeners\n document.removeEventListener('click', this.handleDocumentClick.bind(this));\n }\n\n override updated(changedProperties: Map<string, any>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('value') && this.value !== this.inputValue) {\n this.setTimeFromValue(this.value);\n // Scroll to the selected time when value changes from outside\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n }\n\n if (this.shouldUpdateConstraints(changedProperties)) {\n this.updateConstraints();\n }\n\n // Set up dropdown elements\n this.setupDropdownElements();\n }\n\n private setupDropdownElements(): void {\n const dropdown = this.shadowRoot?.querySelector('.time-picker__dropdown') as HTMLElement;\n const trigger = this.shadowRoot?.querySelector('.time-picker__input-wrapper') as HTMLElement;\n \n if (dropdown && trigger) {\n this.dropdownController.setElements(dropdown, trigger);\n }\n }\n\n override render(): TemplateResult {\n const wrapperClasses = {\n 'time-picker': true,\n 'time-picker--open': this.dropdownController.isOpen,\n 'time-picker--disabled': this.disabled,\n 'time-picker--readonly': this.readonly,\n 'time-picker--error': this.state === TimePickerState.Error,\n };\n\n return html`\n <div class=\"${classMap(wrapperClasses)}\" data-theme=\"${this.currentTheme}\" part=\"wrapper\">\n ${this.renderLabel()}\n ${this.renderInput()}\n ${this.renderDropdown()}\n ${this.renderHelperText()}\n </div>\n `;\n }\n\n // Public API methods\n open(): void { \n this.dropdownController.open();\n // Scroll to selected time when opening programmatically\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n close(): void { this.dropdownController.close(); }\n clear(): void { \n this.value = '';\n this.inputValue = '';\n this.selectionController.clearSelection();\n }\n \n setToNow(): void {\n const now = TimeUtils.getCurrentTime();\n this.selectionController.selectTime(now);\n this.updateInputValue();\n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n }\n\n validate(): boolean {\n const selectedTime = this.selectionController.getSelectedTime();\n if (!selectedTime) return true;\n return this.validationController.validateConstraints(selectedTime);\n }\n\n validateTime(time: TimeValue): boolean {\n return this.validationController.validateConstraints(time);\n }\n\n // Helper methods for checking if individual time components are valid\n private isHourValid(hour: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, hours: hour };\n return this.validateTime(testTime);\n }\n\n private isMinuteValid(minute: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, minutes: minute };\n return this.validateTime(testTime);\n }\n\n private isSecondValid(second: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, seconds: second };\n return this.validateTime(testTime);\n }\n\n // Private methods\n private renderLabel(): TemplateResult | typeof nothing {\n if (!this.label) return nothing;\n\n return html`\n <label class=\"time-picker__label\" part=\"label\" for=\"time-input\">\n ${this.label}\n ${this.required ? html`<span class=\"time-picker__required\">*</span>` : nothing}\n </label>\n `;\n }\n\n private renderInput(): TemplateResult {\n const formatPlaceholder = this.getFormatPlaceholder();\n \n return html`\n <div class=\"time-picker__input-wrapper\" part=\"input-wrapper\">\n <nr-input\n id=\"time-input\"\n part=\"input\"\n type=\"calendar\"\n .value=\"${this.inputValue}\"\n placeholder=\"${this.placeholder || formatPlaceholder}\"\n ?disabled=\"${this.disabled}\"\n ?readonly=\"${false}\"\n ?required=\"${this.required}\"\n .state=\"${this.state === TimePickerState.Error ? INPUT_STATE.Error : INPUT_STATE.Default}\"\n @click=\"${this.handleInputClick}\"\n @nr-input=\"${this.handleInputChange}\"\n @nr-blur=\"${this.handleInputBlur}\"\n >\n </nr-input>\n </div>\n `;\n }\n\n private renderDropdown(): TemplateResult | typeof nothing {\n if (!this.dropdownController.isOpen) return nothing;\n\n return html`\n <div \n class=\"time-picker__dropdown time-picker__dropdown--open\" \n part=\"dropdown\"\n @click=\"${this.handleDropdownClick}\"\n >\n ${this.renderColumnPicker()}\n ${this.renderActions()}\n </div>\n `;\n }\n\n private renderColumnPicker(): TemplateResult {\n const selectedTime = this.selectionController.getSelectedTime();\n const config = this.getConfig();\n\n return html`\n <div class=\"time-picker__columns\" part=\"columns\">\n ${this.renderHourColumn(selectedTime, config)}\n ${this.renderMinuteColumn(selectedTime)}\n ${this.showSeconds ? this.renderSecondColumn(selectedTime) : nothing}\n </div>\n `;\n }\n\n private renderHourColumn(selectedTime: TimeValue | null, config: TimePickerConfig): TemplateResult {\n const hours = config.format === TimeFormat.TwelveHour \n ? Array.from({ length: 12 }, (_, i) => i === 0 ? 12 : i)\n : Array.from({ length: 24 }, (_, i) => i);\n\n const displayHour = selectedTime && config.format === TimeFormat.TwelveHour\n ? this.formattingController.formatHours(selectedTime.hours)\n : selectedTime?.hours;\n\n return html`\n <div class=\"time-picker__column\" part=\"hour-column\">\n <div class=\"time-picker__column-list\">\n ${hours.map(hour => {\n // Convert display hour to actual hour for validation\n let actualHour = hour;\n if (config.format === TimeFormat.TwelveHour && selectedTime) {\n const currentPeriod = this.formattingController.getPeriod(selectedTime.hours);\n if (hour === 12) {\n actualHour = currentPeriod === TimePeriod.AM ? 0 : 12;\n } else {\n actualHour = currentPeriod === TimePeriod.AM ? hour : hour + 12;\n }\n }\n \n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isHourValid(actualHour, timeForValidation);\n const isSelected = selectedTime ? hour === displayHour : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleHourSelect(hour, config.format) : null}\"\n >\n ${hour.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderMinuteColumn(selectedTime: TimeValue | null): TemplateResult {\n const minutes = Array.from({ length: 60 }, (_, i) => i);\n\n return html`\n <div class=\"time-picker__column\" part=\"minute-column\">\n <div class=\"time-picker__column-list\">\n ${minutes.map(minute => {\n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isMinuteValid(minute, timeForValidation);\n const isSelected = selectedTime ? minute === selectedTime.minutes : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleMinuteSelect(minute) : null}\"\n >\n ${minute.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderSecondColumn(selectedTime: TimeValue | null): TemplateResult {\n const seconds = Array.from({ length: 60 }, (_, i) => i);\n\n return html`\n <div class=\"time-picker__column\" part=\"second-column\">\n <div class=\"time-picker__column-list\">\n ${seconds.map(second => {\n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isSecondValid(second, timeForValidation);\n const isSelected = selectedTime ? second === selectedTime.seconds : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleSecondSelect(second) : null}\"\n >\n ${second.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderActions(): TemplateResult {\n return html`\n <div class=\"time-picker__actions\">\n <nr-button\n type=\"ghost\"\n size=\"small\"\n @click=\"${() => this.setToNow()}\"\n >\n Now\n </nr-button>\n <nr-button\n type=\"primary\"\n size=\"small\"\n @click=\"${this.handleOkClick}\"\n >\n OK\n </nr-button>\n </div>\n `;\n }\n\n private renderHelperText(): TemplateResult | typeof nothing {\n const text = this.validationMessage || this.helperText;\n if (!text) return nothing;\n\n const isError = this.state === TimePickerState.Error || !!this.validationMessage;\n\n return html`\n <div class=\"time-picker__helper-text ${isError ? 'time-picker__helper-text--error' : ''}\" part=\"helper-text\">\n ${text}\n </div>\n `;\n }\n\n private scrollToSelectedTime(): void {\n try {\n const selectedTime = this.selectionController.getSelectedTime();\n if (!selectedTime) return;\n\n // Scroll each column to the selected value\n this.scrollToSelectedHour(selectedTime);\n this.scrollToSelectedMinute(selectedTime);\n if (this.showSeconds) {\n this.scrollToSelectedSecond(selectedTime);\n }\n } catch (error) {\n console.warn('Failed to scroll to selected time:', error);\n }\n }\n\n private scrollToSelectedHour(selectedTime: TimeValue): void {\n const config = this.getConfig();\n const hourColumn = this.shadowRoot?.querySelector('.time-picker__column:first-child .time-picker__column-list') as HTMLElement;\n \n if (!hourColumn) return;\n\n let displayHour: number;\n if (config.format === TimeFormat.TwelveHour) {\n // Convert 24-hour to 12-hour format\n if (selectedTime.hours === 0 || selectedTime.hours === 12) {\n displayHour = 12;\n } else {\n displayHour = selectedTime.hours > 12 ? selectedTime.hours - 12 : selectedTime.hours;\n }\n } else {\n displayHour = selectedTime.hours;\n }\n\n // Find the selected hour element\n const selectedHourElement = hourColumn.querySelector(`.time-picker__column-item:nth-child(${this.getHourIndex(displayHour, config.format) + 1})`) as HTMLElement;\n \n if (selectedHourElement) {\n selectedHourElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private scrollToSelectedMinute(selectedTime: TimeValue): void {\n const minuteColumn = this.shadowRoot?.querySelector('.time-picker__column:nth-child(2) .time-picker__column-list') as HTMLElement;\n \n if (!minuteColumn) return;\n\n // Find the selected minute element (minute + 1 because nth-child is 1-indexed)\n const selectedMinuteElement = minuteColumn.querySelector(`.time-picker__column-item:nth-child(${selectedTime.minutes + 1})`) as HTMLElement;\n \n if (selectedMinuteElement) {\n selectedMinuteElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private scrollToSelectedSecond(selectedTime: TimeValue): void {\n const secondColumn = this.shadowRoot?.querySelector('.time-picker__column:nth-child(3) .time-picker__column-list') as HTMLElement;\n \n if (!secondColumn) return;\n\n // Find the selected second element (second + 1 because nth-child is 1-indexed)\n const selectedSecondElement = secondColumn.querySelector(`.time-picker__column-item:nth-child(${selectedTime.seconds + 1})`) as HTMLElement;\n \n if (selectedSecondElement) {\n selectedSecondElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private getHourIndex(displayHour: number, format: TimeFormat): number {\n if (format === TimeFormat.TwelveHour) {\n // For 12-hour format: 12, 1, 2, ..., 11\n return displayHour === 12 ? 0 : displayHour;\n } else {\n // For 24-hour format: 0, 1, 2, ..., 23\n return displayHour;\n }\n }\n\n // Event handlers\n private handleComponentClick(e: Event): void {\n // Stop propagation to prevent document click handler from firing\n e.stopPropagation();\n }\n\n private handleDocumentClick(e: Event): void {\n // Close dropdown when clicking outside the component\n if (this.dropdownController.isOpen) {\n const target = e.target as Element;\n const isClickInsideComponent = this.contains(target) || \n this.shadowRoot?.contains(target);\n \n if (!isClickInsideComponent) {\n this.dropdownController.close();\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n }\n }\n\n private handleDropdownClick(e: Event): void {\n // Prevent dropdown from closing when clicking inside\n e.stopPropagation();\n }\n\n private handleOkClick(): void {\n // Close the dropdown and emit final change event\n this.dropdownController.close();\n const selectedTime = this.selectionController.getSelectedTime();\n \n if (selectedTime) {\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: this.value, time: selectedTime }\n }));\n }\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n\n private handleInputBlur(): void {\n // Only close dropdown if clicking outside the component\n setTimeout(() => {\n const activeElement = document.activeElement;\n const isWithinComponent = this.contains(activeElement) || \n this.shadowRoot?.contains(activeElement);\n \n if (!isWithinComponent) {\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n }, 150);\n }\n\n private handleInputClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n \n if (!this.disabled) {\n // Only open if closed - don't close when clicking input\n if (!this.dropdownController.isOpen) {\n this.dropdownController.open();\n // Scroll to selected items when dropdown opens\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.FOCUS, {\n bubbles: true,\n composed: true,\n }));\n }\n }\n }\n\n private handleInputChange(e: CustomEvent): void {\n if (this.disabled) return;\n \n const inputValue = e.detail?.value || '';\n this.inputValue = inputValue;\n \n // Parse the input value and update the time selection\n const parsedTime = this.formattingController.parseInputValue(inputValue);\n if (parsedTime) {\n // Validate the parsed time\n if (this.validateTime(parsedTime)) {\n this.selectionController.selectTime(parsedTime);\n this.value = this.formattingController.formatForInput(parsedTime);\n this.state = TimePickerState.Default;\n \n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n \n // Emit change event\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: this.value, time: parsedTime }\n }));\n } else {\n // Invalid time - show error state but don't clear the input\n this.state = TimePickerState.Error;\n }\n } else if (inputValue === '') {\n // Empty input - clear the selection\n this.selectionController.clearSelection();\n this.value = '';\n this.state = TimePickerState.Default;\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: '', time: null }\n }));\n } else {\n // Invalid format - show error state\n this.state = TimePickerState.Error;\n }\n \n // Request update to re-render with new state\n this.requestUpdate();\n }\n\n private handleHourSelect(hour: number, format: TimeFormat): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n let adjustedHour = hour;\n \n if (format === TimeFormat.TwelveHour) {\n const currentPeriod = this.formattingController.getPeriod(selectedTime.hours);\n if (hour === 12) {\n adjustedHour = currentPeriod === TimePeriod.AM ? 0 : 12;\n } else {\n adjustedHour = currentPeriod === TimePeriod.AM ? hour : hour + 12;\n }\n }\n \n const updatedTime = { ...selectedTime, hours: adjustedHour };\n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n private handleMinuteSelect(minute: number): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n const updatedTime = { ...selectedTime, minutes: minute };\n \n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n private handleSecondSelect(second: number): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n const updatedTime = { ...selectedTime, seconds: second };\n \n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n // Utility methods\n private shouldUpdateConstraints(changedProperties: Map<string, any>): boolean {\n return (\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime') ||\n changedProperties.has('disabledTimes') ||\n changedProperties.has('enabledTimes')\n );\n }\n\n private updateConstraints(): void {\n const constraints: TimeConstraints = {\n minTime: this.minTime,\n maxTime: this.maxTime,\n disabledTimes: this.disabledTimes || [],\n enabledTimes: this.enabledTimes,\n };\n\n this.validationController.setConstraints(constraints);\n }\n\n private setTimeFromValue(value: string): void {\n if (this.selectionController.setTimeFromString(value)) {\n this.inputValue = value;\n this.requestUpdate();\n // Scroll to the time when setting from value (if dropdown is open)\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n }\n }\n\n private updateInputValue(): void {\n const selectedTime = this.selectionController.getSelectedTime();\n if (selectedTime) {\n const formattedValue = this.formattingController.formatForDisplay(selectedTime);\n this.inputValue = formattedValue;\n this.value = formattedValue;\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n detail: { value: formattedValue, time: selectedTime },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n getConfig(): TimePickerConfig {\n return {\n format: this.format,\n showSeconds: this.showSeconds,\n step: {\n hours: TimeStep.One,\n minutes: TimeStep.One,\n seconds: TimeStep.One,\n },\n use12HourClock: this.format === TimeFormat.TwelveHour,\n minuteInterval: 1,\n secondInterval: 1,\n };\n }\n\n // TimePickerHost interface implementation\n getCurrentTime(): TimeValue {\n return this.selectionController.getSelectedTime() || EMPTY_TIME_VALUE;\n }\n\n setTime(time: TimeValue): void {\n this.selectionController.selectTime(time);\n this.updateInputValue();\n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n }\n\n formatTime(time: TimeValue): string {\n return this.formattingController.formatForDisplay(time);\n }\n\n /**\n * Get appropriate placeholder text based on format\n */\n private getFormatPlaceholder(): string {\n if (this.format === TimeFormat.TwelveHour) {\n return this.showSeconds ? 'HH:MM:SS AM/PM' : 'HH:MM AM/PM';\n } else {\n return this.showSeconds ? 'HH:MM:SS' : 'HH:MM';\n }\n }\n\n parseTime(timeString: string): TimeValue | null {\n return this.formattingController.parseInputValue(timeString);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-timepicker': NrTimePickerElement;\n }\n}\n"]}
1
+ {"version":3,"file":"timepicker.component.js","sourceRoot":"","sources":["../../../../src/components/timepicker/timepicker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { INPUT_STATE } from '../input/input.types.js';\n\n// Import base mixin and types\nimport { NuralyUIBaseMixin } from '@nuralyui/common/mixins';\nimport { SharedDropdownController } from '@nuralyui/common/controllers';\nimport { DropdownHost } from '@nuralyui/common/controllers';\nimport {\n TimeValue,\n TimeFormat,\n TimePickerConfig,\n TimePickerState,\n TimePickerPlacement,\n TimeConstraints,\n TimePeriod,\n TimeStep,\n EMPTY_TIME_VALUE,\n TIME_PICKER_EVENTS,\n} from './timepicker.types.js';\n\n// Import controllers\nimport { TimePickerSelectionController } from './controllers/selection.controller.js';\nimport { TimePickerValidationController } from './controllers/validation.controller.js';\nimport { TimePickerFormattingController } from './controllers/formatting.controller.js';\n\n// Import utilities\nimport { TimeUtils } from './utils/time.utils.js';\n\n// Import styles\nimport { styles as timePickerStyles } from './timepicker.style.js';\n\n// Host interface for controllers\nexport interface TimePickerHost extends LitElement, DropdownHost {\n getCurrentTime(): TimeValue;\n setTime(time: TimeValue): void;\n formatTime(time: TimeValue): string;\n parseTime(timeString: string): TimeValue | null;\n getConfig(): TimePickerConfig;\n validateTime(time: TimeValue): boolean;\n requestUpdate(): void;\n}\n\n/**\n * A comprehensive time picker component that supports both 12-hour and 24-hour formats,\n * with optional seconds display and extensive customization options.\n * \n * @example\n * ```html\n * <nr-timepicker \n * value=\"14:30:00\" \n * format=\"24h\" \n * show-seconds\n * placeholder=\"Select time\">\n * </nr-timepicker>\n * ```\n */\n@customElement('nr-timepicker')\nexport class NrTimePickerElement extends NuralyUIBaseMixin(LitElement) implements TimePickerHost {\n static override styles = [timePickerStyles];\n\n // Properties\n @property({ type: String }) value = '';\n @property({ type: String }) name = '';\n @property({ type: String }) placeholder = 'Select time';\n @property({ type: String }) format: TimeFormat = TimeFormat.TwentyFourHour;\n @property({ type: Boolean, attribute: 'show-seconds' }) showSeconds = false;\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) readonly = false;\n @property({ type: Boolean }) required = false;\n @property({ type: String, attribute: 'min-time' }) minTime?: string;\n @property({ type: String, attribute: 'max-time' }) maxTime?: string;\n @property({ type: Array, attribute: 'disabled-times' }) disabledTimes?: string[];\n @property({ type: Array, attribute: 'enabled-times' }) enabledTimes?: string[];\n @property({ type: String, attribute: 'helper-text' }) helperText = '';\n @property({ type: String }) label = '';\n @property({ type: String }) size: 'small' | 'medium' | 'large' = 'medium';\n @property({ type: String }) variant: 'outlined' | 'filled' | 'standard' = 'outlined';\n @property({ type: String }) placement: TimePickerPlacement = TimePickerPlacement.Bottom;\n \n /** Scroll behavior for dropdown navigation - 'instant' for immediate, 'smooth' for animated, 'auto' for browser default */\n @property({ type: String, attribute: 'scroll-behavior' }) scrollBehavior: 'auto' | 'instant' | 'smooth' = 'instant';\n\n // State\n @state() private inputValue = '';\n @state() private state: TimePickerState = TimePickerState.Default;\n @state() private validationMessage = '';\n\n // Controllers\n private dropdownController = new SharedDropdownController(this);\n private selectionController = new TimePickerSelectionController(this);\n private validationController = new TimePickerValidationController(this);\n private formattingController = new TimePickerFormattingController(this);\n\n constructor() {\n super();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.updateConstraints();\n if (this.value) {\n this.setTimeFromValue(this.value);\n }\n \n // Add global click listener to close dropdown when clicking outside\n this.addEventListener('click', this.handleComponentClick.bind(this));\n document.addEventListener('click', this.handleDocumentClick.bind(this));\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n // Clean up global event listeners\n document.removeEventListener('click', this.handleDocumentClick.bind(this));\n }\n\n override updated(changedProperties: Map<string, any>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('value') && this.value !== this.inputValue) {\n this.setTimeFromValue(this.value);\n // Scroll to the selected time when value changes from outside\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n }\n\n if (this.shouldUpdateConstraints(changedProperties)) {\n this.updateConstraints();\n }\n\n // Set up dropdown elements\n this.setupDropdownElements();\n }\n\n private setupDropdownElements(): void {\n const dropdown = this.shadowRoot?.querySelector('.time-picker__dropdown') as HTMLElement;\n const trigger = this.shadowRoot?.querySelector('.time-picker__input-wrapper') as HTMLElement;\n \n if (dropdown && trigger) {\n this.dropdownController.setElements(dropdown, trigger);\n }\n }\n\n override render(): TemplateResult {\n const wrapperClasses = {\n 'time-picker': true,\n 'time-picker--open': this.dropdownController.isOpen,\n 'time-picker--disabled': this.disabled,\n 'time-picker--readonly': this.readonly,\n 'time-picker--error': this.state === TimePickerState.Error,\n };\n\n return html`\n <div class=\"${classMap(wrapperClasses)}\" data-theme=\"${this.currentTheme}\" part=\"wrapper\">\n ${this.renderLabel()}\n ${this.renderInput()}\n ${this.renderDropdown()}\n ${this.renderHelperText()}\n </div>\n `;\n }\n\n // Public API methods\n open(): void { \n this.dropdownController.open();\n // Scroll to selected time when opening programmatically\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n close(): void { this.dropdownController.close(); }\n clear(): void { \n this.value = '';\n this.inputValue = '';\n this.selectionController.clearSelection();\n }\n \n setToNow(): void {\n const now = TimeUtils.getCurrentTime();\n this.selectionController.selectTime(now);\n this.updateInputValue();\n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n }\n\n validate(): boolean {\n const selectedTime = this.selectionController.getSelectedTime();\n if (!selectedTime) return true;\n return this.validationController.validateConstraints(selectedTime);\n }\n\n validateTime(time: TimeValue): boolean {\n return this.validationController.validateConstraints(time);\n }\n\n // Helper methods for checking if individual time components are valid\n private isHourValid(hour: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, hours: hour };\n return this.validateTime(testTime);\n }\n\n private isMinuteValid(minute: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, minutes: minute };\n return this.validateTime(testTime);\n }\n\n private isSecondValid(second: number, selectedTime: TimeValue): boolean {\n const testTime = { ...selectedTime, seconds: second };\n return this.validateTime(testTime);\n }\n\n // Private methods\n private renderLabel(): TemplateResult | typeof nothing {\n if (!this.label) return nothing;\n\n return html`\n <label class=\"time-picker__label\" part=\"label\" for=\"time-input\">\n ${this.label}\n ${this.required ? html`<span class=\"time-picker__required\">*</span>` : nothing}\n </label>\n `;\n }\n\n private renderInput(): TemplateResult {\n const formatPlaceholder = this.getFormatPlaceholder();\n \n return html`\n <div class=\"time-picker__input-wrapper\" part=\"input-wrapper\">\n <nr-input\n id=\"time-input\"\n part=\"input\"\n type=\"calendar\"\n .value=\"${this.inputValue}\"\n placeholder=\"${this.placeholder || formatPlaceholder}\"\n ?disabled=\"${this.disabled}\"\n ?readonly=\"${false}\"\n ?required=\"${this.required}\"\n .state=\"${this.state === TimePickerState.Error ? INPUT_STATE.Error : INPUT_STATE.Default}\"\n @click=\"${this.handleInputClick}\"\n @nr-input=\"${this.handleInputChange}\"\n @nr-blur=\"${this.handleInputBlur}\"\n >\n </nr-input>\n </div>\n `;\n }\n\n private renderDropdown(): TemplateResult | typeof nothing {\n if (!this.dropdownController.isOpen) return nothing;\n\n return html`\n <div \n class=\"time-picker__dropdown time-picker__dropdown--open\" \n part=\"dropdown\"\n @click=\"${this.handleDropdownClick}\"\n >\n ${this.renderColumnPicker()}\n ${this.renderActions()}\n </div>\n `;\n }\n\n private renderColumnPicker(): TemplateResult {\n const selectedTime = this.selectionController.getSelectedTime();\n const config = this.getConfig();\n\n return html`\n <div class=\"time-picker__columns\" part=\"columns\">\n ${this.renderHourColumn(selectedTime, config)}\n ${this.renderMinuteColumn(selectedTime)}\n ${this.showSeconds ? this.renderSecondColumn(selectedTime) : nothing}\n </div>\n `;\n }\n\n private renderHourColumn(selectedTime: TimeValue | null, config: TimePickerConfig): TemplateResult {\n const hours = config.format === TimeFormat.TwelveHour \n ? Array.from({ length: 12 }, (_, i) => i === 0 ? 12 : i)\n : Array.from({ length: 24 }, (_, i) => i);\n\n const displayHour = selectedTime && config.format === TimeFormat.TwelveHour\n ? this.formattingController.formatHours(selectedTime.hours)\n : selectedTime?.hours;\n\n return html`\n <div class=\"time-picker__column\" part=\"hour-column\">\n <div class=\"time-picker__column-list\">\n ${hours.map(hour => {\n // Convert display hour to actual hour for validation\n let actualHour = hour;\n if (config.format === TimeFormat.TwelveHour && selectedTime) {\n const currentPeriod = this.formattingController.getPeriod(selectedTime.hours);\n if (hour === 12) {\n actualHour = currentPeriod === TimePeriod.AM ? 0 : 12;\n } else {\n actualHour = currentPeriod === TimePeriod.AM ? hour : hour + 12;\n }\n }\n \n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isHourValid(actualHour, timeForValidation);\n const isSelected = selectedTime ? hour === displayHour : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleHourSelect(hour, config.format) : null}\"\n >\n ${hour.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderMinuteColumn(selectedTime: TimeValue | null): TemplateResult {\n const minutes = Array.from({ length: 60 }, (_, i) => i);\n\n return html`\n <div class=\"time-picker__column\" part=\"minute-column\">\n <div class=\"time-picker__column-list\">\n ${minutes.map(minute => {\n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isMinuteValid(minute, timeForValidation);\n const isSelected = selectedTime ? minute === selectedTime.minutes : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleMinuteSelect(minute) : null}\"\n >\n ${minute.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderSecondColumn(selectedTime: TimeValue | null): TemplateResult {\n const seconds = Array.from({ length: 60 }, (_, i) => i);\n\n return html`\n <div class=\"time-picker__column\" part=\"second-column\">\n <div class=\"time-picker__column-list\">\n ${seconds.map(second => {\n // Use EMPTY_TIME_VALUE for validation when no time is selected\n const timeForValidation = selectedTime || EMPTY_TIME_VALUE;\n const isValid = this.isSecondValid(second, timeForValidation);\n const isSelected = selectedTime ? second === selectedTime.seconds : false;\n \n return html`\n <div\n class=\"time-picker__column-item ${isSelected ? 'time-picker__column-item--selected' : ''} ${!isValid ? 'time-picker__column-item--disabled' : ''}\"\n @click=\"${isValid ? () => this.handleSecondSelect(second) : null}\"\n >\n ${second.toString().padStart(2, '0')}\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n\n private renderActions(): TemplateResult {\n return html`\n <div class=\"time-picker__actions\">\n <nr-button\n type=\"ghost\"\n size=\"small\"\n @click=\"${() => this.setToNow()}\"\n >\n Now\n </nr-button>\n <nr-button\n type=\"primary\"\n size=\"small\"\n @click=\"${this.handleOkClick}\"\n >\n OK\n </nr-button>\n </div>\n `;\n }\n\n private renderHelperText(): TemplateResult | typeof nothing {\n const text = this.validationMessage || this.helperText;\n if (!text) return nothing;\n\n const isError = this.state === TimePickerState.Error || !!this.validationMessage;\n\n return html`\n <div class=\"time-picker__helper-text ${isError ? 'time-picker__helper-text--error' : ''}\" part=\"helper-text\">\n ${text}\n </div>\n `;\n }\n\n private scrollToSelectedTime(): void {\n try {\n const selectedTime = this.selectionController.getSelectedTime();\n if (!selectedTime) return;\n\n // Scroll each column to the selected value\n this.scrollToSelectedHour(selectedTime);\n this.scrollToSelectedMinute(selectedTime);\n if (this.showSeconds) {\n this.scrollToSelectedSecond(selectedTime);\n }\n } catch (error) {\n console.warn('Failed to scroll to selected time:', error);\n }\n }\n\n private scrollToSelectedHour(selectedTime: TimeValue): void {\n const config = this.getConfig();\n const hourColumn = this.shadowRoot?.querySelector('.time-picker__column:first-child .time-picker__column-list') as HTMLElement;\n \n if (!hourColumn) return;\n\n let displayHour: number;\n if (config.format === TimeFormat.TwelveHour) {\n // Convert 24-hour to 12-hour format\n if (selectedTime.hours === 0 || selectedTime.hours === 12) {\n displayHour = 12;\n } else {\n displayHour = selectedTime.hours > 12 ? selectedTime.hours - 12 : selectedTime.hours;\n }\n } else {\n displayHour = selectedTime.hours;\n }\n\n // Find the selected hour element\n const selectedHourElement = hourColumn.querySelector(`.time-picker__column-item:nth-child(${this.getHourIndex(displayHour, config.format) + 1})`) as HTMLElement;\n \n if (selectedHourElement) {\n selectedHourElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private scrollToSelectedMinute(selectedTime: TimeValue): void {\n const minuteColumn = this.shadowRoot?.querySelector('.time-picker__column:nth-child(2) .time-picker__column-list') as HTMLElement;\n \n if (!minuteColumn) return;\n\n // Find the selected minute element (minute + 1 because nth-child is 1-indexed)\n const selectedMinuteElement = minuteColumn.querySelector(`.time-picker__column-item:nth-child(${selectedTime.minutes + 1})`) as HTMLElement;\n \n if (selectedMinuteElement) {\n selectedMinuteElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private scrollToSelectedSecond(selectedTime: TimeValue): void {\n const secondColumn = this.shadowRoot?.querySelector('.time-picker__column:nth-child(3) .time-picker__column-list') as HTMLElement;\n \n if (!secondColumn) return;\n\n // Find the selected second element (second + 1 because nth-child is 1-indexed)\n const selectedSecondElement = secondColumn.querySelector(`.time-picker__column-item:nth-child(${selectedTime.seconds + 1})`) as HTMLElement;\n \n if (selectedSecondElement) {\n selectedSecondElement.scrollIntoView({\n behavior: this.scrollBehavior as ScrollBehavior,\n block: 'center',\n inline: 'nearest'\n });\n }\n }\n\n private getHourIndex(displayHour: number, format: TimeFormat): number {\n if (format === TimeFormat.TwelveHour) {\n // For 12-hour format: 12, 1, 2, ..., 11\n return displayHour === 12 ? 0 : displayHour;\n } else {\n // For 24-hour format: 0, 1, 2, ..., 23\n return displayHour;\n }\n }\n\n // Event handlers\n private handleComponentClick(e: Event): void {\n // Stop propagation to prevent document click handler from firing\n e.stopPropagation();\n }\n\n private handleDocumentClick(e: Event): void {\n // Close dropdown when clicking outside the component\n if (this.dropdownController.isOpen) {\n const target = e.target as Element;\n const isClickInsideComponent = this.contains(target) || \n this.shadowRoot?.contains(target);\n \n if (!isClickInsideComponent) {\n this.dropdownController.close();\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n }\n }\n\n private handleDropdownClick(e: Event): void {\n // Prevent dropdown from closing when clicking inside\n e.stopPropagation();\n }\n\n private handleOkClick(): void {\n // Close the dropdown and emit final change event\n this.dropdownController.close();\n const selectedTime = this.selectionController.getSelectedTime();\n \n if (selectedTime) {\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: this.value, time: selectedTime }\n }));\n }\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n\n private handleInputBlur(): void {\n // Only close dropdown if clicking outside the component\n setTimeout(() => {\n const activeElement = document.activeElement;\n const isWithinComponent = this.contains(activeElement) || \n this.shadowRoot?.contains(activeElement);\n \n if (!isWithinComponent) {\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.BLUR, {\n bubbles: true,\n composed: true,\n }));\n }\n }, 150);\n }\n\n private handleInputClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n \n if (!this.disabled) {\n // Only open if closed - don't close when clicking input\n if (!this.dropdownController.isOpen) {\n this.dropdownController.open();\n // Scroll to selected items when dropdown opens\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.FOCUS, {\n bubbles: true,\n composed: true,\n }));\n }\n }\n }\n\n private handleInputChange(e: CustomEvent): void {\n if (this.disabled) return;\n \n const inputValue = e.detail?.value || '';\n this.inputValue = inputValue;\n \n // Parse the input value and update the time selection\n const parsedTime = this.formattingController.parseInputValue(inputValue);\n if (parsedTime) {\n // Validate the parsed time\n if (this.validateTime(parsedTime)) {\n this.selectionController.selectTime(parsedTime);\n this.value = this.formattingController.formatForInput(parsedTime);\n this.state = TimePickerState.Default;\n \n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n \n // Emit change event\n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: this.value, time: parsedTime }\n }));\n } else {\n // Invalid time - show error state but don't clear the input\n this.state = TimePickerState.Error;\n }\n } else if (inputValue === '') {\n // Empty input - clear the selection\n this.selectionController.clearSelection();\n this.value = '';\n this.state = TimePickerState.Default;\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n bubbles: true,\n composed: true,\n detail: { value: '', time: null }\n }));\n } else {\n // Invalid format - show error state\n this.state = TimePickerState.Error;\n }\n \n // Request update to re-render with new state\n this.requestUpdate();\n }\n\n private handleHourSelect(hour: number, format: TimeFormat): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n let adjustedHour = hour;\n \n if (format === TimeFormat.TwelveHour) {\n const currentPeriod = this.formattingController.getPeriod(selectedTime.hours);\n if (hour === 12) {\n adjustedHour = currentPeriod === TimePeriod.AM ? 0 : 12;\n } else {\n adjustedHour = currentPeriod === TimePeriod.AM ? hour : hour + 12;\n }\n }\n \n const updatedTime = { ...selectedTime, hours: adjustedHour };\n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n private handleMinuteSelect(minute: number): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n const updatedTime = { ...selectedTime, minutes: minute };\n \n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n private handleSecondSelect(second: number): void {\n const selectedTime = this.selectionController.getSelectedTime() || TimeUtils.getCurrentTime();\n const updatedTime = { ...selectedTime, seconds: second };\n \n if (this.validateTime(updatedTime)) {\n this.selectionController.selectTime(updatedTime);\n this.updateInputValue();\n // No scrolling when clicking on individual items\n }\n }\n\n // Utility methods\n private shouldUpdateConstraints(changedProperties: Map<string, any>): boolean {\n return (\n changedProperties.has('minTime') ||\n changedProperties.has('maxTime') ||\n changedProperties.has('disabledTimes') ||\n changedProperties.has('enabledTimes')\n );\n }\n\n private updateConstraints(): void {\n const constraints: TimeConstraints = {\n minTime: this.minTime,\n maxTime: this.maxTime,\n disabledTimes: this.disabledTimes || [],\n enabledTimes: this.enabledTimes,\n };\n\n this.validationController.setConstraints(constraints);\n }\n\n private setTimeFromValue(value: string): void {\n if (this.selectionController.setTimeFromString(value)) {\n this.inputValue = value;\n this.requestUpdate();\n // Scroll to the time when setting from value (if dropdown is open)\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 50);\n }\n }\n }\n\n private updateInputValue(): void {\n const selectedTime = this.selectionController.getSelectedTime();\n if (selectedTime) {\n const formattedValue = this.formattingController.formatForDisplay(selectedTime);\n this.inputValue = formattedValue;\n this.value = formattedValue;\n \n this.dispatchEvent(new CustomEvent(TIME_PICKER_EVENTS.TIME_CHANGE, {\n detail: { value: formattedValue, time: selectedTime },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n getConfig(): TimePickerConfig {\n return {\n format: this.format,\n showSeconds: this.showSeconds,\n step: {\n hours: TimeStep.One,\n minutes: TimeStep.One,\n seconds: TimeStep.One,\n },\n use12HourClock: this.format === TimeFormat.TwelveHour,\n minuteInterval: 1,\n secondInterval: 1,\n };\n }\n\n // TimePickerHost interface implementation\n getCurrentTime(): TimeValue {\n return this.selectionController.getSelectedTime() || EMPTY_TIME_VALUE;\n }\n\n setTime(time: TimeValue): void {\n this.selectionController.selectTime(time);\n this.updateInputValue();\n // Scroll to the newly selected time if dropdown is open\n if (this.dropdownController.isOpen) {\n setTimeout(() => {\n this.scrollToSelectedTime();\n }, 10);\n }\n }\n\n formatTime(time: TimeValue): string {\n return this.formattingController.formatForDisplay(time);\n }\n\n /**\n * Get appropriate placeholder text based on format\n */\n private getFormatPlaceholder(): string {\n if (this.format === TimeFormat.TwelveHour) {\n return this.showSeconds ? 'HH:MM:SS AM/PM' : 'HH:MM AM/PM';\n } else {\n return this.showSeconds ? 'HH:MM:SS' : 'HH:MM';\n }\n }\n\n parseTime(timeString: string): TimeValue | null {\n return this.formattingController.parseInputValue(timeString);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-timepicker': NrTimePickerElement;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.constants.js","sourceRoot":"","sources":["../../../src/components/timepicker/timepicker.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,UAAU,CAAC,cAAc;IACjC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,KAAK;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,oCAAoC,GAAG,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gBAAgB,EAAE,sDAAsD;IACxE,WAAW,EAAE,mEAAmE;CACxE,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,EAAE;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC,GAAG;IACnB,OAAO,EAAE,QAAQ,CAAC,GAAG;IACrB,OAAO,EAAE,QAAQ,CAAC,GAAG;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,uBAAuB;IACjC,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,SAAS,EAAE,wBAAwB;CAC3B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,EAAE;IACV,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,EAAE;CACd,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { TimeFormat, TimeStep } from './timepicker.types.js';\n\n/**\n * Default time picker configuration\n */\nexport const DEFAULT_TIME_CONFIG = {\n format: TimeFormat.TwentyFourHour,\n showSeconds: false,\n minuteInterval: 1,\n secondInterval: 1,\n use12HourClock: false,\n} as const;\n\n/**\n * Default time display formats\n */\nexport const DEFAULT_TIME_FORMAT = 'HH:mm';\nexport const DEFAULT_TIME_FORMAT_WITH_SECONDS = 'HH:mm:ss';\nexport const DEFAULT_12H_TIME_FORMAT = 'hh:mm A';\nexport const DEFAULT_12H_TIME_FORMAT_WITH_SECONDS = 'hh:mm:ss A';\n\n/**\n * Time input field ID\n */\nexport const TIME_INPUT_FIELD_ID = 'time-input-field';\n\n/**\n * Clock container CSS class\n */\nexport const CLOCK_CONTAINER_CLASS = 'time-picker-clock-container';\n\n/**\n * Time validation patterns\n */\nexport const TIME_VALIDATION_PATTERNS = {\n TWENTY_FOUR_HOUR: /^([01]?[0-9]|2[0-3]):([0-5]?[0-9])(:([0-5]?[0-9]))?$/,\n TWELVE_HOUR: /^(0?[1-9]|1[0-2]):([0-5]?[0-9])(:([0-5]?[0-9]))?\\s?(AM|PM|am|pm)$/,\n} as const;\n\n/**\n * Time boundaries\n */\nexport const TIME_BOUNDARIES = {\n MIN_HOUR_24: 0,\n MAX_HOUR_24: 23,\n MIN_HOUR_12: 1,\n MAX_HOUR_12: 12,\n MIN_MINUTE: 0,\n MAX_MINUTE: 59,\n MIN_SECOND: 0,\n MAX_SECOND: 59,\n} as const;\n\n/**\n * Default step values\n */\nexport const DEFAULT_STEPS = {\n HOURS: TimeStep.One,\n MINUTES: TimeStep.One,\n SECONDS: TimeStep.One,\n} as const;\n\n/**\n * Time picker CSS classes\n */\nexport const TIME_PICKER_CLASSES = {\n CONTAINER: 'time-picker',\n INPUT: 'time-picker__input',\n CLOCK: 'time-picker__clock',\n DROPDOWN: 'time-picker__dropdown',\n HOUR: 'time-picker__hour',\n MINUTE: 'time-picker__minute',\n SECOND: 'time-picker__second',\n PERIOD: 'time-picker__period',\n BUTTON: 'time-picker__button',\n SEPARATOR: 'time-picker__separator',\n} as const;\n\n/**\n * Clock face constants\n */\nexport const CLOCK_FACE = {\n RADIUS: 100,\n CENTER: 50,\n HOUR_HAND_LENGTH: 30,\n MINUTE_HAND_LENGTH: 40,\n SECOND_HAND_LENGTH: 45,\n} as const;\n"]}
1
+ {"version":3,"file":"timepicker.constants.js","sourceRoot":"","sources":["../../../../src/components/timepicker/timepicker.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,UAAU,CAAC,cAAc;IACjC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,KAAK;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,oCAAoC,GAAG,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gBAAgB,EAAE,sDAAsD;IACxE,WAAW,EAAE,mEAAmE;CACxE,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,EAAE;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC,GAAG;IACnB,OAAO,EAAE,QAAQ,CAAC,GAAG;IACrB,OAAO,EAAE,QAAQ,CAAC,GAAG;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,QAAQ,EAAE,uBAAuB;IACjC,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,qBAAqB;IAC7B,SAAS,EAAE,wBAAwB;CAC3B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,EAAE;IACV,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,EAAE;CACd,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { TimeFormat, TimeStep } from './timepicker.types.js';\n\n/**\n * Default time picker configuration\n */\nexport const DEFAULT_TIME_CONFIG = {\n format: TimeFormat.TwentyFourHour,\n showSeconds: false,\n minuteInterval: 1,\n secondInterval: 1,\n use12HourClock: false,\n} as const;\n\n/**\n * Default time display formats\n */\nexport const DEFAULT_TIME_FORMAT = 'HH:mm';\nexport const DEFAULT_TIME_FORMAT_WITH_SECONDS = 'HH:mm:ss';\nexport const DEFAULT_12H_TIME_FORMAT = 'hh:mm A';\nexport const DEFAULT_12H_TIME_FORMAT_WITH_SECONDS = 'hh:mm:ss A';\n\n/**\n * Time input field ID\n */\nexport const TIME_INPUT_FIELD_ID = 'time-input-field';\n\n/**\n * Clock container CSS class\n */\nexport const CLOCK_CONTAINER_CLASS = 'time-picker-clock-container';\n\n/**\n * Time validation patterns\n */\nexport const TIME_VALIDATION_PATTERNS = {\n TWENTY_FOUR_HOUR: /^([01]?[0-9]|2[0-3]):([0-5]?[0-9])(:([0-5]?[0-9]))?$/,\n TWELVE_HOUR: /^(0?[1-9]|1[0-2]):([0-5]?[0-9])(:([0-5]?[0-9]))?\\s?(AM|PM|am|pm)$/,\n} as const;\n\n/**\n * Time boundaries\n */\nexport const TIME_BOUNDARIES = {\n MIN_HOUR_24: 0,\n MAX_HOUR_24: 23,\n MIN_HOUR_12: 1,\n MAX_HOUR_12: 12,\n MIN_MINUTE: 0,\n MAX_MINUTE: 59,\n MIN_SECOND: 0,\n MAX_SECOND: 59,\n} as const;\n\n/**\n * Default step values\n */\nexport const DEFAULT_STEPS = {\n HOURS: TimeStep.One,\n MINUTES: TimeStep.One,\n SECONDS: TimeStep.One,\n} as const;\n\n/**\n * Time picker CSS classes\n */\nexport const TIME_PICKER_CLASSES = {\n CONTAINER: 'time-picker',\n INPUT: 'time-picker__input',\n CLOCK: 'time-picker__clock',\n DROPDOWN: 'time-picker__dropdown',\n HOUR: 'time-picker__hour',\n MINUTE: 'time-picker__minute',\n SECOND: 'time-picker__second',\n PERIOD: 'time-picker__period',\n BUTTON: 'time-picker__button',\n SEPARATOR: 'time-picker__separator',\n} as const;\n\n/**\n * Clock face constants\n */\nexport const CLOCK_FACE = {\n RADIUS: 100,\n CENTER: 50,\n HOUR_HAND_LENGTH: 30,\n MINUTE_HAND_LENGTH: 40,\n SECOND_HAND_LENGTH: 45,\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.style.js","sourceRoot":"","sources":["../../../src/components/timepicker/timepicker.style.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8iBjB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { css } from 'lit';\nimport { styleVariables } from './timepicker.style.variables.js';\n\nexport const styles = css`\n ${styleVariables}\n :host {\n display: block;\n font-family: var(--nuraly-timepicker-local-font-family);\n font-size: var(--nuraly-timepicker-local-font-size);\n font-weight: var(--nuraly-timepicker-local-font-weight);\n }\n\n /* Host attribute selectors for configuration */\n :host([disabled]) {\n opacity: var(--nuraly-timepicker-local-disabled-opacity);\n pointer-events: none;\n }\n\n .time-picker {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n\n /* Input wrapper hover and focus states matching select component */\n .time-picker__input-wrapper:hover:not(.time-picker--disabled) nr-input {\n --nuraly-input-border-color: var(--nuraly-timepicker-local-border-color-hover);\n }\n\n .time-picker__input-wrapper:focus-within nr-input,\n .time-picker--open .time-picker__input-wrapper nr-input,\n .time-picker__input-wrapper nr-input:focus {\n --nuraly-input-border-color: var(--nuraly-timepicker-local-focus-color);\n --nuraly-input-box-shadow: 0 0 0 2px var(--nuraly-timepicker-local-focus-color)33;\n }\n\n /* Disabled state styling */\n .time-picker--disabled .time-picker__input-wrapper nr-input {\n --nuraly-input-background-color: var(--nuraly-timepicker-local-disabled-bg);\n --nuraly-input-border-color: var(--nuraly-timepicker-local-border-color);\n --nuraly-input-text-color: var(--nuraly-timepicker-local-text-color-disabled);\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .time-picker__input-wrapper {\n position: relative;\n width: 100%;\n }\n\n /* Style the nr-input component */\n .time-picker__input-wrapper nr-input {\n width: 100%;\n }\n\n /* Style the trigger button inside nr-input */\n .time-picker__trigger {\n padding: 4px !important;\n min-width: auto !important;\n width: 24px !important;\n height: 24px !important;\n border-radius: var(--nuraly-timepicker-local-border-radius-sm) !important;\n }\n\n .time-picker__trigger svg {\n width: 16px;\n height: 16px;\n color: var(--nuraly-timepicker-local-text-color-secondary);\n transition: color 0.2s ease;\n }\n\n .time-picker__trigger:hover svg {\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__trigger:hover {\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__trigger:disabled {\n color: var(--nuraly-timepicker-local-text-color-disabled);\n cursor: not-allowed;\n }\n\n .time-picker__trigger svg {\n width: 14px;\n height: 14px;\n }\n\n .time-picker__dropdown {\n position: absolute;\n z-index: 1000;\n background-color: var(--nuraly-timepicker-local-background-color);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border: 1px solid var(--nuraly-timepicker-local-border-color);\n border-radius: var(--nuraly-timepicker-local-border-radius);\n box-shadow: var(--nuraly-timepicker-local-box-shadow);\n width: 100%;\n min-width: 180px;\n /* Animation and positioning - simplified to match select */\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition: all 0.2s ease-in-out;\n /* Create new stacking context to prevent layering issues */\n isolation: isolate;\n /* Ensure solid background to prevent visual bleed-through */\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n /* Force above other elements */\n transform: translateZ(0);\n animation: dropdown-enter 0.15s ease-out;\n overflow: hidden;\n }\n\n .time-picker__dropdown.placement-top {\n animation: dropdown-enter-top 0.15s ease-out;\n }\n\n @keyframes dropdown-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes dropdown-enter-top {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .time-picker__columns {\n display: flex;\n max-height: 216px;\n overflow: hidden;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n background: var(--nuraly-timepicker-local-background-color);\n padding: 4px 0;\n }\n\n .time-picker__column {\n flex: 1;\n border-right: 1px solid rgba(0, 0, 0, 0.06);\n background: transparent;\n overflow: hidden;\n position: relative;\n min-width: 60px;\n }\n\n .time-picker__column:last-child {\n border-right: none;\n }\n\n .time-picker__column-list {\n max-height: 216px;\n overflow-y: scroll;\n overflow-x: hidden;\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.06) transparent;\n /* Custom scrollbar styling to match modern design */\n padding: 4px 2px;\n scroll-behavior: smooth;\n /* Force scrollbar to always be visible */\n -webkit-overflow-scrolling: touch;\n }\n\n .time-picker__column-list::-webkit-scrollbar {\n width: 6px;\n /* Always show scrollbar */\n -webkit-appearance: none;\n }\n\n .time-picker__column-list::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.04);\n margin: 8px 0;\n border-radius: var(--nuraly-timepicker-local-border-radius-sm);\n }\n\n .time-picker__column-list::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.2);\n border-radius: var(--nuraly-timepicker-local-border-radius-sm);\n transition: background-color 0.2s ease;\n /* Ensure thumb is always visible */\n min-height: 20px;\n }\n\n .time-picker__column-list::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 0.3);\n }\n\n .time-picker__column-list {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.2) rgba(0, 0, 0, 0.04);\n scroll-behavior: smooth;\n }\n\n .time-picker__column-item {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n color: var(--nuraly-timepicker-local-text-color);\n font-size: var(--nuraly-timepicker-local-font-size);\n font-weight: var(--nuraly-timepicker-local-font-weight);\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n position: relative;\n user-select: none;\n line-height: var(--nuraly-timepicker-local-line-height);\n min-height: 28px;\n margin: 1px 2px;\n }\n\n .time-picker__column-item:hover {\n background-color: var(--nuraly-timepicker-local-control-item-bg-hover);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item:active {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--selected {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n font-weight: 600;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n }\n\n .time-picker__column-item--selected:hover {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--focused {\n background-color: var(--nuraly-timepicker-local-control-item-bg-hover);\n outline: 2px solid var(--nuraly-timepicker-local-focus-color);\n outline-offset: -2px;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--disabled {\n opacity: 0.4;\n cursor: not-allowed;\n color: var(--timepicker-text-color-disabled);\n }\n\n .time-picker__column-item--disabled:hover {\n background-color: transparent;\n color: var(--timepicker-text-color-disabled);\n }\n\n .time-picker__dropdown--top {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 4px;\n }\n\n .time-picker__clock-container {\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: var(--timepicker-background-color);\n }\n\n .time-picker__digital-inputs {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--timepicker-border-color);\n }\n\n .time-picker__time-input {\n width: 56px;\n height: 32px;\n text-align: center;\n padding: 4px 8px;\n border: 1px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n color: var(--timepicker-text-color);\n background-color: var(--timepicker-background-color);\n transition: all 0.3s;\n outline: none;\n }\n\n .time-picker__time-input:hover {\n border-color: var(--timepicker-primary-color-hover);\n }\n\n .time-picker__time-input:focus {\n border-color: var(--timepicker-primary-color);\n box-shadow: 0 0 0 2px var(--timepicker-primary-color-active);\n }\n\n .time-picker__separator {\n font-weight: 600;\n color: var(--timepicker-text-color);\n }\n\n .time-picker__period-toggle {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius);\n overflow: hidden;\n margin-left: 8px;\n }\n\n .time-picker__period-button {\n background: var(--timepicker-background-color);\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n color: var(--timepicker-text-color);\n cursor: pointer;\n transition: all 0.3s;\n min-width: 44px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .time-picker__period-button:hover {\n background-color: var(--timepicker-item-hover-bg);\n color: var(--timepicker-text-color);\n }\n\n .time-picker__period-button--active {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n }\n\n .time-picker__period-button + .time-picker__period-button {\n border-top: 1px solid var(--timepicker-border-color);\n }\n\n .time-picker__clock {\n width: var(--timepicker-clock-size);\n height: var(--timepicker-clock-size);\n border: 1px solid var(--timepicker-border-color);\n border-radius: 50%;\n background-color: var(--timepicker-background-color);\n position: relative;\n margin: 0 auto;\n user-select: none;\n }\n\n .time-picker__clock-face {\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .time-picker__clock-number {\n position: absolute;\n color: var(--timepicker-text-color);\n font-size: 14px;\n font-weight: 400;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 50%;\n transition: all 0.3s;\n transform: translate(-50%, -50%);\n }\n\n .time-picker__clock-number:hover {\n background-color: var(--timepicker-item-hover-bg);\n color: var(--timepicker-text-color);\n }\n\n .time-picker__clock-number--selected {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n }\n\n .time-picker__clock-hand {\n position: absolute;\n background-color: var(--timepicker-primary-color);\n transform-origin: bottom center;\n border-radius: 2px 2px 0 0;\n }\n\n .time-picker__clock-center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 6px;\n height: 6px;\n background-color: var(--timepicker-primary-color);\n border-radius: 50%;\n z-index: 10;\n }\n\n .time-picker__mode-buttons {\n display: flex;\n gap: 8px;\n justify-content: center;\n margin-bottom: 8px;\n }\n\n .time-picker__mode-button {\n padding: 6px 16px;\n border: 1px solid var(--timepicker-border-color);\n background: var(--timepicker-background-color);\n color: var(--timepicker-text-color);\n border-radius: var(--timepicker-border-radius);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.3s;\n outline: none;\n }\n\n .time-picker__mode-button:hover {\n background-color: var(--timepicker-item-hover-bg);\n border-color: var(--timepicker-primary-color-hover);\n }\n\n .time-picker__mode-button--active {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n border-color: var(--timepicker-primary-color);\n }\n\n .time-picker__actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n padding: 8px 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: var(--timepicker-background-color);\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n /* Style nr-button components in actions */\n .time-picker__actions nr-button {\n border-radius: var(--nuraly-timepicker-local-border-radius);\n font-weight: 400;\n font-size: 14px;\n height: 28px;\n }\n\n \n\n .time-picker__label {\n display: block;\n margin-bottom: 8px;\n font-weight: 400;\n color: var(--timepicker-text-color);\n font-size: 14px;\n }\n\n .time-picker__helper-text {\n font-size: 14px;\n margin-top: 4px;\n color: var(--timepicker-text-color-secondary);\n }\n\n .time-picker__helper-text--error {\n color: var(--timepicker-error-color);\n }\n\n /* Size variants */\n :host([size=\"small\"]) {\n --timepicker-height: 32px;\n --timepicker-font-size: 12px;\n --timepicker-padding: 4px 8px;\n --timepicker-clock-size: 240px;\n }\n\n :host([size=\"large\"]) {\n --timepicker-height: 48px;\n --timepicker-font-size: 16px;\n --timepicker-padding: 12px 16px;\n --timepicker-clock-size: 320px;\n }\n\n /* Variant styles */\n :host([variant=\"outlined\"]) .time-picker__input {\n background-color: transparent;\n }\n\n :host([variant=\"filled\"]) .time-picker__input {\n border: none;\n background-color: var(--timepicker-border-color)33;\n border-bottom: 2px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius) var(--timepicker-border-radius) 0 0;\n }\n\n :host([variant=\"filled\"]) .time-picker__input:focus {\n border-bottom-color: var(--timepicker-focus-color);\n box-shadow: none;\n }\n\n /* Disabled state */\n :host([disabled]) .time-picker {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* Animation classes */\n .time-picker__dropdown {\n opacity: 0;\n transform: translateY(-8px);\n transition: opacity 0.2s, transform 0.2s;\n }\n\n .time-picker__dropdown--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Hide scrollbars on time inputs */\n .time-picker__time-input::-webkit-outer-spin-button,\n .time-picker__time-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .time-picker__time-input[type=\"number\"] {\n -moz-appearance: textfield;\n }\n\n /* Responsive adjustments */\n @media (max-width: 480px) {\n .time-picker__clock {\n --timepicker-clock-size: 240px;\n }\n \n .time-picker__dropdown {\n left: 50%;\n transform: translateX(-50%);\n width: 90vw;\n max-width: 320px;\n }\n }\n`;\n"]}
1
+ {"version":3,"file":"timepicker.style.js","sourceRoot":"","sources":["../../../../src/components/timepicker/timepicker.style.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8iBjB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { css } from 'lit';\nimport { styleVariables } from './timepicker.style.variables.js';\n\nexport const styles = css`\n ${styleVariables}\n :host {\n display: block;\n font-family: var(--nuraly-timepicker-local-font-family);\n font-size: var(--nuraly-timepicker-local-font-size);\n font-weight: var(--nuraly-timepicker-local-font-weight);\n }\n\n /* Host attribute selectors for configuration */\n :host([disabled]) {\n opacity: var(--nuraly-timepicker-local-disabled-opacity);\n pointer-events: none;\n }\n\n .time-picker {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n\n /* Input wrapper hover and focus states matching select component */\n .time-picker__input-wrapper:hover:not(.time-picker--disabled) nr-input {\n --nuraly-input-border-color: var(--nuraly-timepicker-local-border-color-hover);\n }\n\n .time-picker__input-wrapper:focus-within nr-input,\n .time-picker--open .time-picker__input-wrapper nr-input,\n .time-picker__input-wrapper nr-input:focus {\n --nuraly-input-border-color: var(--nuraly-timepicker-local-focus-color);\n --nuraly-input-box-shadow: 0 0 0 2px var(--nuraly-timepicker-local-focus-color)33;\n }\n\n /* Disabled state styling */\n .time-picker--disabled .time-picker__input-wrapper nr-input {\n --nuraly-input-background-color: var(--nuraly-timepicker-local-disabled-bg);\n --nuraly-input-border-color: var(--nuraly-timepicker-local-border-color);\n --nuraly-input-text-color: var(--nuraly-timepicker-local-text-color-disabled);\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .time-picker__input-wrapper {\n position: relative;\n width: 100%;\n }\n\n /* Style the nr-input component */\n .time-picker__input-wrapper nr-input {\n width: 100%;\n }\n\n /* Style the trigger button inside nr-input */\n .time-picker__trigger {\n padding: 4px !important;\n min-width: auto !important;\n width: 24px !important;\n height: 24px !important;\n border-radius: var(--nuraly-timepicker-local-border-radius-sm) !important;\n }\n\n .time-picker__trigger svg {\n width: 16px;\n height: 16px;\n color: var(--nuraly-timepicker-local-text-color-secondary);\n transition: color 0.2s ease;\n }\n\n .time-picker__trigger:hover svg {\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__trigger:hover {\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__trigger:disabled {\n color: var(--nuraly-timepicker-local-text-color-disabled);\n cursor: not-allowed;\n }\n\n .time-picker__trigger svg {\n width: 14px;\n height: 14px;\n }\n\n .time-picker__dropdown {\n position: absolute;\n z-index: 1000;\n background-color: var(--nuraly-timepicker-local-background-color);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border: 1px solid var(--nuraly-timepicker-local-border-color);\n border-radius: var(--nuraly-timepicker-local-border-radius);\n box-shadow: var(--nuraly-timepicker-local-box-shadow);\n width: 100%;\n min-width: 180px;\n /* Animation and positioning - simplified to match select */\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition: all 0.2s ease-in-out;\n /* Create new stacking context to prevent layering issues */\n isolation: isolate;\n /* Ensure solid background to prevent visual bleed-through */\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n /* Force above other elements */\n transform: translateZ(0);\n animation: dropdown-enter 0.15s ease-out;\n overflow: hidden;\n }\n\n .time-picker__dropdown.placement-top {\n animation: dropdown-enter-top 0.15s ease-out;\n }\n\n @keyframes dropdown-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes dropdown-enter-top {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .time-picker__columns {\n display: flex;\n max-height: 216px;\n overflow: hidden;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n background: var(--nuraly-timepicker-local-background-color);\n padding: 4px 0;\n }\n\n .time-picker__column {\n flex: 1;\n border-right: 1px solid rgba(0, 0, 0, 0.06);\n background: transparent;\n overflow: hidden;\n position: relative;\n min-width: 60px;\n }\n\n .time-picker__column:last-child {\n border-right: none;\n }\n\n .time-picker__column-list {\n max-height: 216px;\n overflow-y: scroll;\n overflow-x: hidden;\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.06) transparent;\n /* Custom scrollbar styling to match modern design */\n padding: 4px 2px;\n scroll-behavior: smooth;\n /* Force scrollbar to always be visible */\n -webkit-overflow-scrolling: touch;\n }\n\n .time-picker__column-list::-webkit-scrollbar {\n width: 6px;\n /* Always show scrollbar */\n -webkit-appearance: none;\n }\n\n .time-picker__column-list::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.04);\n margin: 8px 0;\n border-radius: var(--nuraly-timepicker-local-border-radius-sm);\n }\n\n .time-picker__column-list::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.2);\n border-radius: var(--nuraly-timepicker-local-border-radius-sm);\n transition: background-color 0.2s ease;\n /* Ensure thumb is always visible */\n min-height: 20px;\n }\n\n .time-picker__column-list::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 0.3);\n }\n\n .time-picker__column-list {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.2) rgba(0, 0, 0, 0.04);\n scroll-behavior: smooth;\n }\n\n .time-picker__column-item {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n color: var(--nuraly-timepicker-local-text-color);\n font-size: var(--nuraly-timepicker-local-font-size);\n font-weight: var(--nuraly-timepicker-local-font-weight);\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n position: relative;\n user-select: none;\n line-height: var(--nuraly-timepicker-local-line-height);\n min-height: 28px;\n margin: 1px 2px;\n }\n\n .time-picker__column-item:hover {\n background-color: var(--nuraly-timepicker-local-control-item-bg-hover);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item:active {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--selected {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n font-weight: 600;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n }\n\n .time-picker__column-item--selected:hover {\n background-color: var(--nuraly-timepicker-local-control-item-bg-active);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--focused {\n background-color: var(--nuraly-timepicker-local-control-item-bg-hover);\n outline: 2px solid var(--nuraly-timepicker-local-focus-color);\n outline-offset: -2px;\n border-radius: var(--nuraly-timepicker-local-border-radius);\n color: var(--nuraly-timepicker-local-primary-color);\n }\n\n .time-picker__column-item--disabled {\n opacity: 0.4;\n cursor: not-allowed;\n color: var(--timepicker-text-color-disabled);\n }\n\n .time-picker__column-item--disabled:hover {\n background-color: transparent;\n color: var(--timepicker-text-color-disabled);\n }\n\n .time-picker__dropdown--top {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 4px;\n }\n\n .time-picker__clock-container {\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: var(--timepicker-background-color);\n }\n\n .time-picker__digital-inputs {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n padding: 8px 12px;\n border-bottom: 1px solid var(--timepicker-border-color);\n }\n\n .time-picker__time-input {\n width: 56px;\n height: 32px;\n text-align: center;\n padding: 4px 8px;\n border: 1px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n color: var(--timepicker-text-color);\n background-color: var(--timepicker-background-color);\n transition: all 0.3s;\n outline: none;\n }\n\n .time-picker__time-input:hover {\n border-color: var(--timepicker-primary-color-hover);\n }\n\n .time-picker__time-input:focus {\n border-color: var(--timepicker-primary-color);\n box-shadow: 0 0 0 2px var(--timepicker-primary-color-active);\n }\n\n .time-picker__separator {\n font-weight: 600;\n color: var(--timepicker-text-color);\n }\n\n .time-picker__period-toggle {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius);\n overflow: hidden;\n margin-left: 8px;\n }\n\n .time-picker__period-button {\n background: var(--timepicker-background-color);\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n color: var(--timepicker-text-color);\n cursor: pointer;\n transition: all 0.3s;\n min-width: 44px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .time-picker__period-button:hover {\n background-color: var(--timepicker-item-hover-bg);\n color: var(--timepicker-text-color);\n }\n\n .time-picker__period-button--active {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n }\n\n .time-picker__period-button + .time-picker__period-button {\n border-top: 1px solid var(--timepicker-border-color);\n }\n\n .time-picker__clock {\n width: var(--timepicker-clock-size);\n height: var(--timepicker-clock-size);\n border: 1px solid var(--timepicker-border-color);\n border-radius: 50%;\n background-color: var(--timepicker-background-color);\n position: relative;\n margin: 0 auto;\n user-select: none;\n }\n\n .time-picker__clock-face {\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .time-picker__clock-number {\n position: absolute;\n color: var(--timepicker-text-color);\n font-size: 14px;\n font-weight: 400;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 50%;\n transition: all 0.3s;\n transform: translate(-50%, -50%);\n }\n\n .time-picker__clock-number:hover {\n background-color: var(--timepicker-item-hover-bg);\n color: var(--timepicker-text-color);\n }\n\n .time-picker__clock-number--selected {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n }\n\n .time-picker__clock-hand {\n position: absolute;\n background-color: var(--timepicker-primary-color);\n transform-origin: bottom center;\n border-radius: 2px 2px 0 0;\n }\n\n .time-picker__clock-center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 6px;\n height: 6px;\n background-color: var(--timepicker-primary-color);\n border-radius: 50%;\n z-index: 10;\n }\n\n .time-picker__mode-buttons {\n display: flex;\n gap: 8px;\n justify-content: center;\n margin-bottom: 8px;\n }\n\n .time-picker__mode-button {\n padding: 6px 16px;\n border: 1px solid var(--timepicker-border-color);\n background: var(--timepicker-background-color);\n color: var(--timepicker-text-color);\n border-radius: var(--timepicker-border-radius);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.3s;\n outline: none;\n }\n\n .time-picker__mode-button:hover {\n background-color: var(--timepicker-item-hover-bg);\n border-color: var(--timepicker-primary-color-hover);\n }\n\n .time-picker__mode-button--active {\n background-color: var(--timepicker-primary-color);\n color: #fff;\n border-color: var(--timepicker-primary-color);\n }\n\n .time-picker__actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n padding: 8px 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: var(--timepicker-background-color);\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n /* Style nr-button components in actions */\n .time-picker__actions nr-button {\n border-radius: var(--nuraly-timepicker-local-border-radius);\n font-weight: 400;\n font-size: 14px;\n height: 28px;\n }\n\n \n\n .time-picker__label {\n display: block;\n margin-bottom: 8px;\n font-weight: 400;\n color: var(--timepicker-text-color);\n font-size: 14px;\n }\n\n .time-picker__helper-text {\n font-size: 14px;\n margin-top: 4px;\n color: var(--timepicker-text-color-secondary);\n }\n\n .time-picker__helper-text--error {\n color: var(--timepicker-error-color);\n }\n\n /* Size variants */\n :host([size=\"small\"]) {\n --timepicker-height: 32px;\n --timepicker-font-size: 12px;\n --timepicker-padding: 4px 8px;\n --timepicker-clock-size: 240px;\n }\n\n :host([size=\"large\"]) {\n --timepicker-height: 48px;\n --timepicker-font-size: 16px;\n --timepicker-padding: 12px 16px;\n --timepicker-clock-size: 320px;\n }\n\n /* Variant styles */\n :host([variant=\"outlined\"]) .time-picker__input {\n background-color: transparent;\n }\n\n :host([variant=\"filled\"]) .time-picker__input {\n border: none;\n background-color: var(--timepicker-border-color)33;\n border-bottom: 2px solid var(--timepicker-border-color);\n border-radius: var(--timepicker-border-radius) var(--timepicker-border-radius) 0 0;\n }\n\n :host([variant=\"filled\"]) .time-picker__input:focus {\n border-bottom-color: var(--timepicker-focus-color);\n box-shadow: none;\n }\n\n /* Disabled state */\n :host([disabled]) .time-picker {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* Animation classes */\n .time-picker__dropdown {\n opacity: 0;\n transform: translateY(-8px);\n transition: opacity 0.2s, transform 0.2s;\n }\n\n .time-picker__dropdown--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Hide scrollbars on time inputs */\n .time-picker__time-input::-webkit-outer-spin-button,\n .time-picker__time-input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .time-picker__time-input[type=\"number\"] {\n -moz-appearance: textfield;\n }\n\n /* Responsive adjustments */\n @media (max-width: 480px) {\n .time-picker__clock {\n --timepicker-clock-size: 240px;\n }\n \n .time-picker__dropdown {\n left: 50%;\n transform: translateX(-50%);\n width: 90vw;\n max-width: 320px;\n }\n }\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.style.variables.js","sourceRoot":"","sources":["../../../src/components/timepicker/timepicker.style.variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHhC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styleVariables = css`\n :host {\n /* ========================================\n * TIMEPICKER THEME-AWARE VARIABLES\n * Uses CSS custom properties from theme files\n * ======================================== */\n\n /* Base timepicker styling - uses theme variables with fallbacks */\n --nuraly-timepicker-local-background-color: var(--nuraly-color-timepicker-background, #ffffff);\n --nuraly-timepicker-local-text-color: var(--nuraly-color-timepicker-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-font-family: var(--nuraly-font-family-timepicker, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif);\n --nuraly-timepicker-local-font-size: var(--nuraly-font-size-timepicker, 14px);\n \n /* Timepicker borders - theme-aware */\n --nuraly-timepicker-local-border-color: var(--nuraly-color-timepicker-border, #d9d9d9);\n --nuraly-timepicker-local-border-width: var(--nuraly-border-width-timepicker, 1px);\n --nuraly-timepicker-local-border-radius: var(--nuraly-border-radius-timepicker, 6px);\n --nuraly-timepicker-local-border-radius-sm: var(--nuraly-border-radius-timepicker-sm, calc(var(--nuraly-border-radius-timepicker, 6px) * 0.5));\n \n /* Primary and selection colors - theme-aware */\n --nuraly-timepicker-local-primary-color: var(--nuraly-color-timepicker-primary, #1890ff);\n --nuraly-timepicker-local-focus-color: var(--nuraly-color-timepicker-focus, #1890ff);\n --nuraly-timepicker-local-border-color-hover: var(--nuraly-color-timepicker-border-hover, #1890ff);\n --nuraly-timepicker-local-selected-color: var(--nuraly-color-timepicker-selected, #1890ff);\n --nuraly-timepicker-local-selected-text-color: var(--nuraly-color-timepicker-selected-text, #ffffff);\n --nuraly-timepicker-local-hover-color: var(--nuraly-color-timepicker-hover, #f5f5f5);\n --nuraly-timepicker-local-clock-hand-color: var(--nuraly-color-timepicker-clock-hand, #1890ff);\n \n /* Control item states - theme-aware */\n --nuraly-timepicker-local-control-item-bg-hover: var(--nuraly-color-timepicker-control-item-bg-hover, #f5f5f5);\n --nuraly-timepicker-local-control-item-bg-active: var(--nuraly-color-timepicker-control-item-bg-active, #e6f7ff);\n \n /* Text colors - theme-aware */\n --nuraly-timepicker-local-text-color-secondary: var(--nuraly-color-timepicker-text-secondary, rgba(0, 0, 0, 0.45));\n --nuraly-timepicker-local-text-color-disabled: var(--nuraly-color-timepicker-text-disabled, rgba(0, 0, 0, 0.25));\n \n /* Disabled states - theme-aware */\n --nuraly-timepicker-local-disabled-color: var(--nuraly-color-timepicker-disabled, #f5f5f5);\n --nuraly-timepicker-local-disabled-bg: var(--nuraly-color-timepicker-disabled-bg, #f5f5f5);\n --nuraly-timepicker-local-disabled-text-color: var(--nuraly-color-timepicker-disabled-text, rgba(0, 0, 0, 0.25));\n --nuraly-timepicker-local-disabled-opacity: var(--nuraly-opacity-timepicker-disabled, 1);\n \n /* Input field colors - theme-aware */\n --nuraly-timepicker-local-input-background: var(--nuraly-color-timepicker-input-background, #ffffff);\n --nuraly-timepicker-local-input-border-color: var(--nuraly-color-timepicker-input-border, #d9d9d9);\n --nuraly-timepicker-local-input-focus-border-color: var(--nuraly-color-timepicker-input-focus-border, #1890ff);\n --nuraly-timepicker-local-input-text-color: var(--nuraly-color-timepicker-input-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-input-placeholder-color: var(--nuraly-color-timepicker-input-placeholder, rgba(0, 0, 0, 0.25));\n \n /* Dropdown and clock colors - theme-aware */\n --nuraly-timepicker-local-dropdown-background: var(--nuraly-color-timepicker-dropdown-background, #ffffff);\n --nuraly-timepicker-local-clock-background: var(--nuraly-color-timepicker-clock-background, #ffffff);\n --nuraly-timepicker-local-clock-text-color: var(--nuraly-color-timepicker-clock-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-clock-face-color: var(--nuraly-color-timepicker-clock-face, rgba(0, 0, 0, 0.45));\n --nuraly-timepicker-local-clock-border-color: var(--nuraly-color-timepicker-clock-border, #f0f0f0);\n \n /* Item selection colors - theme-aware */\n --nuraly-timepicker-local-item-hover-color: var(--nuraly-color-timepicker-item-hover, #f5f5f5);\n --nuraly-timepicker-local-item-active-color: var(--nuraly-color-timepicker-item-active, #e6f7ff);\n --nuraly-timepicker-local-item-selected-color: var(--nuraly-color-timepicker-item-selected, #1890ff);\n --nuraly-timepicker-local-item-selected-text-color: var(--nuraly-color-timepicker-item-selected-text, #ffffff);\n \n /* Error/warning/success colors - theme-aware */\n --nuraly-timepicker-local-error-color: var(--nuraly-color-timepicker-error, #ff4d4f);\n --nuraly-timepicker-local-warning-color: var(--nuraly-color-timepicker-warning, #faad14);\n --nuraly-timepicker-local-success-color: var(--nuraly-color-timepicker-success, #52c41a);\n \n /* Layout and sizing - theme-aware */\n --nuraly-timepicker-local-width: var(--nuraly-size-timepicker-width, 120px);\n --nuraly-timepicker-local-height: var(--nuraly-size-timepicker-height, 32px);\n --nuraly-timepicker-local-dropdown-width: var(--nuraly-size-timepicker-dropdown-width, 180px);\n --nuraly-timepicker-local-clock-size: var(--nuraly-size-timepicker-clock, 200px);\n \n /* Typography - theme-aware */\n --nuraly-timepicker-local-font-weight: var(--nuraly-font-weight-timepicker, 400);\n --nuraly-timepicker-local-line-height: var(--nuraly-line-height-timepicker, 1.5715);\n --nuraly-timepicker-local-clock-font-size: var(--nuraly-font-size-timepicker-clock, 14px);\n \n /* Spacing - theme-aware */\n --nuraly-timepicker-local-gap: var(--nuraly-spacing-timepicker-gap, 4px);\n --nuraly-timepicker-local-dropdown-padding: var(--nuraly-spacing-timepicker-dropdown-padding, 8px);\n --nuraly-timepicker-local-input-padding: var(--nuraly-spacing-timepicker-input-padding, 4px 11px);\n --nuraly-timepicker-local-padding: var(--nuraly-spacing-timepicker-padding, 4px 11px);\n \n /* Borders - theme-aware */\n --nuraly-timepicker-local-input-border-width: var(--nuraly-border-width-timepicker-input, 1px);\n --nuraly-timepicker-local-focus-border-width: var(--nuraly-border-width-timepicker-focus, 2px);\n \n /* Shadows - theme-aware */\n --nuraly-timepicker-local-shadow-color: var(--nuraly-color-timepicker-shadow, rgba(0, 0, 0, 0.15));\n --nuraly-timepicker-local-box-shadow: var(--nuraly-shadow-timepicker-box, 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05));\n --nuraly-timepicker-local-input-focus-shadow: var(--nuraly-shadow-timepicker-input-focus, 0 0 0 2px rgba(24, 144, 255, 0.2));\n \n /* States - theme-aware */\n --nuraly-timepicker-local-hover-opacity: var(--nuraly-opacity-timepicker-hover, 1);\n \n /* Animation and transitions - theme-aware */\n --nuraly-timepicker-local-transition-duration: var(--nuraly-transition-duration-timepicker, 0.2s);\n --nuraly-timepicker-local-transition-timing: var(--nuraly-transition-timing-timepicker, ease-in-out);\n \n /* Z-index - theme-aware */\n --nuraly-timepicker-local-dropdown-z-index: var(--nuraly-z-index-timepicker-dropdown, 1050);\n \n /* Icon sizes - theme-aware */\n --nuraly-timepicker-local-icon-size: var(--nuraly-size-timepicker-icon, 14px);\n \n /* Size variants - theme-aware */\n --nuraly-timepicker-local-small-font-size: var(--nuraly-font-size-timepicker-small, 12px);\n --nuraly-timepicker-local-small-padding: var(--nuraly-spacing-timepicker-small-padding, 0px 7px);\n --nuraly-timepicker-local-small-height: var(--nuraly-size-timepicker-small-height, 24px);\n \n --nuraly-timepicker-local-medium-font-size: var(--nuraly-font-size-timepicker-medium, 14px);\n --nuraly-timepicker-local-medium-padding: var(--nuraly-spacing-timepicker-medium-padding, 4px 11px);\n --nuraly-timepicker-local-medium-height: var(--nuraly-size-timepicker-medium-height, 32px);\n \n --nuraly-timepicker-local-large-font-size: var(--nuraly-font-size-timepicker-large, 16px);\n --nuraly-timepicker-local-large-padding: var(--nuraly-spacing-timepicker-large-padding, 6px 11px);\n --nuraly-timepicker-local-large-height: var(--nuraly-size-timepicker-large-height, 40px);\n }\n`;"]}
1
+ {"version":3,"file":"timepicker.style.variables.js","sourceRoot":"","sources":["../../../../src/components/timepicker/timepicker.style.variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHhC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styleVariables = css`\n :host {\n /* ========================================\n * TIMEPICKER THEME-AWARE VARIABLES\n * Uses CSS custom properties from theme files\n * ======================================== */\n\n /* Base timepicker styling - uses theme variables with fallbacks */\n --nuraly-timepicker-local-background-color: var(--nuraly-color-timepicker-background, #ffffff);\n --nuraly-timepicker-local-text-color: var(--nuraly-color-timepicker-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-font-family: var(--nuraly-font-family-timepicker, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif);\n --nuraly-timepicker-local-font-size: var(--nuraly-font-size-timepicker, 14px);\n \n /* Timepicker borders - theme-aware */\n --nuraly-timepicker-local-border-color: var(--nuraly-color-timepicker-border, #d9d9d9);\n --nuraly-timepicker-local-border-width: var(--nuraly-border-width-timepicker, 1px);\n --nuraly-timepicker-local-border-radius: var(--nuraly-border-radius-timepicker, 6px);\n --nuraly-timepicker-local-border-radius-sm: var(--nuraly-border-radius-timepicker-sm, calc(var(--nuraly-border-radius-timepicker, 6px) * 0.5));\n \n /* Primary and selection colors - theme-aware */\n --nuraly-timepicker-local-primary-color: var(--nuraly-color-timepicker-primary, #1890ff);\n --nuraly-timepicker-local-focus-color: var(--nuraly-color-timepicker-focus, #1890ff);\n --nuraly-timepicker-local-border-color-hover: var(--nuraly-color-timepicker-border-hover, #1890ff);\n --nuraly-timepicker-local-selected-color: var(--nuraly-color-timepicker-selected, #1890ff);\n --nuraly-timepicker-local-selected-text-color: var(--nuraly-color-timepicker-selected-text, #ffffff);\n --nuraly-timepicker-local-hover-color: var(--nuraly-color-timepicker-hover, #f5f5f5);\n --nuraly-timepicker-local-clock-hand-color: var(--nuraly-color-timepicker-clock-hand, #1890ff);\n \n /* Control item states - theme-aware */\n --nuraly-timepicker-local-control-item-bg-hover: var(--nuraly-color-timepicker-control-item-bg-hover, #f5f5f5);\n --nuraly-timepicker-local-control-item-bg-active: var(--nuraly-color-timepicker-control-item-bg-active, #e6f7ff);\n \n /* Text colors - theme-aware */\n --nuraly-timepicker-local-text-color-secondary: var(--nuraly-color-timepicker-text-secondary, rgba(0, 0, 0, 0.45));\n --nuraly-timepicker-local-text-color-disabled: var(--nuraly-color-timepicker-text-disabled, rgba(0, 0, 0, 0.25));\n \n /* Disabled states - theme-aware */\n --nuraly-timepicker-local-disabled-color: var(--nuraly-color-timepicker-disabled, #f5f5f5);\n --nuraly-timepicker-local-disabled-bg: var(--nuraly-color-timepicker-disabled-bg, #f5f5f5);\n --nuraly-timepicker-local-disabled-text-color: var(--nuraly-color-timepicker-disabled-text, rgba(0, 0, 0, 0.25));\n --nuraly-timepicker-local-disabled-opacity: var(--nuraly-opacity-timepicker-disabled, 1);\n \n /* Input field colors - theme-aware */\n --nuraly-timepicker-local-input-background: var(--nuraly-color-timepicker-input-background, #ffffff);\n --nuraly-timepicker-local-input-border-color: var(--nuraly-color-timepicker-input-border, #d9d9d9);\n --nuraly-timepicker-local-input-focus-border-color: var(--nuraly-color-timepicker-input-focus-border, #1890ff);\n --nuraly-timepicker-local-input-text-color: var(--nuraly-color-timepicker-input-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-input-placeholder-color: var(--nuraly-color-timepicker-input-placeholder, rgba(0, 0, 0, 0.25));\n \n /* Dropdown and clock colors - theme-aware */\n --nuraly-timepicker-local-dropdown-background: var(--nuraly-color-timepicker-dropdown-background, #ffffff);\n --nuraly-timepicker-local-clock-background: var(--nuraly-color-timepicker-clock-background, #ffffff);\n --nuraly-timepicker-local-clock-text-color: var(--nuraly-color-timepicker-clock-text, rgba(0, 0, 0, 0.88));\n --nuraly-timepicker-local-clock-face-color: var(--nuraly-color-timepicker-clock-face, rgba(0, 0, 0, 0.45));\n --nuraly-timepicker-local-clock-border-color: var(--nuraly-color-timepicker-clock-border, #f0f0f0);\n \n /* Item selection colors - theme-aware */\n --nuraly-timepicker-local-item-hover-color: var(--nuraly-color-timepicker-item-hover, #f5f5f5);\n --nuraly-timepicker-local-item-active-color: var(--nuraly-color-timepicker-item-active, #e6f7ff);\n --nuraly-timepicker-local-item-selected-color: var(--nuraly-color-timepicker-item-selected, #1890ff);\n --nuraly-timepicker-local-item-selected-text-color: var(--nuraly-color-timepicker-item-selected-text, #ffffff);\n \n /* Error/warning/success colors - theme-aware */\n --nuraly-timepicker-local-error-color: var(--nuraly-color-timepicker-error, #ff4d4f);\n --nuraly-timepicker-local-warning-color: var(--nuraly-color-timepicker-warning, #faad14);\n --nuraly-timepicker-local-success-color: var(--nuraly-color-timepicker-success, #52c41a);\n \n /* Layout and sizing - theme-aware */\n --nuraly-timepicker-local-width: var(--nuraly-size-timepicker-width, 120px);\n --nuraly-timepicker-local-height: var(--nuraly-size-timepicker-height, 32px);\n --nuraly-timepicker-local-dropdown-width: var(--nuraly-size-timepicker-dropdown-width, 180px);\n --nuraly-timepicker-local-clock-size: var(--nuraly-size-timepicker-clock, 200px);\n \n /* Typography - theme-aware */\n --nuraly-timepicker-local-font-weight: var(--nuraly-font-weight-timepicker, 400);\n --nuraly-timepicker-local-line-height: var(--nuraly-line-height-timepicker, 1.5715);\n --nuraly-timepicker-local-clock-font-size: var(--nuraly-font-size-timepicker-clock, 14px);\n \n /* Spacing - theme-aware */\n --nuraly-timepicker-local-gap: var(--nuraly-spacing-timepicker-gap, 4px);\n --nuraly-timepicker-local-dropdown-padding: var(--nuraly-spacing-timepicker-dropdown-padding, 8px);\n --nuraly-timepicker-local-input-padding: var(--nuraly-spacing-timepicker-input-padding, 4px 11px);\n --nuraly-timepicker-local-padding: var(--nuraly-spacing-timepicker-padding, 4px 11px);\n \n /* Borders - theme-aware */\n --nuraly-timepicker-local-input-border-width: var(--nuraly-border-width-timepicker-input, 1px);\n --nuraly-timepicker-local-focus-border-width: var(--nuraly-border-width-timepicker-focus, 2px);\n \n /* Shadows - theme-aware */\n --nuraly-timepicker-local-shadow-color: var(--nuraly-color-timepicker-shadow, rgba(0, 0, 0, 0.15));\n --nuraly-timepicker-local-box-shadow: var(--nuraly-shadow-timepicker-box, 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05));\n --nuraly-timepicker-local-input-focus-shadow: var(--nuraly-shadow-timepicker-input-focus, 0 0 0 2px rgba(24, 144, 255, 0.2));\n \n /* States - theme-aware */\n --nuraly-timepicker-local-hover-opacity: var(--nuraly-opacity-timepicker-hover, 1);\n \n /* Animation and transitions - theme-aware */\n --nuraly-timepicker-local-transition-duration: var(--nuraly-transition-duration-timepicker, 0.2s);\n --nuraly-timepicker-local-transition-timing: var(--nuraly-transition-timing-timepicker, ease-in-out);\n \n /* Z-index - theme-aware */\n --nuraly-timepicker-local-dropdown-z-index: var(--nuraly-z-index-timepicker-dropdown, 1050);\n \n /* Icon sizes - theme-aware */\n --nuraly-timepicker-local-icon-size: var(--nuraly-size-timepicker-icon, 14px);\n \n /* Size variants - theme-aware */\n --nuraly-timepicker-local-small-font-size: var(--nuraly-font-size-timepicker-small, 12px);\n --nuraly-timepicker-local-small-padding: var(--nuraly-spacing-timepicker-small-padding, 0px 7px);\n --nuraly-timepicker-local-small-height: var(--nuraly-size-timepicker-small-height, 24px);\n \n --nuraly-timepicker-local-medium-font-size: var(--nuraly-font-size-timepicker-medium, 14px);\n --nuraly-timepicker-local-medium-padding: var(--nuraly-spacing-timepicker-medium-padding, 4px 11px);\n --nuraly-timepicker-local-medium-height: var(--nuraly-size-timepicker-medium-height, 32px);\n \n --nuraly-timepicker-local-large-font-size: var(--nuraly-font-size-timepicker-large, 16px);\n --nuraly-timepicker-local-large-padding: var(--nuraly-spacing-timepicker-large-padding, 6px 11px);\n --nuraly-timepicker-local-large-height: var(--nuraly-size-timepicker-large-height, 40px);\n }\n`;"]}
@@ -1 +1 @@
1
- {"version":3,"file":"timepicker.types.js","sourceRoot":"","sources":["../../../src/components/timepicker/timepicker.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,oCAAsB,CAAA;IACtB,gCAAkB,CAAA;AACpB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,kCAAW,CAAA;IACX,oCAAa,CAAA;AACf,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,qCAAO,CAAA;IACP,uCAAQ,CAAA;IACR,sCAAQ,CAAA;IACR,8CAAY,CAAA;IACZ,4CAAW,CAAA;AACb,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uBAAS,CAAA;IACT,uBAAS,CAAA;AACX,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAwDD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO;IACpC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS;CAC1B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU;IACvC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,YAAY;CAC7B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC;IACf,uBAAuB,EAAE,CAAC;IAC1B,uBAAuB,EAAE,CAAC;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,gBAAgB;IAC7B,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,eAAe;CACnB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,UAAU,CAAC,EAAE;CACtB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * Time format types - supports 12-hour and 24-hour formats\n */\nexport enum TimeFormat {\n TwentyFourHour = '24h',\n TwelveHour = '12h',\n}\n\n/**\n * Time picker display modes\n */\nexport enum TimePickerMode {\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n}\n\n/**\n * Time picker sizes\n */\nexport enum TimePickerSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n/**\n * Time picker variants\n */\nexport enum TimePickerVariant {\n Default = 'default',\n Outlined = 'outlined',\n Filled = 'filled',\n}\n\n/**\n * Time picker states for validation\n */\nexport enum TimePickerState {\n Default = 'default',\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n}\n\n/**\n * Time picker placement options for dropdown\n */\nexport enum TimePickerPlacement {\n Bottom = 'bottom',\n Top = 'top',\n Auto = 'auto',\n}\n\n/**\n * Time selection step increments\n */\nexport enum TimeStep {\n One = 1,\n Five = 5,\n Ten = 10,\n Fifteen = 15,\n Thirty = 30,\n}\n\n/**\n * Time period for 12-hour format\n */\nexport enum TimePeriod {\n AM = 'AM',\n PM = 'PM',\n}\n\n/**\n * Time structure interface\n */\nexport interface TimeValue {\n hours: number;\n minutes: number;\n seconds: number;\n period?: TimePeriod;\n}\n\n/**\n * Time picker option for dropdowns\n */\nexport interface TimePickerOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\n/**\n * Time validation constraints\n */\nexport interface TimeConstraints {\n minTime?: string;\n maxTime?: string;\n disabledTimes?: string[];\n enabledTimes?: string[];\n}\n\n/**\n * Time picker configuration\n */\nexport interface TimePickerConfig {\n format: TimeFormat;\n showSeconds: boolean;\n step: {\n hours: TimeStep;\n minutes: TimeStep;\n seconds: TimeStep;\n };\n use12HourClock: boolean;\n minuteInterval: number;\n secondInterval: number;\n}\n\n/**\n * Time picker event details\n */\nexport interface TimeChangeEventDetail {\n value: string;\n timeValue: TimeValue;\n formattedValue: string;\n}\n\n/**\n * Default time formats\n */\nexport const DEFAULT_TIME_FORMATS = {\n [TimeFormat.TwentyFourHour]: 'HH:mm',\n [TimeFormat.TwelveHour]: 'hh:mm A',\n} as const;\n\n/**\n * Default time format with seconds\n */\nexport const DEFAULT_TIME_FORMATS_WITH_SECONDS = {\n [TimeFormat.TwentyFourHour]: 'HH:mm:ss',\n [TimeFormat.TwelveHour]: 'hh:mm:ss A',\n} as const;\n\n/**\n * Time picker constants\n */\nexport const TIME_PICKER_CONSTANTS = {\n HOURS_24: 24,\n HOURS_12: 12,\n MINUTES: 60,\n SECONDS: 60,\n DEFAULT_STEP: 1,\n DEFAULT_MINUTE_INTERVAL: 1,\n DEFAULT_SECOND_INTERVAL: 1,\n} as const;\n\n/**\n * Time picker events\n */\nexport const TIME_PICKER_EVENTS = {\n TIME_CHANGE: 'nr-time-change',\n FOCUS: 'nr-focus',\n BLUR: 'nr-blur',\n CLOCK_OPEN: 'nr-clock-open',\n CLOCK_CLOSE: 'nr-clock-close',\n VALIDATION: 'nr-validation',\n} as const;\n\n/**\n * Empty time value\n */\nexport const EMPTY_TIME_VALUE: TimeValue = {\n hours: 0,\n minutes: 0,\n seconds: 0,\n period: TimePeriod.AM,\n};\n"]}
1
+ {"version":3,"file":"timepicker.types.js","sourceRoot":"","sources":["../../../../src/components/timepicker/timepicker.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,oCAAsB,CAAA;IACtB,gCAAkB,CAAA;AACpB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,kCAAW,CAAA;IACX,oCAAa,CAAA;AACf,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,qCAAO,CAAA;IACP,uCAAQ,CAAA;IACR,sCAAQ,CAAA;IACR,8CAAY,CAAA;IACZ,4CAAW,CAAA;AACb,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,uBAAS,CAAA;IACT,uBAAS,CAAA;AACX,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAwDD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO;IACpC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS;CAC1B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU;IACvC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,YAAY;CAC7B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC;IACf,uBAAuB,EAAE,CAAC;IAC1B,uBAAuB,EAAE,CAAC;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,gBAAgB;IAC7B,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,eAAe;CACnB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,UAAU,CAAC,EAAE;CACtB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\n/**\n * Time format types - supports 12-hour and 24-hour formats\n */\nexport enum TimeFormat {\n TwentyFourHour = '24h',\n TwelveHour = '12h',\n}\n\n/**\n * Time picker display modes\n */\nexport enum TimePickerMode {\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n}\n\n/**\n * Time picker sizes\n */\nexport enum TimePickerSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n/**\n * Time picker variants\n */\nexport enum TimePickerVariant {\n Default = 'default',\n Outlined = 'outlined',\n Filled = 'filled',\n}\n\n/**\n * Time picker states for validation\n */\nexport enum TimePickerState {\n Default = 'default',\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n}\n\n/**\n * Time picker placement options for dropdown\n */\nexport enum TimePickerPlacement {\n Bottom = 'bottom',\n Top = 'top',\n Auto = 'auto',\n}\n\n/**\n * Time selection step increments\n */\nexport enum TimeStep {\n One = 1,\n Five = 5,\n Ten = 10,\n Fifteen = 15,\n Thirty = 30,\n}\n\n/**\n * Time period for 12-hour format\n */\nexport enum TimePeriod {\n AM = 'AM',\n PM = 'PM',\n}\n\n/**\n * Time structure interface\n */\nexport interface TimeValue {\n hours: number;\n minutes: number;\n seconds: number;\n period?: TimePeriod;\n}\n\n/**\n * Time picker option for dropdowns\n */\nexport interface TimePickerOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\n/**\n * Time validation constraints\n */\nexport interface TimeConstraints {\n minTime?: string;\n maxTime?: string;\n disabledTimes?: string[];\n enabledTimes?: string[];\n}\n\n/**\n * Time picker configuration\n */\nexport interface TimePickerConfig {\n format: TimeFormat;\n showSeconds: boolean;\n step: {\n hours: TimeStep;\n minutes: TimeStep;\n seconds: TimeStep;\n };\n use12HourClock: boolean;\n minuteInterval: number;\n secondInterval: number;\n}\n\n/**\n * Time picker event details\n */\nexport interface TimeChangeEventDetail {\n value: string;\n timeValue: TimeValue;\n formattedValue: string;\n}\n\n/**\n * Default time formats\n */\nexport const DEFAULT_TIME_FORMATS = {\n [TimeFormat.TwentyFourHour]: 'HH:mm',\n [TimeFormat.TwelveHour]: 'hh:mm A',\n} as const;\n\n/**\n * Default time format with seconds\n */\nexport const DEFAULT_TIME_FORMATS_WITH_SECONDS = {\n [TimeFormat.TwentyFourHour]: 'HH:mm:ss',\n [TimeFormat.TwelveHour]: 'hh:mm:ss A',\n} as const;\n\n/**\n * Time picker constants\n */\nexport const TIME_PICKER_CONSTANTS = {\n HOURS_24: 24,\n HOURS_12: 12,\n MINUTES: 60,\n SECONDS: 60,\n DEFAULT_STEP: 1,\n DEFAULT_MINUTE_INTERVAL: 1,\n DEFAULT_SECOND_INTERVAL: 1,\n} as const;\n\n/**\n * Time picker events\n */\nexport const TIME_PICKER_EVENTS = {\n TIME_CHANGE: 'nr-time-change',\n FOCUS: 'nr-focus',\n BLUR: 'nr-blur',\n CLOCK_OPEN: 'nr-clock-open',\n CLOCK_CLOSE: 'nr-clock-close',\n VALIDATION: 'nr-validation',\n} as const;\n\n/**\n * Empty time value\n */\nexport const EMPTY_TIME_VALUE: TimeValue = {\n hours: 0,\n minutes: 0,\n seconds: 0,\n period: TimePeriod.AM,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"time.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/timepicker/utils/time.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG3E;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS;IAS3G;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,UAAsC,GAAG,SAAS,GAAG,IAAI;IAc5G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,UAAsC,EAAE,WAAW,GAAE,OAAe,GAAG,MAAM;IAY7H;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,SAAS;IASlC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM;IAM9D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAI/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,SAAS;IAc9G;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,GAAE,MAAW,EAAE,MAAM,GAAE,UAAsC,EAAE,WAAW,GAAE,OAAe,GAAG,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IAiBtK;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS;IAU3E;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO;IAYpG;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;IAQ7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI;CAK/D"}
1
+ {"version":3,"file":"time.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/timepicker/utils/time.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG3E;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS;IAS3G;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,UAAsC,GAAG,SAAS,GAAG,IAAI;IAc5G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA0B9B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,UAAsC,EAAE,WAAW,GAAE,OAAe,GAAG,MAAM;IAY7H;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,SAAS;IASlC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM;IAM9D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAI/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,SAAS;IAc9G;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,GAAE,MAAW,EAAE,MAAM,GAAE,UAAsC,EAAE,WAAW,GAAE,OAAe,GAAG,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IAiBtK;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS;IAU3E;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO;IAYpG;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;IAQ7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI;CAK/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.utils.js","sourceRoot":"","sources":["../../../../src/components/timepicker/utils/time.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { TimeValue, TimePeriod, TimeFormat } from '../timepicker.types.js';\nimport { TIME_BOUNDARIES } from '../timepicker.constants.js';\n\n/**\n * Time utility functions for time picker component\n */\nexport class TimeUtils {\n /**\n * Create a new TimeValue object\n */\n static createTimeValue(hours: number, minutes: number, seconds: number = 0, period?: TimePeriod): TimeValue {\n return {\n hours: Math.max(0, Math.min(hours, 23)),\n minutes: Math.max(0, Math.min(minutes, 59)),\n seconds: Math.max(0, Math.min(seconds, 59)),\n period,\n };\n }\n\n /**\n * Parse time string to TimeValue\n */\n static parseTimeString(timeString: string, format: TimeFormat = TimeFormat.TwentyFourHour): TimeValue | null {\n if (!timeString?.trim()) {\n return null;\n }\n\n const cleanTime = timeString.trim().toUpperCase();\n\n if (format === TimeFormat.TwelveHour) {\n return this.parse12HourTime(cleanTime);\n } else {\n return this.parse24HourTime(cleanTime);\n }\n }\n\n /**\n * Parse 24-hour format time string\n */\n private static parse24HourTime(timeString: string): TimeValue | null {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/);\n \n if (!match) {\n return null;\n }\n\n const hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n\n if (!this.isValidTime24(hours, minutes, seconds)) {\n return null;\n }\n\n return this.createTimeValue(hours, minutes, seconds);\n }\n\n /**\n * Parse 12-hour format time string\n */\n private static parse12HourTime(timeString: string): TimeValue | null {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s?(AM|PM)$/);\n \n if (!match) {\n return null;\n }\n\n let hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n const period = match[4] as TimePeriod;\n\n if (!this.isValidTime12(hours, minutes, seconds)) {\n return null;\n }\n\n // Convert to 24-hour format for internal storage\n if (period === TimePeriod.PM && hours !== 12) {\n hours += 12;\n } else if (period === TimePeriod.AM && hours === 12) {\n hours = 0;\n }\n\n return this.createTimeValue(hours, minutes, seconds, period);\n }\n\n /**\n * Format TimeValue to string\n */\n static formatTimeValue(time: TimeValue, format: TimeFormat = TimeFormat.TwentyFourHour, showSeconds: boolean = false): string {\n if (!time) {\n return '';\n }\n\n if (format === TimeFormat.TwelveHour) {\n return this.format12HourTime(time, showSeconds);\n } else {\n return this.format24HourTime(time, showSeconds);\n }\n }\n\n /**\n * Format time in 24-hour format\n */\n private static format24HourTime(time: TimeValue, showSeconds: boolean): string {\n const hours = time.hours.toString().padStart(2, '0');\n const minutes = time.minutes.toString().padStart(2, '0');\n \n if (showSeconds) {\n const seconds = time.seconds.toString().padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n \n return `${hours}:${minutes}`;\n }\n\n /**\n * Format time in 12-hour format\n */\n private static format12HourTime(time: TimeValue, showSeconds: boolean): string {\n let hours = time.hours;\n const minutes = time.minutes.toString().padStart(2, '0');\n const period = hours >= 12 ? TimePeriod.PM : TimePeriod.AM;\n\n // Convert to 12-hour format\n if (hours === 0) {\n hours = 12;\n } else if (hours > 12) {\n hours -= 12;\n }\n\n const hoursStr = hours.toString();\n \n if (showSeconds) {\n const seconds = time.seconds.toString().padStart(2, '0');\n return `${hoursStr}:${minutes}:${seconds} ${period}`;\n }\n \n return `${hoursStr}:${minutes} ${period}`;\n }\n\n /**\n * Get current time as TimeValue\n */\n static getCurrentTime(): TimeValue {\n const now = new Date();\n return this.createTimeValue(\n now.getHours(),\n now.getMinutes(),\n now.getSeconds()\n );\n }\n\n /**\n * Compare two TimeValue objects\n */\n static compareTime(time1: TimeValue, time2: TimeValue): number {\n const totalSeconds1 = time1.hours * 3600 + time1.minutes * 60 + time1.seconds;\n const totalSeconds2 = time2.hours * 3600 + time2.minutes * 60 + time2.seconds;\n return totalSeconds1 - totalSeconds2;\n }\n\n /**\n * Check if two TimeValue objects are equal\n */\n static isTimeEqual(time1: TimeValue, time2: TimeValue): boolean {\n return this.compareTime(time1, time2) === 0;\n }\n\n /**\n * Validate 24-hour time components\n */\n private static isValidTime24(hours: number, minutes: number, seconds: number = 0): boolean {\n return (\n hours >= TIME_BOUNDARIES.MIN_HOUR_24 && \n hours <= TIME_BOUNDARIES.MAX_HOUR_24 &&\n minutes >= TIME_BOUNDARIES.MIN_MINUTE && \n minutes <= TIME_BOUNDARIES.MAX_MINUTE &&\n seconds >= TIME_BOUNDARIES.MIN_SECOND && \n seconds <= TIME_BOUNDARIES.MAX_SECOND\n );\n }\n\n /**\n * Validate 12-hour time components\n */\n private static isValidTime12(hours: number, minutes: number, seconds: number = 0): boolean {\n return (\n hours >= TIME_BOUNDARIES.MIN_HOUR_12 && \n hours <= TIME_BOUNDARIES.MAX_HOUR_12 &&\n minutes >= TIME_BOUNDARIES.MIN_MINUTE && \n minutes <= TIME_BOUNDARIES.MAX_MINUTE &&\n seconds >= TIME_BOUNDARIES.MIN_SECOND && \n seconds <= TIME_BOUNDARIES.MAX_SECOND\n );\n }\n\n /**\n * Add time to a TimeValue\n */\n static addTime(time: TimeValue, hoursToAdd: number, minutesToAdd: number, secondsToAdd: number = 0): TimeValue {\n let totalSeconds = time.hours * 3600 + time.minutes * 60 + time.seconds;\n totalSeconds += hoursToAdd * 3600 + minutesToAdd * 60 + secondsToAdd;\n\n // Handle overflow/underflow\n totalSeconds = ((totalSeconds % 86400) + 86400) % 86400;\n\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n\n return this.createTimeValue(hours, minutes, seconds);\n }\n\n /**\n * Generate time options for dropdowns\n */\n static generateTimeOptions(interval: number = 15, format: TimeFormat = TimeFormat.TwentyFourHour, showSeconds: boolean = false): Array<{value: string, label: string}> {\n const options: Array<{value: string, label: string}> = [];\n \n for (let hour = 0; hour < 24; hour++) {\n for (let minute = 0; minute < 60; minute += interval) {\n const timeValue = this.createTimeValue(hour, minute, 0);\n const formatted = this.formatTimeValue(timeValue, format, showSeconds);\n options.push({\n value: formatted,\n label: formatted,\n });\n }\n }\n\n return options;\n }\n\n /**\n * Round time to nearest interval\n */\n static roundToInterval(time: TimeValue, intervalMinutes: number): TimeValue {\n const totalMinutes = time.hours * 60 + time.minutes;\n const roundedMinutes = Math.round(totalMinutes / intervalMinutes) * intervalMinutes;\n \n const hours = Math.floor(roundedMinutes / 60) % 24;\n const minutes = roundedMinutes % 60;\n\n return this.createTimeValue(hours, minutes, time.seconds);\n }\n\n /**\n * Check if time is within range\n */\n static isTimeInRange(time: TimeValue, minTime: TimeValue | null, maxTime: TimeValue | null): boolean {\n if (minTime && this.compareTime(time, minTime) < 0) {\n return false;\n }\n \n if (maxTime && this.compareTime(time, maxTime) > 0) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Convert Date object to TimeValue\n */\n static dateToTimeValue(date: Date): TimeValue {\n return this.createTimeValue(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n );\n }\n\n /**\n * Convert TimeValue to Date object (using current date)\n */\n static timeValueToDate(time: TimeValue, baseDate?: Date): Date {\n const date = baseDate ? new Date(baseDate) : new Date();\n date.setHours(time.hours, time.minutes, time.seconds, 0);\n return date;\n }\n}\n"]}
1
+ {"version":3,"file":"time.utils.js","sourceRoot":"","sources":["../../../../../src/components/timepicker/utils/time.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { TimeValue, TimePeriod, TimeFormat } from '../timepicker.types.js';\nimport { TIME_BOUNDARIES } from '../timepicker.constants.js';\n\n/**\n * Time utility functions for time picker component\n */\nexport class TimeUtils {\n /**\n * Create a new TimeValue object\n */\n static createTimeValue(hours: number, minutes: number, seconds: number = 0, period?: TimePeriod): TimeValue {\n return {\n hours: Math.max(0, Math.min(hours, 23)),\n minutes: Math.max(0, Math.min(minutes, 59)),\n seconds: Math.max(0, Math.min(seconds, 59)),\n period,\n };\n }\n\n /**\n * Parse time string to TimeValue\n */\n static parseTimeString(timeString: string, format: TimeFormat = TimeFormat.TwentyFourHour): TimeValue | null {\n if (!timeString?.trim()) {\n return null;\n }\n\n const cleanTime = timeString.trim().toUpperCase();\n\n if (format === TimeFormat.TwelveHour) {\n return this.parse12HourTime(cleanTime);\n } else {\n return this.parse24HourTime(cleanTime);\n }\n }\n\n /**\n * Parse 24-hour format time string\n */\n private static parse24HourTime(timeString: string): TimeValue | null {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/);\n \n if (!match) {\n return null;\n }\n\n const hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n\n if (!this.isValidTime24(hours, minutes, seconds)) {\n return null;\n }\n\n return this.createTimeValue(hours, minutes, seconds);\n }\n\n /**\n * Parse 12-hour format time string\n */\n private static parse12HourTime(timeString: string): TimeValue | null {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s?(AM|PM)$/);\n \n if (!match) {\n return null;\n }\n\n let hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n const period = match[4] as TimePeriod;\n\n if (!this.isValidTime12(hours, minutes, seconds)) {\n return null;\n }\n\n // Convert to 24-hour format for internal storage\n if (period === TimePeriod.PM && hours !== 12) {\n hours += 12;\n } else if (period === TimePeriod.AM && hours === 12) {\n hours = 0;\n }\n\n return this.createTimeValue(hours, minutes, seconds, period);\n }\n\n /**\n * Format TimeValue to string\n */\n static formatTimeValue(time: TimeValue, format: TimeFormat = TimeFormat.TwentyFourHour, showSeconds: boolean = false): string {\n if (!time) {\n return '';\n }\n\n if (format === TimeFormat.TwelveHour) {\n return this.format12HourTime(time, showSeconds);\n } else {\n return this.format24HourTime(time, showSeconds);\n }\n }\n\n /**\n * Format time in 24-hour format\n */\n private static format24HourTime(time: TimeValue, showSeconds: boolean): string {\n const hours = time.hours.toString().padStart(2, '0');\n const minutes = time.minutes.toString().padStart(2, '0');\n \n if (showSeconds) {\n const seconds = time.seconds.toString().padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n }\n \n return `${hours}:${minutes}`;\n }\n\n /**\n * Format time in 12-hour format\n */\n private static format12HourTime(time: TimeValue, showSeconds: boolean): string {\n let hours = time.hours;\n const minutes = time.minutes.toString().padStart(2, '0');\n const period = hours >= 12 ? TimePeriod.PM : TimePeriod.AM;\n\n // Convert to 12-hour format\n if (hours === 0) {\n hours = 12;\n } else if (hours > 12) {\n hours -= 12;\n }\n\n const hoursStr = hours.toString();\n \n if (showSeconds) {\n const seconds = time.seconds.toString().padStart(2, '0');\n return `${hoursStr}:${minutes}:${seconds} ${period}`;\n }\n \n return `${hoursStr}:${minutes} ${period}`;\n }\n\n /**\n * Get current time as TimeValue\n */\n static getCurrentTime(): TimeValue {\n const now = new Date();\n return this.createTimeValue(\n now.getHours(),\n now.getMinutes(),\n now.getSeconds()\n );\n }\n\n /**\n * Compare two TimeValue objects\n */\n static compareTime(time1: TimeValue, time2: TimeValue): number {\n const totalSeconds1 = time1.hours * 3600 + time1.minutes * 60 + time1.seconds;\n const totalSeconds2 = time2.hours * 3600 + time2.minutes * 60 + time2.seconds;\n return totalSeconds1 - totalSeconds2;\n }\n\n /**\n * Check if two TimeValue objects are equal\n */\n static isTimeEqual(time1: TimeValue, time2: TimeValue): boolean {\n return this.compareTime(time1, time2) === 0;\n }\n\n /**\n * Validate 24-hour time components\n */\n private static isValidTime24(hours: number, minutes: number, seconds: number = 0): boolean {\n return (\n hours >= TIME_BOUNDARIES.MIN_HOUR_24 && \n hours <= TIME_BOUNDARIES.MAX_HOUR_24 &&\n minutes >= TIME_BOUNDARIES.MIN_MINUTE && \n minutes <= TIME_BOUNDARIES.MAX_MINUTE &&\n seconds >= TIME_BOUNDARIES.MIN_SECOND && \n seconds <= TIME_BOUNDARIES.MAX_SECOND\n );\n }\n\n /**\n * Validate 12-hour time components\n */\n private static isValidTime12(hours: number, minutes: number, seconds: number = 0): boolean {\n return (\n hours >= TIME_BOUNDARIES.MIN_HOUR_12 && \n hours <= TIME_BOUNDARIES.MAX_HOUR_12 &&\n minutes >= TIME_BOUNDARIES.MIN_MINUTE && \n minutes <= TIME_BOUNDARIES.MAX_MINUTE &&\n seconds >= TIME_BOUNDARIES.MIN_SECOND && \n seconds <= TIME_BOUNDARIES.MAX_SECOND\n );\n }\n\n /**\n * Add time to a TimeValue\n */\n static addTime(time: TimeValue, hoursToAdd: number, minutesToAdd: number, secondsToAdd: number = 0): TimeValue {\n let totalSeconds = time.hours * 3600 + time.minutes * 60 + time.seconds;\n totalSeconds += hoursToAdd * 3600 + minutesToAdd * 60 + secondsToAdd;\n\n // Handle overflow/underflow\n totalSeconds = ((totalSeconds % 86400) + 86400) % 86400;\n\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n\n return this.createTimeValue(hours, minutes, seconds);\n }\n\n /**\n * Generate time options for dropdowns\n */\n static generateTimeOptions(interval: number = 15, format: TimeFormat = TimeFormat.TwentyFourHour, showSeconds: boolean = false): Array<{value: string, label: string}> {\n const options: Array<{value: string, label: string}> = [];\n \n for (let hour = 0; hour < 24; hour++) {\n for (let minute = 0; minute < 60; minute += interval) {\n const timeValue = this.createTimeValue(hour, minute, 0);\n const formatted = this.formatTimeValue(timeValue, format, showSeconds);\n options.push({\n value: formatted,\n label: formatted,\n });\n }\n }\n\n return options;\n }\n\n /**\n * Round time to nearest interval\n */\n static roundToInterval(time: TimeValue, intervalMinutes: number): TimeValue {\n const totalMinutes = time.hours * 60 + time.minutes;\n const roundedMinutes = Math.round(totalMinutes / intervalMinutes) * intervalMinutes;\n \n const hours = Math.floor(roundedMinutes / 60) % 24;\n const minutes = roundedMinutes % 60;\n\n return this.createTimeValue(hours, minutes, time.seconds);\n }\n\n /**\n * Check if time is within range\n */\n static isTimeInRange(time: TimeValue, minTime: TimeValue | null, maxTime: TimeValue | null): boolean {\n if (minTime && this.compareTime(time, minTime) < 0) {\n return false;\n }\n \n if (maxTime && this.compareTime(time, maxTime) > 0) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Convert Date object to TimeValue\n */\n static dateToTimeValue(date: Date): TimeValue {\n return this.createTimeValue(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n );\n }\n\n /**\n * Convert TimeValue to Date object (using current date)\n */\n static timeValueToDate(time: TimeValue, baseDate?: Date): Date {\n const date = baseDate ? new Date(baseDate) : new Date();\n date.setHours(time.hours, time.minutes, time.seconds, 0);\n return date;\n }\n}\n"]}