@nuralyui/timepicker 0.1.5 → 0.1.6
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.
- package/bundle.js +38 -1603
- package/package.json +1 -1
- package/timepicker.component.d.ts +0 -2
- package/timepicker.component.js +0 -3
- package/timepicker.component.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
-
import '../input/input.component.js';
|
|
3
|
-
import '../button/button.component.js';
|
|
4
2
|
import { DropdownHost } from '@nuralyui/common/controllers';
|
|
5
3
|
import { TimeValue, TimeFormat, TimePickerConfig, TimePickerPlacement } from './timepicker.types.js';
|
|
6
4
|
export interface TimePickerHost extends LitElement, DropdownHost {
|
package/timepicker.component.js
CHANGED
|
@@ -7,9 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { LitElement, html, nothing } from 'lit';
|
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
9
|
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
-
// Import UI components
|
|
11
|
-
import '../input/input.component.js';
|
|
12
|
-
import '../button/button.component.js';
|
|
13
10
|
// Import base mixin and types
|
|
14
11
|
import { NuralyUIBaseMixin } from '@nuralyui/common/mixins';
|
|
15
12
|
import { SharedDropdownController } from '@nuralyui/common/controllers';
|
|
@@ -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"]}
|