@koobiq/components 19.8.3 → 19.8.4
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/badge/badge.component.d.ts +4 -2
- package/fesm2022/koobiq-components-autocomplete.mjs +7 -1
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +6 -0
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +3 -2
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +3 -1
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +54 -14
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +9 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +1 -1
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +2 -2
- package/search-expandable/search-expandable.d.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-timepicker.mjs","sources":["../../../packages/components/timepicker/timepicker.constants.ts","../../../packages/components/timepicker/timepicker.directive.ts","../../../packages/components/timepicker/timepicker.module.ts","../../../packages/components/timepicker/koobiq-components-timepicker.ts"],"sourcesContent":["export enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\n/** Object that maps each time format to a related locale key */\nexport const TimeFormatToLocaleKeys: Record<TimeFormats, 'full' | 'short'> = {\n [TimeFormats.HHmmss]: 'full',\n [TimeFormats.HHmm]: 'short'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormGroupDirective,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgForm,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n BACKSPACE,\n DELETE,\n DOWN_ARROW,\n END,\n hasModifierKey,\n HOME,\n isHorizontalMovement,\n isLetterKey,\n isVerticalMovement,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n DateAdapter,\n ErrorStateMatcher,\n KBQ_LOCALE_SERVICE,\n KBQ_VALIDATION,\n KbqErrorStateTracker,\n KbqLocaleService,\n validationTooltipHideDelay,\n validationTooltipShowDelay\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport type { KbqWarningTooltipTrigger } from '@koobiq/components/tooltip';\nimport { noop, Subject, Subscription } from 'rxjs';\n\nimport {\n AM_PM_FORMAT_REGEXP,\n DEFAULT_TIME_FORMAT,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n HOURS_PER_DAY,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeFormatToLocaleKeys,\n TimeParts\n} from './timepicker.constants';\n\n/** @docs-private */\nexport const KBQ_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const KBQ_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqTimepicker),\n multi: true\n};\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n@Directive({\n selector: 'input[kbqTimepicker]',\n exportAs: 'kbqTimepicker',\n host: {\n class: 'kbq-input kbq-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n KBQ_TIMEPICKER_VALIDATORS,\n KBQ_TIMEPICKER_VALUE_ACCESSOR,\n { provide: KbqFormFieldControl, useExisting: KbqTimepicker }\n ]\n})\nexport class KbqTimepicker<D>\n implements KbqFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy, DoCheck, AfterContentInit\n{\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /** Object used to control when error messages are shown. */\n @Input()\n get errorStateMatcher() {\n return this.errorStateTracker.errorStateMatcher;\n }\n\n set errorStateMatcher(value: ErrorStateMatcher) {\n this.errorStateTracker.errorStateMatcher = value;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format =\n Object.keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1\n ? formatValue\n : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = this.timeFormatPlaceholder;\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set kbqValidationTooltip(tooltip: KbqWarningTooltipTrigger) {\n if (!tooltip) {\n return;\n }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) {\n return;\n }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() readonly incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n /** Localized placeholder */\n get timeFormatPlaceholder(): string {\n return (\n this.localeService?.getParams('timepicker')?.placeholder[TimeFormatToLocaleKeys[this.format]] ||\n TIMEFORMAT_PLACEHOLDERS[this.format]\n );\n }\n\n /** @docs-private */\n get errorState(): boolean {\n return this.errorStateTracker.errorState;\n }\n\n set errorState(value: boolean) {\n this.errorStateTracker.errorState = value;\n }\n\n private readonly useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;\n\n private readonly uid = `kbq-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control?: AbstractControl;\n\n private defaultPlaceholder = true;\n private separator = ':';\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n private localeSubscription = Subscription.EMPTY;\n\n private errorStateTracker: KbqErrorStateTracker;\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService?: KbqLocaleService\n ) {\n if (!this.dateAdapter) {\n throw Error(\n `KbqTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`\n );\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n this.onTouched = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n this.errorStateTracker = new KbqErrorStateTracker(\n inject(ErrorStateMatcher),\n null,\n inject(FormGroupDirective, { optional: true }),\n inject(NgForm, { optional: true }),\n this.stateChanges\n );\n\n this.localeSubscription = dateAdapter.localeChanges.subscribe(this.updateLocaleParams);\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n ngAfterContentInit() {\n this.updateErrorState();\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.localeSubscription.unsubscribe();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n if (this.viewValue === this.getTimeStringFromDate(this.value, this.format)) {\n return;\n }\n\n this.setViewValue(this.formatUserPaste(this.viewValue));\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) {\n return;\n }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n if (!this.viewValue) {\n this.onChange(null);\n } else if (this.useLegacyValidation) {\n this.control?.updateValueAndValidity();\n }\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n };\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey ||\n event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) {\n return value;\n }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(\n Object.values(match.groups)\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(\n /^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/\n );\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement>this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) {\n return;\n }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private fixEmptyDigit() {\n const hasEmptyDigit = this.viewValue\n .split(this.separator)\n .map((part) => part.length)\n .some((item) => !item);\n\n if (hasEmptyDigit && this.value) {\n this.value = this.dateAdapter.clone(this.value);\n }\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) {\n return;\n }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n this.fixEmptyDigit();\n\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n this.fixEmptyDigit();\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) {\n seconds = 0;\n }\n\n if (minutes > MINUTES_PER_HOUR) {\n minutes = 0;\n }\n\n if (hours > HOURS_PER_DAY) {\n hours = 0;\n }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) {\n seconds = SECONDS_PER_MINUTE;\n }\n\n if (minutes < 0) {\n minutes = MINUTES_PER_HOUR;\n }\n\n if (hours < 0) {\n hours = HOURS_PER_DAY;\n }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time value edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) {\n return '';\n }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) {\n return null;\n }\n\n const date = this.value || this.dateAdapter.today();\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS && this.isShortFormat) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = this.dateAdapter.getSeconds(date);\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(date),\n this.dateAdapter.getMonth(date),\n this.dateAdapter.getDate(date),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(date)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused || this.empty || this.lastValueValid\n ? null\n : { kbqTimepickerParse: { text: this.viewValue } };\n };\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0\n ? null\n : { kbqTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n };\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0\n ? null\n : { kbqTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n };\n\n private getValidDateOrNull(obj: any): D | null {\n return this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n /** @docs-private */\n updateErrorState() {\n this.errorStateTracker.updateErrorState();\n }\n\n private setControl(control: AbstractControl) {\n if (this.control) return;\n\n this.control = control;\n\n this.control.valueChanges.subscribe((value) => (this._value = value));\n\n // @TODO resolve types\n this.errorStateTracker.ngControl = { control } as unknown as NgControl;\n }\n\n private validatorOnChange = () => {};\n\n private updateLocaleParams = () => {\n if (!this.defaultPlaceholder) return;\n\n // update via private property instead of setter to save it as default placeholder\n this._placeholder = this.timeFormatPlaceholder;\n // update value so view value will be also updated\n this.value = this._value;\n };\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTimepicker } from './timepicker.directive';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n FormsModule,\n KbqTimepicker\n ],\n exports: [KbqTimepicker, KbqFormFieldModule]\n})\nexport class KbqTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-timepicker.mjs","sources":["../../../packages/components/timepicker/timepicker.constants.ts","../../../packages/components/timepicker/timepicker.directive.ts","../../../packages/components/timepicker/timepicker.module.ts","../../../packages/components/timepicker/koobiq-components-timepicker.ts"],"sourcesContent":["export enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\n/** Object that maps each time format to a related locale key */\nexport const TimeFormatToLocaleKeys: Record<TimeFormats, 'full' | 'short'> = {\n [TimeFormats.HHmmss]: 'full',\n [TimeFormats.HHmm]: 'short'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormGroupDirective,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgForm,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n BACKSPACE,\n DELETE,\n DOWN_ARROW,\n END,\n hasModifierKey,\n HOME,\n isHorizontalMovement,\n isLetterKey,\n isVerticalMovement,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n DateAdapter,\n ErrorStateMatcher,\n KBQ_LOCALE_SERVICE,\n KBQ_VALIDATION,\n KbqErrorStateTracker,\n KbqLocaleService,\n validationTooltipHideDelay,\n validationTooltipShowDelay\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport type { KbqWarningTooltipTrigger } from '@koobiq/components/tooltip';\nimport { noop, Subject, Subscription } from 'rxjs';\n\nimport {\n AM_PM_FORMAT_REGEXP,\n DEFAULT_TIME_FORMAT,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n HOURS_PER_DAY,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeFormatToLocaleKeys,\n TimeParts\n} from './timepicker.constants';\n\n/** @docs-private */\nexport const KBQ_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const KBQ_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqTimepicker),\n multi: true\n};\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n@Directive({\n selector: 'input[kbqTimepicker]',\n exportAs: 'kbqTimepicker',\n host: {\n class: 'kbq-input kbq-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n KBQ_TIMEPICKER_VALIDATORS,\n KBQ_TIMEPICKER_VALUE_ACCESSOR,\n { provide: KbqFormFieldControl, useExisting: KbqTimepicker }\n ]\n})\nexport class KbqTimepicker<D>\n implements KbqFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy, DoCheck, AfterContentInit\n{\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /** Object used to control when error messages are shown. */\n @Input()\n get errorStateMatcher() {\n return this.errorStateTracker.errorStateMatcher;\n }\n\n set errorStateMatcher(value: ErrorStateMatcher) {\n this.errorStateTracker.errorStateMatcher = value;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format =\n Object.keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1\n ? formatValue\n : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = this.timeFormatPlaceholder;\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set kbqValidationTooltip(tooltip: KbqWarningTooltipTrigger) {\n if (!tooltip) {\n return;\n }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) {\n return;\n }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() readonly incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n /** Localized placeholder */\n get timeFormatPlaceholder(): string {\n return (\n this.localeService?.getParams('timepicker')?.placeholder[TimeFormatToLocaleKeys[this.format]] ||\n TIMEFORMAT_PLACEHOLDERS[this.format]\n );\n }\n\n /** @docs-private */\n get errorState(): boolean {\n return this.errorStateTracker.errorState;\n }\n\n set errorState(value: boolean) {\n this.errorStateTracker.errorState = value;\n }\n\n private readonly useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;\n\n private readonly uid = `kbq-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control?: AbstractControl;\n\n private defaultPlaceholder = true;\n private separator = ':';\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n private localeSubscription = Subscription.EMPTY;\n\n private errorStateTracker: KbqErrorStateTracker;\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService?: KbqLocaleService\n ) {\n if (!this.dateAdapter) {\n throw Error(\n `KbqTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`\n );\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n this.onTouched = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n this.errorStateTracker = new KbqErrorStateTracker(\n inject(ErrorStateMatcher),\n null,\n inject(FormGroupDirective, { optional: true }),\n inject(NgForm, { optional: true }),\n this.stateChanges\n );\n\n this.localeSubscription = dateAdapter.localeChanges.subscribe(this.updateLocaleParams);\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n ngAfterContentInit() {\n this.updateErrorState();\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.localeSubscription.unsubscribe();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n if (this.viewValue !== this.getTimeStringFromDate(this.value, this.format)) {\n this.setViewValue(this.formatUserPaste(this.viewValue));\n\n this.onInput();\n }\n\n // Re-run validation now that the field lost focus: while focused, KbqValidateDirective\n // suppresses validation errors, so status has to be recomputed explicitly here.\n if (this.useLegacyValidation && this.control) {\n this.control.updateValueAndValidity({ emitEvent: false });\n (this.control.statusChanges as EventEmitter<string>).emit(this.control.status);\n }\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) {\n return;\n }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n if (!this.viewValue) {\n this.onChange(null);\n } else if (this.useLegacyValidation) {\n this.control?.updateValueAndValidity();\n }\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n };\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey ||\n event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) {\n return value;\n }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(\n Object.values(match.groups)\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(\n /^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/\n );\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement>this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) {\n return;\n }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private fixEmptyDigit() {\n const hasEmptyDigit = this.viewValue\n .split(this.separator)\n .map((part) => part.length)\n .some((item) => !item);\n\n if (hasEmptyDigit && this.value) {\n this.value = this.dateAdapter.clone(this.value);\n }\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) {\n return;\n }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n this.fixEmptyDigit();\n\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n this.fixEmptyDigit();\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) {\n seconds = 0;\n }\n\n if (minutes > MINUTES_PER_HOUR) {\n minutes = 0;\n }\n\n if (hours > HOURS_PER_DAY) {\n hours = 0;\n }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) {\n seconds = SECONDS_PER_MINUTE;\n }\n\n if (minutes < 0) {\n minutes = MINUTES_PER_HOUR;\n }\n\n if (hours < 0) {\n hours = HOURS_PER_DAY;\n }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time value edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) {\n return '';\n }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) {\n return null;\n }\n\n const date = this.value || this.dateAdapter.today();\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS && this.isShortFormat) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = this.dateAdapter.getSeconds(date);\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(date),\n this.dateAdapter.getMonth(date),\n this.dateAdapter.getDate(date),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(date)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused || this.empty || this.lastValueValid\n ? null\n : { kbqTimepickerParse: { text: this.viewValue } };\n };\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0\n ? null\n : { kbqTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n };\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0\n ? null\n : { kbqTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n };\n\n private getValidDateOrNull(obj: any): D | null {\n return this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n /** @docs-private */\n updateErrorState() {\n this.errorStateTracker.updateErrorState();\n }\n\n private setControl(control: AbstractControl) {\n if (this.control) return;\n\n this.control = control;\n\n this.control.valueChanges.subscribe((value) => (this._value = value));\n\n // @TODO resolve types\n this.errorStateTracker.ngControl = { control } as unknown as NgControl;\n }\n\n private validatorOnChange = () => {};\n\n private updateLocaleParams = () => {\n if (!this.defaultPlaceholder) return;\n\n // update via private property instead of setter to save it as default placeholder\n this._placeholder = this.timeFormatPlaceholder;\n // update value so view value will be also updated\n this.value = this._value;\n };\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTimepicker } from './timepicker.directive';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n FormsModule,\n KbqTimepicker\n ],\n exports: [KbqTimepicker, KbqFormFieldModule]\n})\nexport class KbqTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ function offset(value) {
|
|
|
68
68
|
return [preparedHours, minutes].join(':');
|
|
69
69
|
}
|
|
70
70
|
function offsetFormatter(value) {
|
|
71
|
-
return `UTC
|
|
71
|
+
return `UTC${offset(value)}`;
|
|
72
72
|
}
|
|
73
73
|
function offsetFormatterAsObject(value) {
|
|
74
74
|
return { UTC: offset(value) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-timezone.mjs","sources":["../../../packages/components/timezone/timezone.utils.ts","../../../packages/components/timezone/cities-by-filter.pipe.ts","../../../packages/components/timezone/utc-offset.pipe.ts","../../../packages/components/timezone/timezone-option.component.ts","../../../packages/components/timezone/timezone-option.component.html","../../../packages/components/timezone/timezone-option.directive.ts","../../../packages/components/timezone/timezone-select.component.ts","../../../packages/components/timezone/timezone-select.component.html","../../../packages/components/timezone/timezone.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneGroup, KbqTimezonesByCountry, KbqTimezoneZone } from './timezone.models';\n\nconst minusUnicode = 0x2212; // Minus Sign U+2212\n\n/**\n * Convert string timezone offset (formatted offset) to number (minutes)\n */\nexport function parseOffset(offset: string): number {\n const minutesPerHour = 60;\n const [hours, minutes] = offset.split(':').map((part: string) => parseInt(part, 10));\n\n return hours * minutesPerHour + (hours >= 0 ? minutes : minutes * -1);\n}\n\n/**\n * Grouping timezones by countries\n */\nexport function getZonesGroupedByCountry(\n data: KbqTimezoneZone[],\n otherCountriesLabel: string = 'Other',\n priorityCountry?: string\n): KbqTimezoneGroup[] {\n const systemTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const countryCode: string | undefined = priorityCountry\n ? priorityCountry\n : data.find((item: KbqTimezoneZone) => item.id === systemTimezone)?.countryCode;\n\n // collect data by countries\n const dataByCountries: KbqTimezonesByCountry = data.reduce<KbqTimezonesByCountry>(\n (result: KbqTimezonesByCountry, zone: KbqTimezoneZone) => {\n const countryName: string =\n zone.countryCode.toLowerCase() === countryCode?.toLowerCase() ? zone.countryName : otherCountriesLabel;\n\n if (!Array.isArray(result[countryName])) {\n result[countryName] = [];\n }\n\n result[countryName].push({ ...zone, countryName });\n\n return result;\n },\n {}\n );\n\n // make data groups\n const groups: KbqTimezoneGroup[] = Object.values(dataByCountries).map<KbqTimezoneGroup>(\n (zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n })\n );\n\n // sort by priority country\n const priorityGroupIndex = groups.findIndex(\n (group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase()\n );\n\n if (priorityGroupIndex > -1) {\n const priorityGroup = groups[priorityGroupIndex];\n\n groups.splice(priorityGroupIndex, 1);\n groups.unshift(priorityGroup);\n }\n\n return groups;\n}\n\nexport function offset(value) {\n const [hours, minutes] = value.split(':');\n const isPositiveOffset = /^\\d$/.test(hours.charAt(0));\n const preparedHours: string = !isPositiveOffset\n ? `${String.fromCharCode(minusUnicode)}${hours.substring(1)}`\n : parseInt(hours, 10) > 0 || parseInt(minutes, 10) > 0\n ? `+${hours}`\n : hours;\n\n return [preparedHours, minutes].join(':');\n}\n\nexport function offsetFormatter(value: string): string {\n return `UTC ${offset(value)}`;\n}\n\nexport function offsetFormatterAsObject(value: string): { [UTC: string]: string } {\n return { UTC: offset(value) };\n}\n\n/**\n * Comparator for timezone sorting. Sort by offset and country name\n */\nexport function timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number {\n return first.offset !== second.offset\n ? parseOffset(first.offset)\n : first.countryName.localeCompare(second.countryName);\n}\n\n/**\n * Filtering timezone cities by search string\n */\nexport function filterCitiesBySearchString(cities: string, searchPattern?: string): string {\n const onlyUTC: boolean = /^\\\\?(-|—|−|\\+)?(\\d{1,2}:?(\\d{1,2})?)?$/.test(searchPattern ?? '');\n\n if (!searchPattern || onlyUTC) {\n return cities;\n }\n\n const regex: RegExp = RegExp(`(${searchPattern})`, 'gi');\n\n return cities\n .split(',')\n .filter((city: string) => regex.test(city))\n .join(',');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { filterCitiesBySearchString } from './timezone.utils';\n\n@Pipe({\n name: 'citiesByFilter'\n})\nexport class CitiesByFilterPipe implements PipeTransform {\n transform(value: string, searchPattern?: string): string {\n return filterCitiesBySearchString(value, searchPattern);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { offsetFormatterAsObject } from './timezone.utils';\n\n@Pipe({\n name: 'utcOffset'\n})\nexport class UtcOffsetPipe implements PipeTransform {\n transform(value: string): { [UTC: string]: string } {\n return offsetFormatterAsObject(value);\n }\n}\n","import { KeyValuePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqHighlightPipe, KbqOption } from '@koobiq/components/core';\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n@Component({\n selector: 'kbq-timezone-option',\n imports: [\n UtcOffsetPipe,\n KeyValuePipe,\n KbqHighlightPipe,\n CitiesByFilterPipe\n ],\n templateUrl: 'timezone-option.component.html',\n styleUrls: ['../core/option/option.scss', 'timezone-option.component.scss', 'timezone-option-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqTimezoneOption',\n host: {\n class: 'kbq-timezone-option'\n },\n providers: [\n {\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }\n ]\n})\nexport class KbqTimezoneOption extends KbqOption {\n @ViewChild('tooltipContentWrapper', { static: false }) tooltipContentWrapper: ElementRef<HTMLElement>;\n @ViewChild('tooltipContent', { static: false }) tooltipContent: ElementRef<HTMLElement>;\n\n @Input() highlightText: string;\n\n @Input()\n get timezone(): KbqTimezoneZone {\n return this._timezone;\n }\n\n set timezone(zone: KbqTimezoneZone) {\n this._timezone = zone;\n this.value = zone.id;\n }\n\n private _timezone: KbqTimezoneZone;\n\n get viewValue(): string {\n const cities: string = [this.timezone.city, this.timezone.cities].filter(Boolean).join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities].join(' ');\n }\n}\n","@for (utcItem of timezone.offset | utcOffset | keyvalue; track utcItem) {\n <div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\">\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.key | mcHighlight: highlightText\"></div>\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.value | mcHighlight: highlightText\"></div>\n </div>\n}\n\n<div class=\"kbq-timezone-option__label\">\n <span class=\"kbq-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight: highlightText\"></span>\n <div #tooltipContentWrapper class=\"kbq-timezone-option__cities\">\n <span\n #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter: highlightText | mcHighlight: highlightText\"\n ></span>\n </div>\n</div>\n","import { ContentObserver } from '@angular/cdk/observers';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { AfterViewInit, ChangeDetectorRef, Directive, inject, OnDestroy } from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { KbqTimezoneOption } from './timezone-option.component';\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\n\n@Directive({\n selector: 'kbq-timezone-option',\n host: {\n '(mouseenter)': 'handleElementEnter()',\n '(mouseleave)': 'handleElementLeave()'\n }\n})\nexport class KbqTimezoneOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private readonly option = inject(KbqTimezoneOption);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly contentObserver = inject(ContentObserver);\n\n private readonly debounceInterval = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n private contentObserverSubscription = Subscription.EMPTY;\n private focusMonitorSubscription = Subscription.EMPTY;\n\n constructor() {\n super();\n this.tooltipPlacement = PopUpPlacements.Right;\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.content = this.option.viewValue;\n this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();\n this.checkTooltipDisabled();\n\n this.resizeSubscription = this.resizeObserver\n .observe(this.option.tooltipContentWrapper.nativeElement)\n .pipe(debounceTime(this.debounceInterval))\n .subscribe(this.checkTooltipDisabled);\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.option.tooltipContent.nativeElement)\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.content = this.option.viewValue;\n this.checkTooltipDisabled();\n });\n\n this.focusMonitorSubscription = this.focusMonitor\n .monitor(this.elementRef)\n .subscribe((origin) => (origin === 'keyboard' ? this.handleElementEnter() : this.handleElementLeave()));\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n this.contentObserverSubscription.unsubscribe();\n this.focusMonitorSubscription.unsubscribe();\n\n super.ngOnDestroy();\n }\n\n handleElementEnter(): void {\n this.checkTooltipDisabled();\n }\n\n handleElementLeave(): void {\n this.disabled = true;\n }\n\n private checkTooltipDisabled = () => {\n const count: number = this.option.tooltipContent.nativeElement.getClientRects().length;\n\n this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;\n\n this.changeDetectorRef.detectChanges();\n };\n}\n","import { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_OPTION_PARENT_COMPONENT, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelect, KbqSelectPanelWidth } from '@koobiq/components/select';\n\n@Directive({\n selector: 'kbq-timezone-select-trigger'\n})\nexport class KbqTimezoneSelectTrigger {}\n\nconst defaultSearchPlaceholder = ruRULocaleData.timezone.searchPlaceholder;\n\n@Component({\n selector: 'kbq-timezone-select',\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n CdkMonitorFocus,\n KbqIconModule,\n NgClass\n ],\n templateUrl: 'timezone-select.component.html',\n styleUrls: [\n '../select/select.scss',\n '../select/select-tokens.scss',\n 'timezone-select.component.scss',\n 'timezone-option-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqTimezoneSelect',\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqTimezoneSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqTimezoneSelect }\n ]\n})\nexport class KbqTimezoneSelect extends KbqSelect implements AfterContentInit {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n override panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || 'auto';\n override panelMinWidth: number = 640;\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.localeService?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.updateLocaleParamsForSearch);\n\n this.updateLocaleParamsForSearch();\n }\n\n private updateLocaleParamsForSearch = () => {\n const placeholder = this.localeService?.getParams('timezone').searchPlaceholder || defaultSearchPlaceholder;\n\n if (this.search && !this.search.hasPlaceholder()) {\n this.search.setPlaceholder(placeholder);\n }\n };\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-timezone-select-trigger\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div class=\"kbq-select__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n cdkMonitorSubtreeFocus\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n </div>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { KeyValuePipe, NgClass } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightModule, KbqOptionModule } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelectModule } from '@koobiq/components/select';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneOption } from './timezone-option.component';\nimport { KbqTimezoneOptionTooltip } from './timezone-option.directive';\nimport { KbqTimezoneSelect, KbqTimezoneSelectTrigger } from './timezone-select.component';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule,\n NgClass,\n KeyValuePipe,\n A11yModule,\n UtcOffsetPipe,\n CitiesByFilterPipe,\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ],\n exports: [\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger,\n KbqFormFieldModule\n ]\n})\nexport class KbqTimezoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-timezone.mjs","sources":["../../../packages/components/timezone/timezone.utils.ts","../../../packages/components/timezone/cities-by-filter.pipe.ts","../../../packages/components/timezone/utc-offset.pipe.ts","../../../packages/components/timezone/timezone-option.component.ts","../../../packages/components/timezone/timezone-option.component.html","../../../packages/components/timezone/timezone-option.directive.ts","../../../packages/components/timezone/timezone-select.component.ts","../../../packages/components/timezone/timezone-select.component.html","../../../packages/components/timezone/timezone.module.ts","../../../packages/components/timezone/koobiq-components-timezone.ts"],"sourcesContent":["import { KbqTimezoneGroup, KbqTimezonesByCountry, KbqTimezoneZone } from './timezone.models';\n\nconst minusUnicode = 0x2212; // Minus Sign U+2212\n\n/**\n * Convert string timezone offset (formatted offset) to number (minutes)\n */\nexport function parseOffset(offset: string): number {\n const minutesPerHour = 60;\n const [hours, minutes] = offset.split(':').map((part: string) => parseInt(part, 10));\n\n return hours * minutesPerHour + (hours >= 0 ? minutes : minutes * -1);\n}\n\n/**\n * Grouping timezones by countries\n */\nexport function getZonesGroupedByCountry(\n data: KbqTimezoneZone[],\n otherCountriesLabel: string = 'Other',\n priorityCountry?: string\n): KbqTimezoneGroup[] {\n const systemTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const countryCode: string | undefined = priorityCountry\n ? priorityCountry\n : data.find((item: KbqTimezoneZone) => item.id === systemTimezone)?.countryCode;\n\n // collect data by countries\n const dataByCountries: KbqTimezonesByCountry = data.reduce<KbqTimezonesByCountry>(\n (result: KbqTimezonesByCountry, zone: KbqTimezoneZone) => {\n const countryName: string =\n zone.countryCode.toLowerCase() === countryCode?.toLowerCase() ? zone.countryName : otherCountriesLabel;\n\n if (!Array.isArray(result[countryName])) {\n result[countryName] = [];\n }\n\n result[countryName].push({ ...zone, countryName });\n\n return result;\n },\n {}\n );\n\n // make data groups\n const groups: KbqTimezoneGroup[] = Object.values(dataByCountries).map<KbqTimezoneGroup>(\n (zones: KbqTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n })\n );\n\n // sort by priority country\n const priorityGroupIndex = groups.findIndex(\n (group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase()\n );\n\n if (priorityGroupIndex > -1) {\n const priorityGroup = groups[priorityGroupIndex];\n\n groups.splice(priorityGroupIndex, 1);\n groups.unshift(priorityGroup);\n }\n\n return groups;\n}\n\nexport function offset(value) {\n const [hours, minutes] = value.split(':');\n const isPositiveOffset = /^\\d$/.test(hours.charAt(0));\n const preparedHours: string = !isPositiveOffset\n ? `${String.fromCharCode(minusUnicode)}${hours.substring(1)}`\n : parseInt(hours, 10) > 0 || parseInt(minutes, 10) > 0\n ? `+${hours}`\n : hours;\n\n return [preparedHours, minutes].join(':');\n}\n\nexport function offsetFormatter(value: string): string {\n return `UTC${offset(value)}`;\n}\n\nexport function offsetFormatterAsObject(value: string): { [UTC: string]: string } {\n return { UTC: offset(value) };\n}\n\n/**\n * Comparator for timezone sorting. Sort by offset and country name\n */\nexport function timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number {\n return first.offset !== second.offset\n ? parseOffset(first.offset)\n : first.countryName.localeCompare(second.countryName);\n}\n\n/**\n * Filtering timezone cities by search string\n */\nexport function filterCitiesBySearchString(cities: string, searchPattern?: string): string {\n const onlyUTC: boolean = /^\\\\?(-|—|−|\\+)?(\\d{1,2}:?(\\d{1,2})?)?$/.test(searchPattern ?? '');\n\n if (!searchPattern || onlyUTC) {\n return cities;\n }\n\n const regex: RegExp = RegExp(`(${searchPattern})`, 'gi');\n\n return cities\n .split(',')\n .filter((city: string) => regex.test(city))\n .join(',');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { filterCitiesBySearchString } from './timezone.utils';\n\n@Pipe({\n name: 'citiesByFilter'\n})\nexport class CitiesByFilterPipe implements PipeTransform {\n transform(value: string, searchPattern?: string): string {\n return filterCitiesBySearchString(value, searchPattern);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { offsetFormatterAsObject } from './timezone.utils';\n\n@Pipe({\n name: 'utcOffset'\n})\nexport class UtcOffsetPipe implements PipeTransform {\n transform(value: string): { [UTC: string]: string } {\n return offsetFormatterAsObject(value);\n }\n}\n","import { KeyValuePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqHighlightPipe, KbqOption } from '@koobiq/components/core';\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n@Component({\n selector: 'kbq-timezone-option',\n imports: [\n UtcOffsetPipe,\n KeyValuePipe,\n KbqHighlightPipe,\n CitiesByFilterPipe\n ],\n templateUrl: 'timezone-option.component.html',\n styleUrls: ['../core/option/option.scss', 'timezone-option.component.scss', 'timezone-option-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqTimezoneOption',\n host: {\n class: 'kbq-timezone-option'\n },\n providers: [\n {\n provide: KbqOption,\n useExisting: forwardRef(() => KbqTimezoneOption)\n }\n ]\n})\nexport class KbqTimezoneOption extends KbqOption {\n @ViewChild('tooltipContentWrapper', { static: false }) tooltipContentWrapper: ElementRef<HTMLElement>;\n @ViewChild('tooltipContent', { static: false }) tooltipContent: ElementRef<HTMLElement>;\n\n @Input() highlightText: string;\n\n @Input()\n get timezone(): KbqTimezoneZone {\n return this._timezone;\n }\n\n set timezone(zone: KbqTimezoneZone) {\n this._timezone = zone;\n this.value = zone.id;\n }\n\n private _timezone: KbqTimezoneZone;\n\n get viewValue(): string {\n const cities: string = [this.timezone.city, this.timezone.cities].filter(Boolean).join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities].join(' ');\n }\n}\n","@for (utcItem of timezone.offset | utcOffset | keyvalue; track utcItem) {\n <div class=\"kbq-timezone-option__offset-wrapper layout-row layout-align-space-between\">\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.key | mcHighlight: highlightText\"></div>\n <div class=\"kbq-timezone-option__offset\" [innerHTML]=\"utcItem.value | mcHighlight: highlightText\"></div>\n </div>\n}\n\n<div class=\"kbq-timezone-option__label\">\n <span class=\"kbq-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight: highlightText\"></span>\n <div #tooltipContentWrapper class=\"kbq-timezone-option__cities\">\n <span\n #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter: highlightText | mcHighlight: highlightText\"\n ></span>\n </div>\n</div>\n","import { ContentObserver } from '@angular/cdk/observers';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { AfterViewInit, ChangeDetectorRef, Directive, inject, OnDestroy } from '@angular/core';\nimport { PopUpPlacements } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subscription, throttleTime } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { KbqTimezoneOption } from './timezone-option.component';\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\n\n@Directive({\n selector: 'kbq-timezone-option',\n host: {\n '(mouseenter)': 'handleElementEnter()',\n '(mouseleave)': 'handleElementLeave()'\n }\n})\nexport class KbqTimezoneOptionTooltip extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n private readonly option = inject(KbqTimezoneOption);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly contentObserver = inject(ContentObserver);\n\n private readonly debounceInterval = 100;\n\n private resizeSubscription = Subscription.EMPTY;\n private contentObserverSubscription = Subscription.EMPTY;\n private focusMonitorSubscription = Subscription.EMPTY;\n\n constructor() {\n super();\n this.tooltipPlacement = PopUpPlacements.Right;\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.content = this.option.viewValue;\n this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();\n this.checkTooltipDisabled();\n\n this.resizeSubscription = this.resizeObserver\n .observe(this.option.tooltipContentWrapper.nativeElement)\n .pipe(debounceTime(this.debounceInterval))\n .subscribe(this.checkTooltipDisabled);\n\n this.contentObserverSubscription = this.contentObserver\n .observe(this.option.tooltipContent.nativeElement)\n .pipe(throttleTime(this.debounceInterval))\n .subscribe(() => {\n this.content = this.option.viewValue;\n this.checkTooltipDisabled();\n });\n\n this.focusMonitorSubscription = this.focusMonitor\n .monitor(this.elementRef)\n .subscribe((origin) => (origin === 'keyboard' ? this.handleElementEnter() : this.handleElementLeave()));\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n this.contentObserverSubscription.unsubscribe();\n this.focusMonitorSubscription.unsubscribe();\n\n super.ngOnDestroy();\n }\n\n handleElementEnter(): void {\n this.checkTooltipDisabled();\n }\n\n handleElementLeave(): void {\n this.disabled = true;\n }\n\n private checkTooltipDisabled = () => {\n const count: number = this.option.tooltipContent.nativeElement.getClientRects().length;\n\n this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;\n\n this.changeDetectorRef.detectChanges();\n };\n}\n","import { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_OPTION_PARENT_COMPONENT, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelect, KbqSelectPanelWidth } from '@koobiq/components/select';\n\n@Directive({\n selector: 'kbq-timezone-select-trigger'\n})\nexport class KbqTimezoneSelectTrigger {}\n\nconst defaultSearchPlaceholder = ruRULocaleData.timezone.searchPlaceholder;\n\n@Component({\n selector: 'kbq-timezone-select',\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n CdkMonitorFocus,\n KbqIconModule,\n NgClass\n ],\n templateUrl: 'timezone-select.component.html',\n styleUrls: [\n '../select/select.scss',\n '../select/select-tokens.scss',\n 'timezone-select.component.scss',\n 'timezone-option-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqTimezoneSelect',\n providers: [\n { provide: KbqFormFieldControl, useExisting: KbqTimezoneSelect },\n { provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqTimezoneSelect }\n ]\n})\nexport class KbqTimezoneSelect extends KbqSelect implements AfterContentInit {\n @ContentChild(KbqTimezoneSelectTrigger, { static: false }) customTrigger: KbqTimezoneSelectTrigger;\n\n override panelWidth: KbqSelectPanelWidth = this.defaultOptions?.panelWidth || 'auto';\n override panelMinWidth: number = 640;\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.localeService?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.updateLocaleParamsForSearch);\n\n this.updateLocaleParamsForSearch();\n }\n\n private updateLocaleParamsForSearch = () => {\n const placeholder = this.localeService?.getParams('timezone').searchPlaceholder || defaultSearchPlaceholder;\n\n if (this.search && !this.search.hasPlaceholder()) {\n this.search.setPlaceholder(placeholder);\n }\n };\n}\n","<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n <span>\n @if (!!customTrigger) {\n <ng-content select=\"kbq-timezone-select-trigger\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n <span class=\"kbq-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n }\n </span>\n }\n\n @if (canShowCleaner) {\n <div class=\"kbq-select__cleaner\" (click)=\"clearValue($event)\" (keydown.enter)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel kbq-timezone-select__panel {{ getPanelTheme() }}\"\n cdkMonitorSubtreeFocus\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n </div>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { KeyValuePipe, NgClass } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightModule, KbqOptionModule } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelectModule } from '@koobiq/components/select';\nimport { KbqTagsModule } from '@koobiq/components/tags';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { KbqTimezoneOption } from './timezone-option.component';\nimport { KbqTimezoneOptionTooltip } from './timezone-option.directive';\nimport { KbqTimezoneSelect, KbqTimezoneSelectTrigger } from './timezone-select.component';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n@NgModule({\n imports: [\n OverlayModule,\n KbqFormFieldModule,\n KbqOptionModule,\n KbqSelectModule,\n KbqIconModule,\n KbqTagsModule,\n KbqToolTipModule,\n KbqHighlightModule,\n NgClass,\n KeyValuePipe,\n A11yModule,\n UtcOffsetPipe,\n CitiesByFilterPipe,\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger\n ],\n exports: [\n KbqTimezoneSelect,\n KbqTimezoneOption,\n KbqTimezoneOptionTooltip,\n KbqTimezoneSelectTrigger,\n KbqFormFieldModule\n ]\n})\nexport class KbqTimezoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koobiq/components",
|
|
3
|
-
"version": "19.8.
|
|
3
|
+
"version": "19.8.4",
|
|
4
4
|
"description": "koobiq",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"@angular/cdk": ">=19.0.0",
|
|
26
26
|
"@angular/core": ">=19.0.0",
|
|
27
27
|
"@angular/forms": ">=19.0.0",
|
|
28
|
-
"@koobiq/cdk": "19.8.
|
|
29
|
-
"@koobiq/angular-moment-adapter": "19.8.
|
|
30
|
-
"@koobiq/angular-luxon-adapter": "19.8.
|
|
28
|
+
"@koobiq/cdk": "19.8.4",
|
|
29
|
+
"@koobiq/angular-moment-adapter": "19.8.4",
|
|
30
|
+
"@koobiq/angular-luxon-adapter": "19.8.4",
|
|
31
31
|
"@koobiq/date-formatter": "^3.2.3",
|
|
32
32
|
"@koobiq/icons": "^11.1.3",
|
|
33
33
|
"@koobiq/design-tokens": "^3.14.0"
|
|
@@ -27,8 +27,8 @@ function ngAdd(options) {
|
|
|
27
27
|
}
|
|
28
28
|
// Installing dependencies
|
|
29
29
|
utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^19.2.19");
|
|
30
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/cdk', "^19.8.
|
|
31
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^19.8.
|
|
30
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/cdk', "^19.8.4");
|
|
31
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^19.8.4");
|
|
32
32
|
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
|
|
33
33
|
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
|
|
34
34
|
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^11.5.0");
|
|
@@ -26,13 +26,15 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
|
|
|
26
26
|
/** @docs-private */
|
|
27
27
|
protected readonly nativeElement: HTMLElement;
|
|
28
28
|
readonly externalConfiguration: unknown;
|
|
29
|
+
private tooltip;
|
|
29
30
|
private input;
|
|
30
31
|
private button;
|
|
31
|
-
private tooltip;
|
|
32
32
|
configuration: any;
|
|
33
33
|
/** Current value in input. */
|
|
34
34
|
value: BehaviorSubject<string>;
|
|
35
35
|
protected lastFocusOrigin: 'touch' | 'mouse' | 'keyboard' | 'program' | null;
|
|
36
|
+
/** Suppress the automatic input focus once — set when the component auto-opens from a model value. */
|
|
37
|
+
private suppressInputFocus;
|
|
36
38
|
/** state of component. */
|
|
37
39
|
isOpened: boolean;
|
|
38
40
|
/** Emit event by enter or not. Default is false */
|
|
@@ -75,6 +77,7 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
|
|
|
75
77
|
/** Implemented as part of ControlValueAccessor. */
|
|
76
78
|
setDisabledState(isDisabled: boolean): void;
|
|
77
79
|
toggle(): void;
|
|
80
|
+
private setOpened;
|
|
78
81
|
private updateLocaleParams;
|
|
79
82
|
private initDefaultParams;
|
|
80
83
|
private emitValue;
|