@unipin/angular-applet 21.5.0 → 21.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/unipin-angular-applet-accordion.mjs +12 -12
- package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs +6 -6
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert.mjs +9 -9
- package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-approval.mjs +119 -10
- package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -1
- package/fesm2022/{unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs → unipin-angular-applet-audit-audit-modal.component-DNlMbUda.mjs} +4 -4
- package/fesm2022/{unipin-angular-applet-audit-audit-modal.component-Y61VDaze.mjs.map → unipin-angular-applet-audit-audit-modal.component-DNlMbUda.mjs.map} +1 -1
- package/fesm2022/unipin-angular-applet-audit.mjs +7 -7
- package/fesm2022/unipin-angular-applet-audit.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-auth.mjs +21 -21
- package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-avatar.mjs +3 -3
- package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-badge.mjs +3 -3
- package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-buttons.mjs +6 -6
- package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-calendar.mjs +12 -12
- package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-collapsible.mjs +9 -9
- package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-common.mjs +24 -24
- package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-containers.mjs +12 -12
- package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-dialog.mjs +21 -21
- package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-forms.mjs +165 -107
- package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-froala.mjs +3 -3
- package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-grids.mjs +13 -9
- package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +3 -3
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-json-viewer.mjs +3 -3
- package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-kbd.mjs +3 -3
- package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs +6 -6
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-markdown.mjs +13 -10
- package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-popover.mjs +15 -15
- package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-progress-bar.mjs +3 -3
- package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-skeleton.mjs +3 -3
- package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-spinner.mjs +3 -3
- package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-stepper.mjs +6 -6
- package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-swipeable.mjs +12 -12
- package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tabs.mjs +9 -9
- package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tooltip.mjs +3 -3
- package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/types/unipin-angular-applet-approval.d.ts +42 -11
- package/types/unipin-angular-applet-forms.d.ts +27 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-forms.mjs","sources":["../../../projects/unipin-angular/forms/utils/set-validators/set-validators.util.ts","../../../projects/unipin-angular/forms/utils/toggle-form-controls/toggle-form-controls.util.ts","../../../projects/unipin-angular/forms/validators/valid-range/valid-range.validator.ts","../../../projects/unipin-angular/forms/validators/is-equal/is-equal.validator.ts","../../../projects/unipin-angular/forms/validators/is-not-equal/is-not-equal.validator.ts","../../../projects/unipin-angular/forms/components/form-field/field-control.ts","../../../projects/unipin-angular/forms/components/input/input.directive.ts","../../../projects/unipin-angular/forms/components/number/number.directive.ts","../../../projects/unipin-angular/forms/components/password/password.component.ts","../../../projects/unipin-angular/forms/components/radio/radio.directive.ts","../../../projects/unipin-angular/forms/components/switch/switch.component.ts","../../../projects/unipin-angular/forms/components/checkbox/checkbox.directive.ts","../../../projects/unipin-angular/forms/components/select/option/option.component.ts","../../../projects/unipin-angular/forms/components/select/select.component.ts","../../../projects/unipin-angular/forms/components/country-select/country-select.component.ts","../../../projects/unipin-angular/forms/components/currency-select/currency-select.component.ts","../../../projects/unipin-angular/forms/components/searchable-select/searchable-select.component.ts","../../../projects/unipin-angular/forms/components/rate-group-code-select/rate-group-code-select.component.ts","../../../projects/unipin-angular/forms/components/date-picker/date-picker.component.ts","../../../projects/unipin-angular/forms/components/date-range-picker/date-range-picker.component.ts","../../../projects/unipin-angular/forms/components/time-picker/utils/scroll-wheel.util.ts","../../../projects/unipin-angular/forms/components/time-picker/pipes/opacity.pipe.ts","../../../projects/unipin-angular/forms/components/time-picker/components/time.component.ts","../../../projects/unipin-angular/forms/components/time-picker/components/time-picker.component.ts","../../../projects/unipin-angular/forms/components/form-field/form-field.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.html","../../../projects/unipin-angular/forms/unipin-angular-applet-forms.ts"],"sourcesContent":["import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function setValidator(form: FormGroup, keys: string[], validators: ValidatorFn | ValidatorFn[]): void {\n \n if (\n !keys.length || \n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n\n keys.forEach(\n (key) => {\n const control = form.get(key);\n\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n }\n }\n );\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function toggleFormControls(form: FormGroup, keys: string[], mode: 'enable' | 'disable'): void{\n \n if (\n !keys.length ||\n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n keys.forEach((key) => form.get(key)?.[mode]());\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nfunction prettifyLabel(name: string): string{\n \n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n}\n\nfunction convertToDate(value: any): Date | null{\n \n if (value instanceof Date) return value;\n \n if (\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n return new Date(value);\n }\n return null;\n}\n\n/**\n * Range validator for number and date values.\n * @param {string} fromKey - The \"from\" control name\n * @param {string} toKey - The \"to\" control name\n * @returns {ValidatorFn} Throw error message when fromKey is greater than toKey\n *\n * Usage:\n * this.form = new FormGroup({\n * agingFrom: new FormControl(),\n * agingTo: new FormControl(),\n * }, { validators: rangeValidator('agingFrom', 'agingTo') });\n */\nexport function validRangeValidator(fromKey: string, toKey: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (!group) {\n return null;\n }\n\n const toControl = group.get(toKey);\n const fromControl = group.get(fromKey);\n \n if (\n !fromControl || \n !toControl\n ) {\n return null;\n }\n\n const toValue = toControl.value;\n const fromValue = fromControl.value;\n \n if (\n fromValue === null || \n toValue === null || \n fromValue === '' || \n toValue === ''\n ) {\n return null;\n }\n\n let isInvalid = false;\n const toDate = convertToDate(toValue);\n const fromDate = convertToDate(fromValue);\n\n if (fromDate && toDate) {\n isInvalid = toDate <= fromDate;\n } else if (\n !isNaN(fromValue) && \n !isNaN(toValue)\n ) {\n isInvalid = Number(toValue) <= Number(fromValue);\n }\n\n return !isInvalid? null : {\n rangeInvalid: {\n to: toKey,\n from: fromKey,\n message: `${ prettifyLabel(toKey) } must be greater than ${ prettifyLabel(fromKey) }`\n }\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have the same value.\n *\n * @param {string[]} controlNames - The names of the controls that must match\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isEqual` error if values do not match\n *\n * @example\n * this.form = new FormGroup({\n * password: new FormControl(''),\n * confirmPassword: new FormControl(''),\n * }, { validators: isEqualValidator(['password', 'confirmPassword']) });\n */\nexport function isEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (!values.every(v => v === values[0])) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have the same value` \n }\n };\n }\n return null;\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have different values.\n *\n * @param {string[]} controlNames - The names of the controls that must all be unique\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isNotEqual` error if duplicate values exist\n *\n * @example\n * this.form = new FormGroup({\n * primaryEmail: new FormControl(''),\n * secondaryEmail: new FormControl(''),\n * backupEmail: new FormControl(''),\n * }, { validators: isNotEqualValidator(['primaryEmail', 'secondaryEmail', 'backupEmail']) });\n */\nexport function isNotEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (new Set(values).size !== values.length) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isNotEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have different values` \n }\n };\n }\n return null;\n };\n}\n","import { DoCheck, inject, Injectable, Injector, Signal, signal } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\n\nconst errMessage = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`\n}\n\nconst extraParamKey = {\n max: 'max',\n min: 'min',\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n}\n\nexport abstract class UpFieldControl {\n \n public readonly abstract error: Signal<string>;\n public readonly abstract ngControl: NgControl | AbstractControl | null;\n\n public abstract setControlName(name: string): void;\n}\n\n@Injectable()\nexport class UpFieldControlComponent implements UpFieldControl, DoCheck {\n \n public readonly error = signal('');\n \n public readonly injector = inject(Injector);\n public readonly ngControl: NgControl | null = this.injector.get(NgControl, null);\n\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected _controlName = '';\n\n public ngDoCheck(): void{\n this.updateErrorState();\n }\n\n public setControlName(name: string): void{\n this._controlName = name;\n }\n\n protected updateErrorState(): void{\n const control = this.ngControl?.control?? null;\n if (\n !control ||\n !control.touched ||\n !control.dirty\n ) {\n return;\n }\n\n if (!control.errors) {\n this.error.set('');\n return;\n }\n\n const errKey = Object.keys(control.errors)[0];\n const errorData = control.errors[errKey];\n \n if (errorData?.message) {\n const newState = errorData.message;\n \n if (newState !== this.error()) {\n this.error.set(newState);\n }\n return;\n }\n \n const newState = errMessage[errKey as keyof typeof errMessage](\n this._controlName?? 'Field', \n errorData[extraParamKey[errKey as keyof typeof extraParamKey]]\n );\n\n if (newState !== this.error()) {\n this.error.set(newState);\n }\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Directive({\n exportAs: 'upInput',\n selector: '[upInput]',\n host: {\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpInputDirective)\n }\n ]\n})\nexport class UpInputDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer file:text-foreground placeholder:text-muted-foreground/30 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:h-7 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { computed, Directive, ElementRef, forwardRef, HostListener, input, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { UpFieldControl } from '../form-field/field-control';\nimport { UpInputDirective } from '../input/input.directive';\n\n\n@Directive({\n exportAs: 'upNumber',\n selector: '[upNumber]',\n host: { \n '[class]': '_computedClass()' \n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpNumberDirective),\n },\n ],\n})\nexport class UpNumberDirective extends UpInputDirective implements ControlValueAccessor {\n \n public readonly magnifyValue = input<number>(1);\n \n protected readonly maxDecimalDigits = computed(\n () => {\n if (\n !this.magnifyValue() ||\n this.magnifyValue() === 1\n ) {\n return 0;\n }\n\n const floatPoint = Math.log10(\n this.magnifyValue()\n );\n return floatPoint % 1 !== 0? 0 : floatPoint;\n }\n );\n\n protected lastCaretPos = 0;\n protected lastRawValue = '';\n protected lastKey: string | null = null;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor(\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLInputElement>,\n ) {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('blur')\n public onBlur(): void{\n this._onTouched();\n \n const input = this.el.nativeElement;\n if (!input.value.trim()) {\n input.value = ''\n this._onChange(null);\n return;\n }\n const { integer, decimal } = this.sanitizeNumber(input.value);\n\n const cleanedInteger = integer.replace(/^0+/, '') || '';\n const cleanedDecimal = decimal?? '';\n\n let formatted: string;\n if (\n (\n !cleanedInteger || \n /^0+$/.test(cleanedInteger)\n ) && \n (\n !cleanedDecimal || \n /^0+$/.test(cleanedDecimal)\n )\n ) {\n formatted = '0';\n } else if (!cleanedDecimal) {\n formatted = this.formatWithThousandSeparator(cleanedInteger || '0');\n } else {\n formatted = `${ this.formatWithThousandSeparator(cleanedInteger || '0') },${ cleanedDecimal }`;\n }\n input.value = formatted;\n }\n\n @HostListener('input', ['$event'])\n public onInput(event: Event): void{\n const input = event.target as HTMLInputElement;\n const postRaw = input.value;\n const postCaret = input.selectionStart ?? postRaw.length;\n\n const formatted = this.formatNumber(postRaw);\n input.value = formatted;\n\n const numericValue = Number(\n formatted.replace(/\\./g, '').replace(',', '.')\n );\n this._onChange(numericValue);\n\n const digitsBefore = postRaw.slice(0, postCaret).replace(/\\D/g, '').length;\n let newCaret = this.lastKey === ','? this.findCommaCaret(formatted, digitsBefore) : this.mapDigitsToIndex(formatted, digitsBefore);\n \n input.setSelectionRange(newCaret, newCaret);\n\n this.lastKey = null;\n this.lastRawValue = postRaw;\n this.lastCaretPos = newCaret;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void{\n const input = event.target as HTMLInputElement;\n const allowedKeys = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n ];\n\n this.lastKey = event.key;\n this.lastRawValue = input.value;\n this.lastCaretPos = input.selectionStart ?? input.value.length;\n\n if (\n (\n event.ctrlKey || \n event.metaKey\n ) && \n ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())\n ) {\n return;\n }\n if (allowedKeys.includes(event.key)) return;\n\n if (event.key === ',') {\n if (\n this.maxDecimalDigits() === 0 || \n input.value.includes(',')\n ) {\n event.preventDefault();\n }\n return;\n }\n\n if (!/^[0-9,]$/.test(event.key)) {\n event.preventDefault();\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this.renderer.setProperty(\n this.el.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n public writeValue(value: any): void{\n this.el.nativeElement.value = this.formatNumber(\n String(value?? '')\n );\n }\n\n protected findCommaCaret(formatted: string, digitsBefore: number): number{\n const commaIndex = formatted.indexOf(',');\n \n return commaIndex >= 0? commaIndex + 1 : this.mapDigitsToIndex(formatted, digitsBefore);\n }\n\n protected mapDigitsToIndex(formatted: string, digitsBefore: number): number{\n if (digitsBefore <= 0) return 0;\n \n let count = 0;\n for (let i = 0; i < formatted.length; i++) {\n if (/\\d/.test(formatted[i])) {\n count++;\n \n if (count === digitsBefore) {\n return i + 1;\n }\n }\n }\n return formatted.length;\n }\n\n protected formatNumber(value: string): string{\n if (!value) {\n return '';\n }\n const { integer, decimal } = this.sanitizeNumber(value);\n const formattedInt = this.formatWithThousandSeparator(integer || '');\n \n if (decimal !== undefined) {\n return `${ formattedInt || '0' },${ decimal }`;\n }\n return formattedInt || '0';\n }\n\n protected formatWithThousandSeparator(value: string): string{\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n }\n\n protected sanitizeNumber(value: string): { integer: string; decimal?: string }{\n const onlyDigitsComma = value.replace(/[^0-9,]/g, '');\n const singleComma = onlyDigitsComma.replace(\n /,/g, \n (_, i) => onlyDigitsComma.indexOf(',') === i ? ',' : ''\n );\n \n const [integerPart, decimalPart] = singleComma.split(',');\n return {\n integer: integerPart || '',\n decimal: decimalPart?.slice(0, this.maxDecimalDigits()),\n };\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matVisibilityRound, matVisibilityOffRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpInputDirective } from './../input/input.directive';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block relative',\n },\n imports: [\n NgIcon,\n UpInputDirective\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpPasswordComponent)\n },\n provideIcons(\n { \n matVisibilityRound, \n matVisibilityOffRound \n }\n ),\n ],\n template: `\n <input\n upInput\n maxlength=\"64\"\n [type]=\"type()\"\n [value]=\"value()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()?? ''\"\n [attr.autocomplete]=\"autocomplete()\"\n (blur)=\"touch()\"\n (input)=\"change($event.target)\"\n />\n \n <ng-icon\n class=\"absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer text-gray-500 hover:text-primary peer-disabled:opacity-50 peer-disabled:cursor-not-allowed\"\n [name]=\"type() === 'password'? 'matVisibilityRound' : 'matVisibilityOffRound'\"\n (click)=\"changeType()\"\n />\n `,\n})\nexport class UpPasswordComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly autocomplete = input<'off' | 'current-password' | 'new-password'>('off');\n\n public readonly required = input(\n false, \n { \n transform: booleanAttribute \n }\n );\n public readonly disabled = model<boolean>(false);\n \n public readonly value: WritableSignal<string> = signal('');\n public readonly type = signal<'text' | 'password'>('password');\n\n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'pr-10 peer', \n this.inlineClass()\n );\n }\n );\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value.set(val?? '');\n }\n\n /** \n * Function that is called by the forms API when the control status change to or from 'DISABLED'.\n * Depending on the status, it enables or disables the appropriate DOM element\n * @param {boolean} isDisabled - disable state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n \n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{\n if (!this.disabled()) {\n this.type.set(\n this.type() === 'text'? 'password' : 'text'\n );\n }\n }\n\n /**\n * Event handler to handle touch status.\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value and triggers change detection.\n * @param {any} param - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n this.value.set(value);\n this._onChange(\n this.value()\n );\n }\n}\n","import { Directive, forwardRef, input, computed } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n@Directive({\n exportAs: 'upRadio',\n selector: '[upRadio]',\n host: {\n type: 'radio',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRadioDirective)\n }\n ]\n})\nexport class UpRadioDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-4 min-w-0 rounded-full border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:bg-primary checked:after:rounded-full checked:after:size-2 checked:after:left-1/2 checked:after:top-1/2 checked:after:-translate-x-1/2 checked:after:-translate-y-1/2',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-flex items-center cursor-pointer'\n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSwitchComponent),\n }\n ],\n template: `\n <input\n type=\"checkbox\" \n class=\"sr-only peer\"\n [checked]=\"checked()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (blur)=\"touch()\"\n />\n \n <span \n (click)=\"toggle()\"\n [class]=\"_computedClass()\"\n >\n </span>\n `\n})\nexport class UpSwitchComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly checked = model(false);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly required = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n public readonly disabled = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n \n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative w-9 h-5 flex items-center justify-start flex-shrink-0 outline outline-input bg-input rounded-full \n transition-colors duration-300 ease-in-out \n peer-checked:bg-primary after:absolute \n after:top-1/2 after:left-[2px] after:-translate-y-1/2\n after:w-4 after:h-4 after:bg-white after:rounded-full after:shadow-md\n after:transition-transform after:duration-300 after:ease-in-out\n peer-checked:after:translate-x-[15px]\n peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2\n `,\n this.inlineClass(),\n );\n }\n );\n \n protected _onChange: (_val: any) => void = (_val: any): void => {};\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: boolean): void{\n this.checked.set(value);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public toggle(): void{\n if (this.disabled()) {\n return;\n }\n \n this.checked.set(!this.checked());\n this._onChange(this.checked());\n this._onTouched();\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Directive({\n exportAs: 'upCheckbox',\n selector: '[upCheckbox]',\n host: {\n type: 'checkbox',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCheckboxDirective)\n }\n ]\n})\nexport class UpCheckboxDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-5 min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary checked:bg-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:border-white checked:after:border-b-2 checked:after:border-r-2 checked:after:w-1.5 checked:after:h-2.5 checked:after:rounded-br-xs checked:after:rotate-45 checked:after:left-1.5 checked:after:top-0.75',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { Component, booleanAttribute, input, ChangeDetectionStrategy, ElementRef } from '@angular/core';\n\n\n@Component({\n selector: 'up-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n `,\n})\nexport class UpOptionComponent {\n \n public readonly value = input.required<any>();\n public readonly label = input<string | undefined>();\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>\n ) { }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, forwardRef, input, output, contentChild, contentChildren, InputSignal, Signal, OutputEmitterRef, model, ModelSignal, booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\nimport { UpOptionComponent } from './option/option.component';\n\n\n@Component({\n selector: 'up-select',\n styleUrl: './select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSelectComponent)\n }\n ],\n template: `\n <ng-select\n [items]=\"_items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [searchable]=\"searchable()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (blur)=\"touch()\"\n (ngModelChange)=\"change($event)\"\n />\n `,\n})\nexport class UpSelectComponent extends UpFieldControlComponent implements ControlValueAccessor{\n \n public readonly options: Signal<readonly UpOptionComponent[]> = contentChildren(UpOptionComponent);\n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' }); \n\n public readonly loading = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly searchable = input(false, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly items: InputSignal<any[] | undefined> = input<any[]>();\n\n public readonly _items: Signal<any[]> = computed(\n () => {\n if (this.items()?.length) {\n return this.items()?? [];\n }\n\n return this.options().map(\n (option) => {\n return {\n disabled: option.disabled(),\n\n [this.bindValue()]: option.value(),\n [this.bindLabel()]: option.label() || option.elementRef.nativeElement.textContent.trim(),\n };\n }\n );\n }\n );\n\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n \n public readonly changed: OutputEmitterRef<any> = output<any>();\n \n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n \n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Lifecycle hook — initializes the control name for form integration.\n */\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n /**\n * Writes a new value from the form model into the view.\n * \n * @param {any} value - The value to assign to the select.\n */\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n /**\n * Registers a callback function to be called when the select value changes.\n * \n * @param {(val: any) => void} fn - Callback function to handle value changes.\n */\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * \n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n /**\n * Marks the component as touched (used for form validation state).\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Handles changes from the dropdown and propagates them to the form model.\n * \n * @param {any} e - The new value emitted by the ng-select component.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(e);\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { Country } from '@unipin/graphql-schema';\nimport { CountryService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-country-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCountrySelectComponent),\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"name\"\n [value]=\"value()\"\n [items]=\"countries()\"\n [appendTo]=\"appendTo()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCountrySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select country');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly value = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<Country> = output<Country>();\n\n public readonly countries = signal<Country[]>([]);\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CountryService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe({\n error: () => {\n this.countries.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.countries.set(data as Country[]);\n this.isLoading.set(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.countries().find(c => c.code === value)!\n );\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { QueryResult } from '@unipin/angular-gql';\nimport { Currency, CurrencyResult } from '@unipin/graphql-schema';\nimport { CurrencyService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-currency-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCurrencySelectComponent)\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"displayLabel\"\n [value]=\"value()\"\n [items]=\"currencies()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCurrencySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select currency');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly value = model<string | null>(null);\n public readonly changed: OutputEmitterRef<Currency> = output<Currency>();\n\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n public readonly currencies = signal<Array<Currency & { displayLabel: string }>>([]);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CurrencyService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.currencies.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}: QueryResult<{ webConfigMsCurrency: CurrencyResult }>) => {\n this.currencies.set(\n (data as Currency[]).map(\n ({ code, name, ...ccy }) => {\n return {\n ...ccy,\n code,\n name,\n displayLabel: `${ code } - ${ name }`\n };\n }\n )\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.currencies().find(c => c.code === value)!\n );\n }\n }\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, Signal, InputSignal, input, ModelSignal, model, booleanAttribute, OutputEmitterRef, output, contentChild, computed } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule, ControlValueAccessor } from '@angular/forms';\nimport { Observable, Subject, distinctUntilChanged, debounceTime, tap, switchMap, map, catchError, of } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-searchable-select',\n styleUrl: '../select/select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSearchableSelectComponent)\n }\n ],\n template: `\n <ng-select\n typeToSearchText=\"Please enter 3 or more characters\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n \n [typeahead]=\"typeahead\"\n \n [items]=\"items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n \n (blur)=\"touch()\"\n (change)=\"change($event)\"\n />\n `,\n})\nexport class UpSearchableSelectComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly query: InputSignal<(keyword: string) => Observable<any>> = input.required<(keyword: string) => Observable<any>>(); \n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly initialItems = input<any[]>([]); \n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly loading: ModelSignal<boolean> = model<boolean>(false);\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n\n public readonly changed: OutputEmitterRef<any> = output<any>();\n\n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n\n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n public readonly items: Signal<any[]> = computed(\n () => {\n const results = this._queryResults();\n return results.length > 0? results : this.initialItems();\n }\n );\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(\n () => this.loading.set(true)\n ),\n switchMap(\n (k: string) => {\n return this.query()(k).pipe(\n map(\n (result: any[]) => !result.length? this.initialItems() : result\n ),\n catchError(\n () => of(this.initialItems())\n )\n );\n }\n ),\n tap(\n () => this.loading.set(false)\n )\n );\n\n protected readonly _queryResults: Signal<any[]> = toSignal(this.query$, { initialValue: [] });\n\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n if (!e) {\n this.value.set(null);\n } else {\n this.value.set(\n !this.multiple()? e[ this.bindValue() ] : e.map((o: any) => o[ this.bindValue() ])\n );\n }\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, ModelSignal, OnDestroy, OnInit, output, OutputEmitterRef, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Observable, of, Subscription, map, catchError } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { RateGroupCodeService } from '@unipin/angular-applet/common';\nimport { UpSearchableSelectComponent } from '../searchable-select/searchable-select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-rate-group-code-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block'\n },\n imports: [\n UpSearchableSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRateGroupCodeSelectComponent),\n }\n ],\n template: `\n <up-searchable-select\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"name\"\n [query]=\"queryFn\"\n [value]=\"value()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [initialItems]=\"rateGroupCodes()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpRateGroupCodeSelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly placeholder = input<string>('Select rate group code');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n \n public readonly disabled = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly multiple = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly clearable = input<boolean, any>(true, { transform: booleanAttribute });\n\n public readonly value: ModelSignal<string | null> = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<string> = output<string>();\n\n public readonly isLoading: WritableSignal<boolean> = signal<boolean>(true);\n public readonly _disabled: WritableSignal<boolean> = signal<boolean>(false);\n public readonly rateGroupCodes: WritableSignal<{code: string, name: string}[]> = signal<{ code: string, name: string }[]>([]);\n\n public readonly queryFn = (keyword: string): Observable<{ code: string, name: string }[]> => {\n if (\n !keyword || \n keyword.length < 3\n ) {\n return of(\n this.rateGroupCodes().filter(({ code }) => code.toLowerCase().includes(keyword.toLowerCase()))\n );\n }\n\n return this.service.query({ key: keyword }).pipe(\n map(\n ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n return (data as string[]).map((code) => ({ code, name: code }));\n }\n ),\n catchError(() => of([]))\n );\n };\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: RateGroupCodeService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.rateGroupCodes.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n this.rateGroupCodes.set(\n (data as string[]).map((code) => ({ code, name: code }))\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(value);\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matCalendarMonthRound } from '@ng-icons/material-icons/round';\nimport { format } from 'date-fns';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverContentRefDirective, UpPopoverTriggerDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDatepickerComponent),\n },\n provideIcons(\n { \n matCalendarMonthRound\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value()? true : false\"\n (blur)=\"touch()\"\n #btnTrigger\n >\n {{ value()? formattedDate() : placeholder() }}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n [activeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (selected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDatepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n \n public readonly btnTrigger = viewChild<ElementRef<HTMLButtonElement>>('btnTrigger');\n \n public readonly value = signal<SingleDate>(null);\n public readonly _disabled = signal<boolean>(false);\n \n public readonly formattedDate = computed(\n () => {\n return this.value()? format(this.value()!, this.dateFormat()) : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-48 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(day: SingleDate): void{\n this.value.set(day);\n \n this._onChange(day);\n this._markTouched();\n \n this.btnTrigger()?.nativeElement.click();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { Component, ChangeDetectionStrategy, forwardRef, booleanAttribute, computed, input, signal } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { NgIcon, provideIcons } from \"@ng-icons/core\";\nimport { matCalendarMonthRound } from \"@ng-icons/material-icons/round\";\nimport { format } from \"date-fns\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { RangeDate, SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverTriggerDirective, UpPopoverContentRefDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from \"../form-field/field-control\";\n\n\n@Component({\n selector: 'up-date-range-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDateRangePickerComponent)\n },\n provideIcons(\n { \n matCalendarMonthRound \n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value().from && value().to? true : false\"\n (blur)=\"touch()\"\n >\n {{ value().from && value().to? formattedDate() : placeholder()}}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n variant=\"range\"\n [activeDay]=\"null\"\n [activeRangeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (rangeSelected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDateRangePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<RangeDate>({ from: null, to: null });\n \n public readonly formattedDate = computed(\n () => {\n return this.value().from && this.value().to? `${ format(this.value().from!, this.dateFormat()) } - ${ format(this.value().to!, this.dateFormat()) }` : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-60 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(range: RangeDate): void{\n this.value.set(range);\n \n this._onChange(range);\n this._markTouched();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { IndexSetter } from '../types/time.type';\n\nexport function updateScrollSelection(el: HTMLElement | null, itemHeight: number, maxIndex: number, setIndex: IndexSetter): void{\n \n if (!el) {\n return;\n }\n const index = Math.round(el.scrollTop / itemHeight);\n \n setIndex(\n Math.max(\n 0, \n Math.min(maxIndex, index)\n )\n );\n}\n\nexport function snapScroll(el: HTMLElement | null, itemHeight: number, index: number): void{\n \n if (!el) {\n return;\n }\n \n el.scrollTo(\n {\n behavior: 'smooth',\n top: index * itemHeight,\n }\n );\n}\n\nexport function scrollImmediate(el: HTMLElement | null, itemHeight: number, index: number): void{\n \n if (!el) {\n return;\n }\n el.scrollTop = index * itemHeight;\n}\n\nexport function findClosestIndex(values: number[], target: number): number{\n \n let closestIdx = 0;\n let minDiff = Math.abs(values[0] - target);\n\n for (let i = 1; i < values.length; i++) {\n const diff = Math.abs(values[i] - target);\n \n if (diff < minDiff) {\n minDiff = diff;\n closestIdx = i;\n }\n }\n return closestIdx;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n name: 'opacity',\n pure: true,\n})\nexport class OpacityPipe implements PipeTransform {\n \n public transform(itemIndex: number, selectedIndex: number): string{\n const distance = Math.abs(itemIndex - selectedIndex);\n\n switch (distance) {\n case 0:\n return 'opacity-100';\n \n case 1:\n return 'opacity-20';\n \n case 2:\n return 'opacity-10';\n \n default:\n return 'opacity-15';\n }\n }\n}\n","import { input, signal, output, computed, Component, viewChild, ElementRef, afterNextRender, ChangeDetectionStrategy } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\nimport { snapScroll, scrollImmediate, findClosestIndex, updateScrollSelection } from '../utils/scroll-wheel.util';\nimport { TimeValue } from '../types/time.type';\nimport { OpacityPipe } from '../pipes/opacity.pipe';\n\n\n@Component({\n selector: 'up-time',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DecimalPipe,\n OpacityPipe,\n ],\n template: `\n <div\n class=\"relative w-37 flex gap-2 rounded-xl border border-border bg-white p-3 shadow-lg\"\n [style.height.px]=\"containerHeight\"\n >\n <!-- Hours scroll wheel -->\n <div class=\"flex-1 relative overflow-hidden\">\n <div\n class=\"\n h-full overflow-y-scroll snap-y snap-mandatory overscroll-contain \n [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\n \"\n (scroll)=\"onHoursScroll()\"\n\n #hoursScroll\n >\n <!-- Top padding -->\n <div [style.height.px]=\"padding\"></div>\n\n <!-- Hour items -->\n @for (hour of hours; track $index) {\n <div\n [class.invisible]=\"hourInvisible()[$index]\"\n [class]=\"\n 'h-10 flex items-center justify-center cursor-pointer transition-opacity duration-200 snap-center ' +\n ($index | opacity: selectedHourIndex())\n \"\n (click)=\"scrollToHour($index)\"\n >\n <span class=\"text-xl font-medium\">\n {{ hour | number:'2.0-0' }}\n </span>\n </div>\n }\n\n <!-- Bottom padding -->\n <div [style.height.px]=\"padding\"></div>\n </div>\n </div>\n\n <!-- Minutes scroll wheel -->\n <div class=\"flex-1 relative overflow-hidden\">\n <div\n #minutesScroll\n class=\"\n h-full overflow-y-scroll snap-y snap-mandatory overscroll-contain\n [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\n \"\n (scroll)=\"onMinutesScroll()\"\n >\n <!-- Top padding -->\n <div [style.height.px]=\"padding\"></div>\n\n <!-- Minute items -->\n @for (minute of minutes(); track $index) {\n <div\n [class.invisible]=\"minuteInvisible()[$index]\"\n [class]=\"\n 'h-10 flex items-center justify-center cursor-pointer transition-opacity duration-200 snap-center ' +\n ($index | opacity: selectedMinuteIndex())\n \"\n (click)=\"scrollToMinute($index)\"\n >\n <span class=\"text-xl font-medium\">\n {{ minute | number:'2.0-0' }}\n </span>\n </div>\n }\n\n <!-- Bottom padding -->\n <div [style.height.px]=\"padding\"></div>\n </div>\n </div>\n\n <!-- Center highlight -->\n <div\n class=\"absolute inset-x-0 left-3 right-3 pointer-events-none flex items-center justify-center\"\n [style.top.px]=\"highlightTop\"\n [style.height.px]=\"itemHeight\"\n >\n <div class=\"flex items-center justify-center font-medium w-full h-full bg-accent/30 border border-primary rounded-md shadow-inner\">\n :\n </div>\n </div>\n </div>\n `,\n})\nexport class UpTimeComponent {\n\n public readonly hoursScroll = viewChild<ElementRef<HTMLDivElement>>('hoursScroll');\n public readonly minutesScroll = viewChild<ElementRef<HTMLDivElement>>('minutesScroll');\n\n public readonly minuteInterval = input<number>(1);\n public readonly minTime = input<TimeValue | undefined>();\n public readonly maxTime = input<TimeValue | undefined>();\n public readonly value = input<TimeValue>({ hour: 0, minute: 0 });\n\n public readonly timeChanged = output<TimeValue>();\n\n public readonly selectedHourIndex = signal<number>(0);\n public readonly selectedMinuteIndex = signal<number>(0);\n\n public readonly minHour = computed(\n () => this.minTime()?.hour?? 0\n );\n public readonly maxHour = computed(\n () => this.maxTime()?.hour?? 23\n );\n \n public readonly minMinute = computed(\n () => this.minTime()?.minute?? 0\n );\n public readonly maxMinute = computed(\n () => this.maxTime()?.minute?? 59\n );\n\n protected readonly hours = Array.from({ length: 24 }, (_, i) => i);\n\n protected readonly minutes = computed(\n () => {\n const interval = Math.max(1, Math.min(60, this.minuteInterval()));\n const count = Math.ceil(60 / interval);\n\n return Array.from(\n { length: count }, \n (_, i) => i * interval\n ).filter(\n (m) => m < 60,\n );\n }\n );\n\n protected readonly hourInvisible = computed(\n () => {\n return this.hours.map(\n (hour) => {\n return hour < (this.minTime()?.hour ?? 0) ||\n hour > (this.maxTime()?.hour ?? 23)\n }\n );\n }\n );\n\n protected readonly minuteInvisible = computed(\n () => {\n const selectedHour = this.hours[this.selectedHourIndex()]?? 0;\n\n return this.minutes().map(\n (minute) =>\n (selectedHour === this.minHour() && minute < this.minMinute()) ||\n (selectedHour === this.maxHour() && minute > this.maxMinute())\n );\n }\n );\n\n protected readonly validMinuteRange = computed(\n () => {\n const selectedHour = this.hours[this.selectedHourIndex()] ?? 0;\n\n let min = 0;\n let max = 59;\n\n if (selectedHour === this.minHour()) {\n min = this.minMinute();\n }\n \n if (selectedHour === this.maxHour()) {\n max = this.maxMinute();\n }\n return { min, max };\n }\n );\n\n protected itemHeight = 40;\n protected visibleItems = 5;\n protected containerHeight = this.itemHeight * this.visibleItems;\n protected padding = (this.itemHeight * this.visibleItems - this.itemHeight) / 2;\n protected highlightTop = this.padding;\n \n protected scrollTimeout: any = null;\n protected lastEmittedTime: TimeValue | null = null;\n\n constructor() {\n afterNextRender(\n () => this.initializeScrollPosition()\n );\n }\n\n public initializeScrollPosition(): void{\n const hourIdx = this.hours.indexOf(this.value().hour);\n const minuteIdx = findClosestIndex(this.minutes(), this.value().minute);\n \n if (hourIdx !== -1) {\n this.selectedHourIndex.set(hourIdx)\n }\n \n this.selectedMinuteIndex.set(minuteIdx);\n\n this.scrollToHourImmediate(hourIdx);\n this.scrollToMinuteImmediate(minuteIdx);\n\n this.emitTime();\n }\n\n public onHoursScroll(): void{\n this.updateHourSelection();\n this.debounceEmit();\n }\n\n public onMinutesScroll(): void{\n this.updateMinuteSelection();\n this.debounceEmit();\n }\n\n private debounceEmit(): void{\n clearTimeout(this.scrollTimeout);\n\n this.scrollTimeout = setTimeout(\n () => {\n this.clampSelectionToValidRange();\n this.emitTime();\n }, \n 150\n );\n }\n\n private clampSelectionToValidRange(): void{\n const hours = this.hours;\n const minutes = this.minutes();\n\n let hourIdx = this.selectedHourIndex();\n const currentHour = hours[hourIdx] ?? 0;\n\n if (currentHour < this.minHour()) {\n hourIdx = hours.indexOf(this.minHour());\n\n if (hourIdx === -1) {\n for (let i = 0; i < hours.length; i++) {\n if (hours[i] >= this.minHour()) {\n hourIdx = i;\n break;\n }\n }\n }\n this.selectedHourIndex.set(hourIdx);\n this.scrollToHourImmediate(hourIdx);\n } \n else if (currentHour > this.maxHour()) {\n hourIdx = hours.indexOf(this.maxHour());\n\n if (hourIdx === -1) {\n for (let i = hours.length - 1; i >= 0; i--) {\n if (hours[i] <= this.maxHour()) {\n hourIdx = i;\n break;\n }\n }\n }\n this.selectedHourIndex.set(hourIdx);\n this.scrollToHourImmediate(hourIdx);\n }\n\n const { min: minMinute, max: maxMinute } = this.validMinuteRange();\n let minuteIdx = this.selectedMinuteIndex();\n const currentMinute = minutes[minuteIdx] ?? 0;\n\n if (currentMinute < minMinute) {\n let newIdx = -1;\n \n for (let i = 0; i < minutes.length; i++) {\n if (minutes[i] >= minMinute) {\n newIdx = i;\n break;\n }\n }\n\n if (newIdx !== -1) {\n this.selectedMinuteIndex.set(newIdx);\n this.scrollToMinuteImmediate(newIdx);\n }\n } \n else if (currentMinute > maxMinute) {\n let newIdx = -1;\n \n for (let i = minutes.length - 1; i >= 0; i--) {\n if (minutes[i] <= maxMinute) {\n newIdx = i;\n break;\n }\n }\n\n if (newIdx !== -1) {\n this.selectedMinuteIndex.set(newIdx);\n this.scrollToMinuteImmediate(newIdx);\n }\n }\n }\n\n public updateHourSelection(): void{\n updateScrollSelection(\n this.hoursScroll()!.nativeElement,\n this.itemHeight,\n this.hours.length - 1,\n (v) => this.selectedHourIndex.set(v),\n );\n }\n\n public updateMinuteSelection(): void{\n updateScrollSelection(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n this.minutes().length - 1,\n (v) => this.selectedMinuteIndex.set(v),\n );\n }\n\n public snapHours(): void{\n snapScroll(\n this.hoursScroll()!.nativeElement,\n this.itemHeight,\n this.selectedHourIndex(),\n );\n }\n\n public snapMinutes(): void{\n snapScroll(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n this.selectedMinuteIndex(),\n );\n }\n\n public scrollToHour(index: number): void{\n const clamped = Math.max(0, Math.min(23, index));\n this.selectedHourIndex.set(clamped);\n this.scrollToHourImmediate(clamped);\n this.emitTime();\n }\n\n public scrollToMinute(index: number): void{\n const maxIdx = this.minutes().length - 1;\n const clamped = Math.max(0, Math.min(maxIdx, index));\n \n this.selectedMinuteIndex.set(clamped);\n this.scrollToMinuteImmediate(clamped);\n this.emitTime();\n }\n\n public scrollToHourImmediate(index: number): void{\n scrollImmediate(this.hoursScroll()!.nativeElement, this.itemHeight, index);\n }\n\n public scrollToMinuteImmediate(index: number): void{\n scrollImmediate(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n index,\n );\n }\n\n public clampTime(time: TimeValue): TimeValue{\n let { hour, minute } = time;\n const min = this.minTime();\n const max = this.maxTime();\n\n if (min) {\n if (hour < (min.hour ?? 0)) {\n hour = min.hour!;\n minute = min.minute ?? 0;\n } \n else if (hour === (min.hour ?? 0) && min.minute !== undefined) {\n minute = Math.max(min.minute, minute);\n }\n }\n\n if (max) {\n if (hour > (max.hour ?? 23)) {\n hour = max.hour!;\n minute = max.minute ?? 59;\n } \n else if (hour === (max.hour ?? 23) && max.minute !== undefined) {\n minute = Math.min(max.minute, minute);\n }\n }\n\n const minuteValues = this.minutes();\n\n if (!minuteValues.includes(minute)) {\n let closest = minuteValues[0];\n let minDiff = Math.abs(minuteValues[0] - minute);\n \n for (let m of minuteValues) {\n const diff = Math.abs(m - minute);\n if (diff < minDiff) {\n closest = m;\n minDiff = diff;\n }\n }\n minute = closest;\n }\n return { hour, minute };\n }\n\n protected emitTime(): void{\n let time: TimeValue = {\n hour: this.hours[this.selectedHourIndex()]!,\n minute: this.minutes()[this.selectedMinuteIndex()]!,\n };\n\n time = this.clampTime(time);\n\n if (\n !this.lastEmittedTime ||\n this.lastEmittedTime.hour !== time.hour ||\n this.lastEmittedTime.minute !== time.minute\n ) {\n this.lastEmittedTime = time;\n this.timeChanged.emit(time);\n }\n }\n}\n","import { input, signal, effect, computed, Component, forwardRef, booleanAttribute, ChangeDetectionStrategy } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { provideIcons, NgIcon } from '@ng-icons/core';\nimport { matWatchLaterRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { UpPopoverTriggerDirective, UpPopoverContentRefDirective, UpPopoverComponent } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from './../../form-field/field-control';\nimport { TimeValue } from '../types/time.type';\nimport { UpTimeComponent } from './time.component';\n\n\n@Component({\n selector: 'up-timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpTimepickerComponent),\n },\n provideIcons(\n {\n matWatchLaterRound,\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpPopoverComponent,\n UpPopoverTriggerDirective,\n UpPopoverContentRefDirective,\n UpTimeComponent,\n ],\n template: `\n <up-popover placementOffset=\"4\">\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n \n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value() ? true : false\"\n \n (blur)=\"touch()\"\n >\n {{ formattedTime() }}\n\n <ng-icon size=\"16\" class=\"ml-auto\" name=\"matWatchLaterRound\" />\n </button>\n\n <ng-container *upPopoverContentRef>\n <div\n animate.enter=\"animate-in fade-in\"\n animate.leave=\"animate-out fade-out\"\n >\n <up-time\n [value]=\"value()\"\n [minTime]=\"minTime()\"\n [maxTime]=\"maxTime()\"\n [minuteInterval]=\"minuteInterval()\"\n (timeChanged)=\"selectedTime($event)\"\n />\n </div>\n </ng-container>\n </up-popover>\n `,\n})\nexport class UpTimepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly minTime = input<TimeValue | undefined>();\n public readonly maxTime = input<TimeValue | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly initialHour = input<number>(0);\n public readonly initialMinute = input<number>(0);\n public readonly minuteInterval = input<number>(1);\n\n public readonly disabled = input(\n false, \n { transform: booleanAttribute }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<TimeValue>({ hour: 0, minute: 0 });\n\n public readonly formattedTime = computed(\n () => {\n const time = this.value();\n if (!time) {\n return '--:--';\n }\n\n const hour = time.hour ?? 0;\n const minute = time.minute ?? 0;\n\n return `${ hour.toString().padStart(2, '0') }:${ minute.toString().padStart(2, '0') }`;\n }\n );\n\n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-40 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass(),\n );\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n\n effect(\n () => {\n if (!this.ngControl) {\n this.value.set(\n {\n hour: this.initialHour(),\n minute: this.initialMinute(),\n }\n );\n }\n }\n );\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n this._markTouched();\n }\n\n public setDisabledState?(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: TimeValue): void{\n this.value.set(value);\n }\n\n public selectedTime(time: TimeValue): void{\n this._markTouched();\n\n this.value.set(time);\n this._onChange(time);\n }\n\n protected _markTouched(): void{\n if (this._isTouched) {\n return;\n }\n\n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, contentChild, effect, input, booleanAttribute } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl } from './field-control'; \n\n\n@Component({\n selector: 'up-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div \n class=\"\n group flex flex-col gap-2\n has-[input[type='radio']]:flex-row has-[input[type='radio']]:items-center\n has-[input[type='checkbox']]:flex-row has-[input[type='checkbox']]:items-center\n \"\n [attr.data-state]=\"control()?.error()? 'error' : 'default'\"\n >\n @if (label()) {\n <label \n class=\"\n text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 select-none\n group-has-[input[type='checkbox']]:order-2 group-has-[input[type='radio']]:order-2\n group-has-[input[required]]:not-[.hide-asterisk]:after:content-['*'] group-has-[input[required]]:not-[.hide-asterisk]:after:text-destructive\n \"\n [for]=\"name()\"\n [class.text-destructive]=\"control()?.error()\"\n [class.hide-asterisk]=\"hideAsterisk()\"\n >\n {{ label() }}\n </label>\n }\n\n <ng-content />\n </div>\n\n @if (control()?.error()) {\n <p class=\"text-xs font-medium text-destructive\">\n {{ control()?.error() }}\n </p>\n }\n @else if (hint()) {\n <p class=\"text-xs text-muted-foreground\">\n {{ hint() }}\n </p>\n }\n `\n})\nexport class UpFormFieldComponent {\n\n public readonly name = input<string>('');\n public readonly hint = input<string>('');\n public readonly label = input<string>('');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly hideAsterisk = input<boolean, boolean>(false, { transform: booleanAttribute });\n\n public readonly control = contentChild(UpFieldControl);\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block space-y-2',\n this.inlineClass(),\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (!this.control()) {\n throw new Error('Form field must contain a field control, eg: input, checkbox, textarea, etc.');\n }\n this.control()!.setControlName(this.label());\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, output, signal, viewChild, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matDelete, matUpload } from '@ng-icons/material-icons/baseline';\nimport { up, compressImage, UpFileDragNDropDirective } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-image-picker',\n templateUrl: './image-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpImagePickerComponent)\n },\n provideIcons(\n {\n matUpload,\n matDelete\n }\n )\n ],\n imports: [\n NgIcon,\n UpFileDragNDropDirective\n ],\n})\nexport class UpImagePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly ratio = input<string>('1/1');\n public readonly imgSrc = model<string>('', { alias: 'src' });\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n \n public readonly changed = output<File>();\n \n public file: any = viewChild('file');\n public fileName: string = '';\n public isTouched: WritableSignal<boolean> = signal<boolean>(false);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer overflow-hidden flex flex-col size-full rounded-lg border bg-transparent shadow-xs outline-none md:text-sm relative hover:border-dashed border-2 border-foreground/20 group [&_span]:font-semibold [&_span]:text-xs [&_span]:text-center',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive' : '',\n this.inlineClass(),\n );\n }\n );\n \n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = (_val: any) => {};\n\n constructor() { \n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnDestroy(): void{\n if (this.imgSrc()) {\n URL.revokeObjectURL(this.imgSrc());\n }\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n \n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public writeValue(val: any): void{\n this.imgSrc.set(val);\n }\n\n public clear(ev?: Event): void{\n this.writeValue('');\n ev?.stopPropagation();\n }\n \n public touch(): void{\n if (!this.isTouched()) {\n this._onTouched();\n this.isTouched.set(true);\n }\n \n this.imgSrc.set(\n this.imgSrc()\n );\n }\n\n public async selectPhoto(files: any): Promise<void>{\n if (files?.target?.files) files = files.target.files;\n\n if (files && files[0]) {\n const compressedFile = await compressImage(\n {\n quality: 0.8,\n file: files[0],\n }\n );\n\n if (this.file()) {\n this.file().nativeElement.value = '';\n }\n \n this.imgSrc.set(\n URL.createObjectURL(compressedFile)\n );\n this.fileName = compressedFile.name;\n \n this.changed.emit(compressedFile);\n this._onChange(compressedFile);\n }\n }\n}\n","<div \n upFileDragNDrop \n draggedClass=\"border-dashed border-2 border-foreground/20\"\n [class]=\"_computedClass()\"\n [style.aspect-ratio]=\"ratio()\"\n (fileDropped)=\"selectPhoto($event)\"\n>\n @if (imgSrc()) {\n <img \n class=\"overflow-hidden object-cover size-full\"\n [alt]=\"fileName\" \n [src]=\"imgSrc()\" \n [style.aspect-ratio]=\"ratio()\"\n />\n }\n \n <div \n class=\"absolute inset-0 p-2 flex flex-col items-center justify-center text-muted-foreground cursor-pointer opacity-80 group-hover:opacity-100 transition\"\n [style.aspect-ratio]=\"ratio()\"\n >\n @if (imgSrc() === '') {\n <div \n class=\"flex flex-col items-center\"\n (click)=\"file.click()\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matUpload\"\n />\n <span>Choose Image or Drag here.</span>\n </div>\n }\n @else {\n <div \n class=\"absolute flex items-center ustify-center opacity-0 group-hover:opacity-100 transition text-destructive\"\n (click)=\"clear($event)\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matDelete\"\n />\n </div>\n }\n </div>\n\n <input \n type=\"file\" \n hidden \n accept=\"image/png, image/jpeg, image/jpg\" \n (change)=\"selectPhoto($event)\" \n #file\n />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-forms.mjs","sources":["../../../projects/unipin-angular/forms/utils/set-validators/set-validators.util.ts","../../../projects/unipin-angular/forms/utils/toggle-form-controls/toggle-form-controls.util.ts","../../../projects/unipin-angular/forms/validators/valid-range/valid-range.validator.ts","../../../projects/unipin-angular/forms/validators/is-equal/is-equal.validator.ts","../../../projects/unipin-angular/forms/validators/is-not-equal/is-not-equal.validator.ts","../../../projects/unipin-angular/forms/components/form-field/field-control.ts","../../../projects/unipin-angular/forms/components/input/input.directive.ts","../../../projects/unipin-angular/forms/components/number/number.directive.ts","../../../projects/unipin-angular/forms/components/password/password.component.ts","../../../projects/unipin-angular/forms/components/radio/radio-group.component.ts","../../../projects/unipin-angular/forms/components/radio/radio.directive.ts","../../../projects/unipin-angular/forms/components/switch/switch.component.ts","../../../projects/unipin-angular/forms/components/checkbox/checkbox.directive.ts","../../../projects/unipin-angular/forms/components/select/option/option.component.ts","../../../projects/unipin-angular/forms/components/select/select.component.ts","../../../projects/unipin-angular/forms/components/country-select/country-select.component.ts","../../../projects/unipin-angular/forms/components/currency-select/currency-select.component.ts","../../../projects/unipin-angular/forms/components/searchable-select/searchable-select.component.ts","../../../projects/unipin-angular/forms/components/rate-group-code-select/rate-group-code-select.component.ts","../../../projects/unipin-angular/forms/components/date-picker/date-picker.component.ts","../../../projects/unipin-angular/forms/components/date-range-picker/date-range-picker.component.ts","../../../projects/unipin-angular/forms/components/time-picker/utils/scroll-wheel.util.ts","../../../projects/unipin-angular/forms/components/time-picker/pipes/opacity.pipe.ts","../../../projects/unipin-angular/forms/components/time-picker/components/time.component.ts","../../../projects/unipin-angular/forms/components/time-picker/components/time-picker.component.ts","../../../projects/unipin-angular/forms/components/form-field/form-field.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.ts","../../../projects/unipin-angular/forms/components/image-picker/image-picker.component.html","../../../projects/unipin-angular/forms/unipin-angular-applet-forms.ts"],"sourcesContent":["import { FormGroup, ValidatorFn } from '@angular/forms';\n\nexport function setValidator(form: FormGroup, keys: string[], validators: ValidatorFn | ValidatorFn[]): void {\n \n if (\n !keys.length || \n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n\n keys.forEach(\n (key) => {\n const control = form.get(key);\n\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n }\n }\n );\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function toggleFormControls(form: FormGroup, keys: string[], mode: 'enable' | 'disable'): void{\n \n if (\n !keys.length ||\n keys.length === 1\n ) {\n throw new Error('Use normal action for single keys and keys cannot be empty.');\n }\n keys.forEach((key) => form.get(key)?.[mode]());\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nfunction prettifyLabel(name: string): string{\n \n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n}\n\nfunction convertToDate(value: any): Date | null{\n \n if (value instanceof Date) return value;\n \n if (\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n return new Date(value);\n }\n return null;\n}\n\n/**\n * Range validator for number and date values.\n * @param {string} fromKey - The \"from\" control name\n * @param {string} toKey - The \"to\" control name\n * @returns {ValidatorFn} Throw error message when fromKey is greater than toKey\n *\n * Usage:\n * this.form = new FormGroup({\n * agingFrom: new FormControl(),\n * agingTo: new FormControl(),\n * }, { validators: rangeValidator('agingFrom', 'agingTo') });\n */\nexport function validRangeValidator(fromKey: string, toKey: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (!group) {\n return null;\n }\n\n const toControl = group.get(toKey);\n const fromControl = group.get(fromKey);\n \n if (\n !fromControl || \n !toControl\n ) {\n return null;\n }\n\n const toValue = toControl.value;\n const fromValue = fromControl.value;\n \n if (\n fromValue === null || \n toValue === null || \n fromValue === '' || \n toValue === ''\n ) {\n return null;\n }\n\n let isInvalid = false;\n const toDate = convertToDate(toValue);\n const fromDate = convertToDate(fromValue);\n\n if (fromDate && toDate) {\n isInvalid = toDate <= fromDate;\n } else if (\n !isNaN(fromValue) && \n !isNaN(toValue)\n ) {\n isInvalid = Number(toValue) <= Number(fromValue);\n }\n\n return !isInvalid? null : {\n rangeInvalid: {\n to: toKey,\n from: fromKey,\n message: `${ prettifyLabel(toKey) } must be greater than ${ prettifyLabel(fromKey) }`\n }\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have the same value.\n *\n * @param {string[]} controlNames - The names of the controls that must match\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isEqual` error if values do not match\n *\n * @example\n * this.form = new FormGroup({\n * password: new FormControl(''),\n * confirmPassword: new FormControl(''),\n * }, { validators: isEqualValidator(['password', 'confirmPassword']) });\n */\nexport function isEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (!values.every(v => v === values[0])) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have the same value` \n }\n };\n }\n return null;\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n\n/**\n * Validator that requires all specified form controls to have different values.\n *\n * @param {string[]} controlNames - The names of the controls that must all be unique\n * @param {string} [message] - Optional custom error message\n * @returns {ValidatorFn} A validator function producing an `isNotEqual` error if duplicate values exist\n *\n * @example\n * this.form = new FormGroup({\n * primaryEmail: new FormControl(''),\n * secondaryEmail: new FormControl(''),\n * backupEmail: new FormControl(''),\n * }, { validators: isNotEqualValidator(['primaryEmail', 'secondaryEmail', 'backupEmail']) });\n */\nexport function isNotEqualValidator(controlNames: string[], message?: string): ValidatorFn{\n \n return (group: AbstractControl): ValidationErrors | null => {\n if (\n !group ||\n controlNames.length < 2\n ) {\n return null;\n }\n\n let isEmpty = false;\n const values = controlNames.reduce(\n (acc, name) => {\n const control = group.get(name);\n if (!control) {\n return acc;\n }\n\n if (!control.value) {\n isEmpty = true;\n return acc;\n }\n\n acc.push(control.value);\n return acc;\n },\n [] as string[]\n );\n\n if (isEmpty) {\n return null;\n }\n\n if (new Set(values).size !== values.length) {\n const labels = controlNames.map(\n (name) => {\n return name\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n );\n \n return {\n isNotEqual: {\n fields: controlNames,\n message: message || `${ labels.join(', ') } should have different values` \n }\n };\n }\n return null;\n };\n}\n","import { DoCheck, inject, Injectable, Injector, Signal, signal } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\n\nconst errMessage = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`\n}\n\nconst extraParamKey = {\n max: 'max',\n min: 'min',\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n}\n\nexport abstract class UpFieldControl {\n \n public readonly abstract error: Signal<string>;\n public readonly abstract ngControl: NgControl | AbstractControl | null;\n\n public abstract setControlName(name: string): void;\n}\n\n@Injectable()\nexport class UpFieldControlComponent implements UpFieldControl, DoCheck {\n \n public readonly error = signal('');\n \n public readonly injector = inject(Injector);\n public readonly ngControl: NgControl | null = this.injector.get(NgControl, null);\n\n protected readonly _parentForm = inject(NgForm, { optional: true });\n protected readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n protected _controlName = '';\n\n public ngDoCheck(): void{\n this.updateErrorState();\n }\n\n public setControlName(name: string): void{\n this._controlName = name;\n }\n\n protected updateErrorState(): void{\n const control = this.ngControl?.control?? null;\n if (\n !control ||\n !control.touched ||\n !control.dirty\n ) {\n return;\n }\n\n if (!control.errors) {\n this.error.set('');\n return;\n }\n\n const errKey = Object.keys(control.errors)[0];\n const errorData = control.errors[errKey];\n \n if (errorData?.message) {\n const newState = errorData.message;\n \n if (newState !== this.error()) {\n this.error.set(newState);\n }\n return;\n }\n \n const newState = errMessage[errKey as keyof typeof errMessage](\n this._controlName?? 'Field', \n errorData[extraParamKey[errKey as keyof typeof extraParamKey]]\n );\n\n if (newState !== this.error()) {\n this.error.set(newState);\n }\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Directive({\n exportAs: 'upInput',\n selector: '[upInput]',\n host: {\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpInputDirective)\n }\n ]\n})\nexport class UpInputDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer file:text-foreground placeholder:text-muted-foreground/30 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:text-sm file:font-medium file:h-7 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { computed, Directive, ElementRef, forwardRef, HostListener, input, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { UpFieldControl } from '../form-field/field-control';\nimport { UpInputDirective } from '../input/input.directive';\n\n\n@Directive({\n exportAs: 'upNumber',\n selector: '[upNumber]',\n host: { \n '[class]': '_computedClass()' \n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpNumberDirective),\n },\n ],\n})\nexport class UpNumberDirective extends UpInputDirective implements ControlValueAccessor {\n \n public readonly magnifyValue = input<number>(1);\n \n protected readonly maxDecimalDigits = computed(\n () => {\n if (\n !this.magnifyValue() ||\n this.magnifyValue() === 1\n ) {\n return 0;\n }\n\n const floatPoint = Math.log10(\n this.magnifyValue()\n );\n return floatPoint % 1 !== 0? 0 : floatPoint;\n }\n );\n\n protected lastCaretPos = 0;\n protected lastRawValue = '';\n protected lastKey: string | null = null;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor(\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLInputElement>,\n ) {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('blur')\n public onBlur(): void{\n this._onTouched();\n \n const input = this.el.nativeElement;\n if (!input.value.trim()) {\n input.value = ''\n this._onChange(null);\n return;\n }\n const { integer, decimal } = this.sanitizeNumber(input.value);\n\n const cleanedInteger = integer.replace(/^0+/, '') || '';\n const cleanedDecimal = decimal?? '';\n\n let formatted: string;\n if (\n (\n !cleanedInteger || \n /^0+$/.test(cleanedInteger)\n ) && \n (\n !cleanedDecimal || \n /^0+$/.test(cleanedDecimal)\n )\n ) {\n formatted = '0';\n } else if (!cleanedDecimal) {\n formatted = this.formatWithThousandSeparator(cleanedInteger || '0');\n } else {\n formatted = `${ this.formatWithThousandSeparator(cleanedInteger || '0') },${ cleanedDecimal }`;\n }\n input.value = formatted;\n }\n\n @HostListener('input', ['$event'])\n public onInput(event: Event): void{\n const input = event.target as HTMLInputElement;\n const postRaw = input.value;\n const postCaret = input.selectionStart ?? postRaw.length;\n\n const formatted = this.formatNumber(postRaw);\n input.value = formatted;\n\n const numericValue = Number(\n formatted.replace(/\\./g, '').replace(',', '.')\n );\n this._onChange(numericValue);\n\n const digitsBefore = postRaw.slice(0, postCaret).replace(/\\D/g, '').length;\n let newCaret = this.lastKey === ','? this.findCommaCaret(formatted, digitsBefore) : this.mapDigitsToIndex(formatted, digitsBefore);\n \n input.setSelectionRange(newCaret, newCaret);\n\n this.lastKey = null;\n this.lastRawValue = postRaw;\n this.lastCaretPos = newCaret;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void{\n const input = event.target as HTMLInputElement;\n const allowedKeys = [\n 'Backspace',\n 'Tab',\n 'Enter',\n 'Escape',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n ];\n\n this.lastKey = event.key;\n this.lastRawValue = input.value;\n this.lastCaretPos = input.selectionStart ?? input.value.length;\n\n if (\n (\n event.ctrlKey || \n event.metaKey\n ) && \n ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())\n ) {\n return;\n }\n if (allowedKeys.includes(event.key)) return;\n\n if (event.key === ',') {\n if (\n this.maxDecimalDigits() === 0 || \n input.value.includes(',')\n ) {\n event.preventDefault();\n }\n return;\n }\n\n if (!/^[0-9,]$/.test(event.key)) {\n event.preventDefault();\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this.renderer.setProperty(\n this.el.nativeElement,\n 'disabled',\n isDisabled\n );\n }\n\n public writeValue(value: any): void{\n this.el.nativeElement.value = this.formatNumber(\n String(value?? '')\n );\n }\n\n protected findCommaCaret(formatted: string, digitsBefore: number): number{\n const commaIndex = formatted.indexOf(',');\n \n return commaIndex >= 0? commaIndex + 1 : this.mapDigitsToIndex(formatted, digitsBefore);\n }\n\n protected mapDigitsToIndex(formatted: string, digitsBefore: number): number{\n if (digitsBefore <= 0) return 0;\n \n let count = 0;\n for (let i = 0; i < formatted.length; i++) {\n if (/\\d/.test(formatted[i])) {\n count++;\n \n if (count === digitsBefore) {\n return i + 1;\n }\n }\n }\n return formatted.length;\n }\n\n protected formatNumber(value: string): string{\n if (!value) {\n return '';\n }\n const { integer, decimal } = this.sanitizeNumber(value);\n const formattedInt = this.formatWithThousandSeparator(integer || '');\n \n if (decimal !== undefined) {\n return `${ formattedInt || '0' },${ decimal }`;\n }\n return formattedInt || '0';\n }\n\n protected formatWithThousandSeparator(value: string): string{\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n }\n\n protected sanitizeNumber(value: string): { integer: string; decimal?: string }{\n const onlyDigitsComma = value.replace(/[^0-9,]/g, '');\n const singleComma = onlyDigitsComma.replace(\n /,/g, \n (_, i) => onlyDigitsComma.indexOf(',') === i ? ',' : ''\n );\n \n const [integerPart, decimalPart] = singleComma.split(',');\n return {\n integer: integerPart || '',\n decimal: decimalPart?.slice(0, this.maxDecimalDigits()),\n };\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matVisibilityRound, matVisibilityOffRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpInputDirective } from './../input/input.directive';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block relative',\n },\n imports: [\n NgIcon,\n UpInputDirective\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpPasswordComponent)\n },\n provideIcons(\n { \n matVisibilityRound, \n matVisibilityOffRound \n }\n ),\n ],\n template: `\n <input\n upInput\n maxlength=\"64\"\n [type]=\"type()\"\n [value]=\"value()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()?? ''\"\n [attr.autocomplete]=\"autocomplete()\"\n (blur)=\"touch()\"\n (input)=\"change($event.target)\"\n />\n \n <ng-icon\n class=\"absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer text-gray-500 hover:text-primary peer-disabled:opacity-50 peer-disabled:cursor-not-allowed\"\n [name]=\"type() === 'password'? 'matVisibilityRound' : 'matVisibilityOffRound'\"\n (click)=\"changeType()\"\n />\n `,\n})\nexport class UpPasswordComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly autocomplete = input<'off' | 'current-password' | 'new-password'>('off');\n\n public readonly required = input(\n false, \n { \n transform: booleanAttribute \n }\n );\n public readonly disabled = model<boolean>(false);\n \n public readonly value: WritableSignal<string> = signal('');\n public readonly type = signal<'text' | 'password'>('password');\n\n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'pr-10 peer', \n this.inlineClass()\n );\n }\n );\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value.set(val?? '');\n }\n\n /** \n * Function that is called by the forms API when the control status change to or from 'DISABLED'.\n * Depending on the status, it enables or disables the appropriate DOM element\n * @param {boolean} isDisabled - disable state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n \n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{\n if (!this.disabled()) {\n this.type.set(\n this.type() === 'text'? 'password' : 'text'\n );\n }\n }\n\n /**\n * Event handler to handle touch status.\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value and triggers change detection.\n * @param {any} param - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n this.value.set(value);\n this._onChange(\n this.value()\n );\n }\n}\n","import { Component, forwardRef, signal, input, computed, booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\nlet groupId = 0;\n\n@Component({\n selector: 'up-radio-group',\n host: {\n 'class': 'block',\n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRadioGroupComponent)\n },\n ],\n template: `<ng-content />`\n})\nexport class UpRadioGroupComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly name = input<string>(`up-radio-group-${groupId++}`);\n public readonly disabled = input(false, { transform: booleanAttribute });\n \n public readonly value = signal<string>('');\n public readonly _disabled = signal<boolean>(false);\n\n public readonly isDisabledResolved = computed(() => this.disabled() || this._disabled());\n\n protected _onTouched: () => void = () => {};\n protected _onChange: (val: any) => void = () => {};\n\n constructor() {\n super();\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public writeValue(val: any): void{\n this.value.set(val);\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public select(val: any): void{\n if (!this.isDisabledResolved()) {\n this.value.set(val);\n \n this._onTouched();\n this._onChange(val);\n }\n }\n}\n","import { Directive, input, inject, computed } from '@angular/core';\nimport { UpRadioGroupComponent } from './radio-group.component';\nimport { up } from '@unipin/angular-applet/common';\n\n\n@Directive({\n selector: 'input[upRadio]',\n standalone: true,\n host: {\n 'type': 'radio',\n \n '[checked]': 'checked()',\n '[disabled]': 'disabled()',\n '[class]': '_computedClass()',\n \n '(change)': 'toggle($event)',\n }\n})\nexport class UpRadioDirective {\n\n public readonly radioGroup = inject(UpRadioGroupComponent);\n\n public readonly value = input.required<string>();\n public readonly inlineClass = input<string>('', { alias: 'class' });\n\n protected readonly disabled = computed(() => this.radioGroup.isDisabledResolved());\n protected readonly checked = computed(() => this.radioGroup.value() === this.value());\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-4 min-w-0 rounded-full border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:bg-primary checked:after:rounded-full checked:after:size-2 checked:after:left-1/2 checked:after:top-1/2 checked:after:-translate-x-1/2 checked:after:-translate-y-1/2',\n \n this.radioGroup.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n\n public toggle(ev: Event): void{\n ev.stopPropagation();\n this.radioGroup.select(this.value());\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'inline-flex items-center cursor-pointer'\n },\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSwitchComponent),\n }\n ],\n template: `\n <input\n type=\"checkbox\" \n class=\"sr-only peer\"\n [checked]=\"checked()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n (blur)=\"touch()\"\n />\n \n <span \n (click)=\"toggle()\"\n [class]=\"_computedClass()\"\n >\n </span>\n `\n})\nexport class UpSwitchComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly checked = model(false);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly required = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n public readonly disabled = input(\n false, \n {\n transform: booleanAttribute\n }\n );\n \n public isTouched: boolean = false;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative w-9 h-5 flex items-center justify-start flex-shrink-0 outline outline-input bg-input rounded-full \n transition-colors duration-300 ease-in-out \n peer-checked:bg-primary after:absolute \n after:top-1/2 after:left-[2px] after:-translate-y-1/2\n after:w-4 after:h-4 after:bg-white after:rounded-full after:shadow-md\n after:transition-transform after:duration-300 after:ease-in-out\n peer-checked:after:translate-x-[15px]\n peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2\n `,\n this.inlineClass(),\n );\n }\n );\n \n protected _onChange: (_val: any) => void = (_val: any): void => {};\n protected _onTouched: () => void = (): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: boolean): void{\n this.checked.set(value);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public toggle(): void{\n if (this.disabled()) {\n return;\n }\n \n this.checked.set(!this.checked());\n this._onChange(this.checked());\n this._onTouched();\n }\n}\n","import { Directive, computed, forwardRef, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Directive({\n exportAs: 'upCheckbox',\n selector: '[upCheckbox]',\n host: {\n type: 'checkbox',\n '[class]': '_computedClass()',\n },\n providers:[\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCheckboxDirective)\n }\n ]\n})\nexport class UpCheckboxDirective extends UpFieldControlComponent {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer dark:bg-input/30 border-input size-5 min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-border/40 relative cursor-pointer',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:outline-none',\n 'appearance-none checked:border-primary checked:bg-primary',\n 'checked:after:content-[\\'\\'] checked:after:absolute checked:after:border-white checked:after:border-b-2 checked:after:border-r-2 checked:after:w-1.5 checked:after:h-2.5 checked:after:rounded-br-xs checked:after:rotate-45 checked:after:left-1.5 checked:after:top-0.75',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive focus-visible:ring-destructive/50' : '',\n this.inlineClass(),\n );\n }\n );\n}\n","import { Component, booleanAttribute, input, ChangeDetectionStrategy, ElementRef } from '@angular/core';\n\n\n@Component({\n selector: 'up-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content />\n `,\n})\nexport class UpOptionComponent {\n \n public readonly value = input.required<any>();\n public readonly label = input<string | undefined>();\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>\n ) { }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, forwardRef, input, output, contentChild, contentChildren, InputSignal, Signal, OutputEmitterRef, model, ModelSignal, booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\nimport { UpOptionComponent } from './option/option.component';\n\n\n@Component({\n selector: 'up-select',\n styleUrl: './select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSelectComponent)\n }\n ],\n template: `\n <ng-select\n [items]=\"_items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [searchable]=\"searchable()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (blur)=\"touch()\"\n (ngModelChange)=\"change($event)\"\n />\n `,\n})\nexport class UpSelectComponent extends UpFieldControlComponent implements ControlValueAccessor{\n \n public readonly options: Signal<readonly UpOptionComponent[]> = contentChildren(UpOptionComponent);\n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' }); \n\n public readonly loading = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly searchable = input(false, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly items: InputSignal<any[] | undefined> = input<any[]>();\n\n public readonly _items: Signal<any[]> = computed(\n () => {\n if (this.items()?.length) {\n return this.items()?? [];\n }\n\n return this.options().map(\n (option) => {\n return {\n disabled: option.disabled(),\n\n [this.bindValue()]: option.value(),\n [this.bindLabel()]: option.label() || option.elementRef.nativeElement.textContent.trim(),\n };\n }\n );\n }\n );\n\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n \n public readonly changed: OutputEmitterRef<any> = output<any>();\n \n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n \n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * Lifecycle hook — initializes the control name for form integration.\n */\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n /**\n * Writes a new value from the form model into the view.\n * \n * @param {any} value - The value to assign to the select.\n */\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n /**\n * Registers a callback function to be called when the select value changes.\n * \n * @param {(val: any) => void} fn - Callback function to handle value changes.\n */\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n /**\n * Registers a callback function to be called when the component is touched.\n * \n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n /**\n * Marks the component as touched (used for form validation state).\n */\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n /**\n * Handles changes from the dropdown and propagates them to the form model.\n * \n * @param {any} e - The new value emitted by the ng-select component.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(e);\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { Country } from '@unipin/graphql-schema';\nimport { CountryService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-country-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCountrySelectComponent),\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"name\"\n [value]=\"value()\"\n [items]=\"countries()\"\n [appendTo]=\"appendTo()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCountrySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select country');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly value = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<Country> = output<Country>();\n\n public readonly countries = signal<Country[]>([]);\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CountryService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe({\n error: () => {\n this.countries.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.countries.set(data as Country[]);\n this.isLoading.set(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.countries().find(c => c.code === value)!\n );\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, OnDestroy, OnInit, output, OutputEmitterRef, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { QueryResult } from '@unipin/angular-gql';\nimport { Currency, CurrencyResult } from '@unipin/graphql-schema';\nimport { CurrencyService } from '@unipin/angular-applet/common';\nimport { UpSelectComponent } from '../select/select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-currency-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'block' \n },\n imports: [\n UpSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpCurrencySelectComponent)\n }\n ],\n template: `\n <up-select\n searchable\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"displayLabel\"\n [value]=\"value()\"\n [items]=\"currencies()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpCurrencySelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly multiple = input<boolean>(false);\n public readonly clearable = input<boolean>(true);\n public readonly placeholder = input<string>('Select currency');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly value = model<string | null>(null);\n public readonly changed: OutputEmitterRef<Currency> = output<Currency>();\n\n public readonly isLoading = signal<boolean>(true);\n public readonly _disabled = signal<boolean>(false);\n public readonly currencies = signal<Array<Currency & { displayLabel: string }>>([]);\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: CurrencyService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.currencies.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}: QueryResult<{ webConfigMsCurrency: CurrencyResult }>) => {\n this.currencies.set(\n (data as Currency[]).map(\n ({ code, name, ...ccy }) => {\n return {\n ...ccy,\n code,\n name,\n displayLabel: `${ code } - ${ name }`\n };\n }\n )\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(\n this.currencies().find(c => c.code === value)!\n );\n }\n }\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, Signal, InputSignal, input, ModelSignal, model, booleanAttribute, OutputEmitterRef, output, contentChild, computed } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule, ControlValueAccessor } from '@angular/forms';\nimport { Observable, Subject, distinctUntilChanged, debounceTime, tap, switchMap, map, catchError, of } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-searchable-select',\n styleUrl: '../select/select.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'block relative',\n },\n imports: [\n FormsModule,\n NgSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpSearchableSelectComponent)\n }\n ],\n template: `\n <ng-select\n typeToSearchText=\"Please enter 3 or more characters\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n \n [typeahead]=\"typeahead\"\n \n [items]=\"items()\"\n [ngModel]=\"value()\"\n [addTag]=\"addTag()\"\n [loading]=\"loading()\"\n [multiple]=\"multiple()\"\n [readonly]=\"disabled()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [bindLabel]=\"bindLabel()\"\n [bindValue]=\"bindValue()\"\n [class]=\"_computedClass()\"\n [placeholder]=\"placeholder()\"\n [virtualScroll]=\"virtualScroll()\"\n [attr.data-disabled]=\"disabled()\"\n \n (blur)=\"touch()\"\n (change)=\"change($event)\"\n />\n `,\n})\nexport class UpSearchableSelectComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly query: InputSignal<(keyword: string) => Observable<any>> = input.required<(keyword: string) => Observable<any>>(); \n \n public readonly label = input<string>(''); \n public readonly placeholder = input<string>('');\n public readonly initialItems = input<any[]>([]); \n public readonly bindLabel = input<string>('label');\n public readonly bindValue = input<string>('value');\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly addTag = input(false, { transform: booleanAttribute });\n public readonly multiple = input(false, { transform: booleanAttribute });\n public readonly required = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly clearable = input(true, { transform: booleanAttribute });\n public readonly virtualScroll = input(false, { transform: booleanAttribute });\n\n public readonly loading: ModelSignal<boolean> = model<boolean>(false);\n public readonly value: ModelSignal<any | null> = model<any | null>(null);\n\n public readonly changed: OutputEmitterRef<any> = output<any>();\n\n public readonly control: Signal<UpFieldControl | undefined> = contentChild(UpFieldControl);\n\n public readonly _computedClass: Signal<any> = computed(\n () => {\n return up(\n 'w-full min-w-0 h-9',\n 'data-[disabled=true]:[&>.ng-select-container]:cursor-not-allowed! data-[disabled=true]:[&>.ng-select-container]:opacity-50! data-[disabled=true]:[&>.ng-select-container]:bg-transparent!', \n '[&>.ng-select-container]:border! [&>.ng-select-container]:border-input! [&>.ng-select-container]:rounded-md! [&>.ng-select-container]:cursor-pointer! [&>.ng-select-container]:shadow-xs! [&>.ng-select-container]:items-center!',\n '[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-placeholder]:text-sm!',\n '[&>.ng-select-container>.ng-value-container>.ng-value]:text-base! md:[&>.ng-select-container>.ng-value-container>.ng-value]:text-sm! [&>.ng-select-container>.ng-value-container>.ng-value]:text-black!',\n '[&.ng-select-focused>.ng-select-container]:border-ring! [&.ng-select-focused>.ng-select-container]:ring-ring/50! [&.ng-select-focused>.ng-select-container]:ring-[3px]!',\n this.inlineClass(),\n );\n }\n );\n \n public readonly items: Signal<any[]> = computed(\n () => {\n const results = this._queryResults();\n return results.length > 0? results : this.initialItems();\n }\n );\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(\n () => this.loading.set(true)\n ),\n switchMap(\n (k: string) => {\n return this.query()(k).pipe(\n map(\n (result: any[]) => !result.length? this.initialItems() : result\n ),\n catchError(\n () => of(this.initialItems())\n )\n );\n }\n ),\n tap(\n () => this.loading.set(false)\n )\n );\n\n protected readonly _queryResults: Signal<any[]> = toSignal(this.query$, { initialValue: [] });\n\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.setControlName(<string> this.ngControl?.name);\n }\n\n public registerOnChange(fn: (val: any) => void): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void{\n this._onTouched = fn;\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public touch(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n if (!e) {\n this.value.set(null);\n } else {\n this.value.set(\n !this.multiple()? e[ this.bindValue() ] : e.map((o: any) => o[ this.bindValue() ])\n );\n }\n \n this._onChange(this.value());\n this.changed.emit(this.value());\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, model, ModelSignal, OnDestroy, OnInit, output, OutputEmitterRef, signal, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Observable, of, Subscription, map, catchError } from 'rxjs';\nimport { ClassValue } from 'clsx';\nimport { RateGroupCodeService } from '@unipin/angular-applet/common';\nimport { UpSearchableSelectComponent } from '../searchable-select/searchable-select.component';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-rate-group-code-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block'\n },\n imports: [\n UpSearchableSelectComponent\n ],\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpRateGroupCodeSelectComponent),\n }\n ],\n template: `\n <up-searchable-select\n virtualScroll \n bindValue=\"code\"\n bindLabel=\"name\"\n [query]=\"queryFn\"\n [value]=\"value()\"\n [loading]=\"isLoading()\"\n [multiple]=\"multiple()\"\n [class]=\"inlineClass()\"\n [appendTo]=\"appendTo()\"\n [clearable]=\"clearable()\"\n [placeholder]=\"placeholder()\"\n [initialItems]=\"rateGroupCodes()\"\n [disabled]=\"disabled() || _disabled()\"\n (blur)=\"onTouched()\"\n (changed)=\"change($event)\"\n />\n `,\n})\nexport class UpRateGroupCodeSelectComponent extends UpFieldControlComponent implements OnInit, OnDestroy, ControlValueAccessor {\n \n public readonly placeholder = input<string>('Select rate group code');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly appendTo = input<'body' | '.cdk-overlay-pane' | (string & {})>('body');\n \n public readonly disabled = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly multiple = input<boolean, any>(false, { transform: booleanAttribute });\n public readonly clearable = input<boolean, any>(true, { transform: booleanAttribute });\n\n public readonly value: ModelSignal<string | null> = model<string | null>(null);\n\n public readonly changed: OutputEmitterRef<string> = output<string>();\n\n public readonly isLoading: WritableSignal<boolean> = signal<boolean>(true);\n public readonly _disabled: WritableSignal<boolean> = signal<boolean>(false);\n public readonly rateGroupCodes: WritableSignal<{code: string, name: string}[]> = signal<{ code: string, name: string }[]>([]);\n\n public readonly queryFn = (keyword: string): Observable<{ code: string, name: string }[]> => {\n if (\n !keyword || \n keyword.length < 3\n ) {\n return of(\n this.rateGroupCodes().filter(({ code }) => code.toLowerCase().includes(keyword.toLowerCase()))\n );\n }\n\n return this.service.query({ key: keyword }).pipe(\n map(\n ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n return (data as string[]).map((code) => ({ code, name: code }));\n }\n ),\n catchError(() => of([]))\n );\n };\n\n protected sub?: Subscription;\n protected isTouched: boolean = false;\n protected _onTouched: () => void = (): void => {};\n protected _onChange: (_val: any) => void = (_val: any): void => {};\n\n constructor(\n protected readonly service: RateGroupCodeService\n ) {\n super();\n \n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void{\n this.sub = this.service.query().subscribe(\n {\n error: () => {\n this.rateGroupCodes.set([]);\n this.isLoading.set(false);\n },\n next: ({ data: { productMsSearchRateGroupCodes: { data }}}) => {\n this.rateGroupCodes.set(\n (data as string[]).map((code) => ({ code, name: code }))\n );\n this.isLoading.set(false);\n }\n }\n );\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: any): void{\n this.value.set(value);\n }\n\n public onTouched(): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n }\n\n public change(value: any): void{\n if (!this.isTouched) {\n this._onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled()) {\n this.value.set(value);\n \n this._onChange(value);\n this.changed.emit(value);\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matCalendarMonthRound } from '@ng-icons/material-icons/round';\nimport { format } from 'date-fns';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverContentRefDirective, UpPopoverTriggerDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDatepickerComponent),\n },\n provideIcons(\n { \n matCalendarMonthRound\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value()? true : false\"\n (blur)=\"touch()\"\n #btnTrigger\n >\n {{ value()? formattedDate() : placeholder() }}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n [activeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (selected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDatepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n \n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n \n public readonly btnTrigger = viewChild<ElementRef<HTMLButtonElement>>('btnTrigger');\n \n public readonly value = signal<SingleDate>(null);\n public readonly _disabled = signal<boolean>(false);\n \n public readonly formattedDate = computed(\n () => {\n return this.value()? format(this.value()!, this.dateFormat()) : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-48 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(day: SingleDate): void{\n this.value.set(day);\n \n this._onChange(day);\n this._markTouched();\n \n this.btnTrigger()?.nativeElement.click();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { Component, ChangeDetectionStrategy, forwardRef, booleanAttribute, computed, input, signal } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { NgIcon, provideIcons } from \"@ng-icons/core\";\nimport { matCalendarMonthRound } from \"@ng-icons/material-icons/round\";\nimport { format } from \"date-fns\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { RangeDate, SingleDate, UpCalendarComponent } from '@unipin/angular-applet/calendar';\nimport { UpPopoverComponent, UpPopoverTriggerDirective, UpPopoverContentRefDirective } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from \"../form-field/field-control\";\n\n\n@Component({\n selector: 'up-date-range-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpDateRangePickerComponent)\n },\n provideIcons(\n { \n matCalendarMonthRound \n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective, \n UpPopoverComponent, \n UpCalendarComponent, \n UpPopoverTriggerDirective, \n UpPopoverContentRefDirective\n ],\n template: `\n <up-popover \n alignment=\"start\" \n placementOffset=\"4\"\n >\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value().from && value().to? true : false\"\n (blur)=\"touch()\"\n >\n {{ value().from && value().to? formattedDate() : placeholder()}}\n\n <ng-icon\n size=\"16\"\n class=\"ml-auto\"\n name=\"matCalendarMonthRound\"\n />\n </button>\n\n <ng-container *upPopoverContentRef>\n <up-calendar\n variant=\"range\"\n [activeDay]=\"null\"\n [activeRangeDay]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n (rangeSelected)=\"selectedDate($event)\"\n />\n </ng-container>\n </up-popover>\n `\n})\nexport class UpDateRangePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly placeholder = input<string>('');\n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly dateFormat = input<string>('dd LLL yyyy', { alias: 'format' });\n \n public readonly disabled = input(\n false,\n {\n transform: booleanAttribute\n }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<RangeDate>({ from: null, to: null });\n \n public readonly formattedDate = computed(\n () => {\n return this.value().from && this.value().to? `${ format(this.value().from!, this.dateFormat()) } - ${ format(this.value().to!, this.dateFormat()) }` : ''\n }\n );\n \n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-60 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass()\n )\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n \n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public writeValue(value: any): void{\n this.value.set(value?? null);\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public touch(): void{\n this._markTouched();\n }\n \n public selectedDate(range: RangeDate): void{\n this.value.set(range);\n \n this._onChange(range);\n this._markTouched();\n }\n\n protected _markTouched(): void{\n if (this._isTouched) return;\n \n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { IndexSetter } from '../types/time.type';\n\nexport function updateScrollSelection(el: HTMLElement | null, itemHeight: number, maxIndex: number, setIndex: IndexSetter): void{\n \n if (!el) {\n return;\n }\n const index = Math.round(el.scrollTop / itemHeight);\n \n setIndex(\n Math.max(\n 0, \n Math.min(maxIndex, index)\n )\n );\n}\n\nexport function snapScroll(el: HTMLElement | null, itemHeight: number, index: number): void{\n \n if (!el) {\n return;\n }\n \n el.scrollTo(\n {\n behavior: 'smooth',\n top: index * itemHeight,\n }\n );\n}\n\nexport function scrollImmediate(el: HTMLElement | null, itemHeight: number, index: number): void{\n \n if (!el) {\n return;\n }\n el.scrollTop = index * itemHeight;\n}\n\nexport function findClosestIndex(values: number[], target: number): number{\n \n let closestIdx = 0;\n let minDiff = Math.abs(values[0] - target);\n\n for (let i = 1; i < values.length; i++) {\n const diff = Math.abs(values[i] - target);\n \n if (diff < minDiff) {\n minDiff = diff;\n closestIdx = i;\n }\n }\n return closestIdx;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n name: 'opacity',\n pure: true,\n})\nexport class OpacityPipe implements PipeTransform {\n \n public transform(itemIndex: number, selectedIndex: number): string{\n const distance = Math.abs(itemIndex - selectedIndex);\n\n switch (distance) {\n case 0:\n return 'opacity-100';\n \n case 1:\n return 'opacity-20';\n \n case 2:\n return 'opacity-10';\n \n default:\n return 'opacity-15';\n }\n }\n}\n","import { input, signal, output, computed, Component, viewChild, ElementRef, afterNextRender, ChangeDetectionStrategy } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\nimport { snapScroll, scrollImmediate, findClosestIndex, updateScrollSelection } from '../utils/scroll-wheel.util';\nimport { TimeValue } from '../types/time.type';\nimport { OpacityPipe } from '../pipes/opacity.pipe';\n\n\n@Component({\n selector: 'up-time',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DecimalPipe,\n OpacityPipe,\n ],\n template: `\n <div\n class=\"relative w-37 flex gap-2 rounded-xl border border-border bg-white p-3 shadow-lg\"\n [style.height.px]=\"containerHeight\"\n >\n <!-- Hours scroll wheel -->\n <div class=\"flex-1 relative overflow-hidden\">\n <div\n class=\"\n h-full overflow-y-scroll snap-y snap-mandatory overscroll-contain \n [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\n \"\n (scroll)=\"onHoursScroll()\"\n\n #hoursScroll\n >\n <!-- Top padding -->\n <div [style.height.px]=\"padding\"></div>\n\n <!-- Hour items -->\n @for (hour of hours; track $index) {\n <div\n [class.invisible]=\"hourInvisible()[$index]\"\n [class]=\"\n 'h-10 flex items-center justify-center cursor-pointer transition-opacity duration-200 snap-center ' +\n ($index | opacity: selectedHourIndex())\n \"\n (click)=\"scrollToHour($index)\"\n >\n <span class=\"text-xl font-medium\">\n {{ hour | number:'2.0-0' }}\n </span>\n </div>\n }\n\n <!-- Bottom padding -->\n <div [style.height.px]=\"padding\"></div>\n </div>\n </div>\n\n <!-- Minutes scroll wheel -->\n <div class=\"flex-1 relative overflow-hidden\">\n <div\n #minutesScroll\n class=\"\n h-full overflow-y-scroll snap-y snap-mandatory overscroll-contain\n [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]\n \"\n (scroll)=\"onMinutesScroll()\"\n >\n <!-- Top padding -->\n <div [style.height.px]=\"padding\"></div>\n\n <!-- Minute items -->\n @for (minute of minutes(); track $index) {\n <div\n [class.invisible]=\"minuteInvisible()[$index]\"\n [class]=\"\n 'h-10 flex items-center justify-center cursor-pointer transition-opacity duration-200 snap-center ' +\n ($index | opacity: selectedMinuteIndex())\n \"\n (click)=\"scrollToMinute($index)\"\n >\n <span class=\"text-xl font-medium\">\n {{ minute | number:'2.0-0' }}\n </span>\n </div>\n }\n\n <!-- Bottom padding -->\n <div [style.height.px]=\"padding\"></div>\n </div>\n </div>\n\n <!-- Center highlight -->\n <div\n class=\"absolute inset-x-0 left-3 right-3 pointer-events-none flex items-center justify-center\"\n [style.top.px]=\"highlightTop\"\n [style.height.px]=\"itemHeight\"\n >\n <div class=\"flex items-center justify-center font-medium w-full h-full bg-accent/30 border border-primary rounded-md shadow-inner\">\n :\n </div>\n </div>\n </div>\n `,\n})\nexport class UpTimeComponent {\n\n public readonly hoursScroll = viewChild<ElementRef<HTMLDivElement>>('hoursScroll');\n public readonly minutesScroll = viewChild<ElementRef<HTMLDivElement>>('minutesScroll');\n\n public readonly minuteInterval = input<number>(1);\n public readonly minTime = input<TimeValue | undefined>();\n public readonly maxTime = input<TimeValue | undefined>();\n public readonly value = input<TimeValue>({ hour: 0, minute: 0 });\n\n public readonly timeChanged = output<TimeValue>();\n\n public readonly selectedHourIndex = signal<number>(0);\n public readonly selectedMinuteIndex = signal<number>(0);\n\n public readonly minHour = computed(\n () => this.minTime()?.hour?? 0\n );\n public readonly maxHour = computed(\n () => this.maxTime()?.hour?? 23\n );\n \n public readonly minMinute = computed(\n () => this.minTime()?.minute?? 0\n );\n public readonly maxMinute = computed(\n () => this.maxTime()?.minute?? 59\n );\n\n protected readonly hours = Array.from({ length: 24 }, (_, i) => i);\n\n protected readonly minutes = computed(\n () => {\n const interval = Math.max(1, Math.min(60, this.minuteInterval()));\n const count = Math.ceil(60 / interval);\n\n return Array.from(\n { length: count }, \n (_, i) => i * interval\n ).filter(\n (m) => m < 60,\n );\n }\n );\n\n protected readonly hourInvisible = computed(\n () => {\n return this.hours.map(\n (hour) => {\n return hour < (this.minTime()?.hour ?? 0) ||\n hour > (this.maxTime()?.hour ?? 23)\n }\n );\n }\n );\n\n protected readonly minuteInvisible = computed(\n () => {\n const selectedHour = this.hours[this.selectedHourIndex()]?? 0;\n\n return this.minutes().map(\n (minute) =>\n (selectedHour === this.minHour() && minute < this.minMinute()) ||\n (selectedHour === this.maxHour() && minute > this.maxMinute())\n );\n }\n );\n\n protected readonly validMinuteRange = computed(\n () => {\n const selectedHour = this.hours[this.selectedHourIndex()] ?? 0;\n\n let min = 0;\n let max = 59;\n\n if (selectedHour === this.minHour()) {\n min = this.minMinute();\n }\n \n if (selectedHour === this.maxHour()) {\n max = this.maxMinute();\n }\n return { min, max };\n }\n );\n\n protected itemHeight = 40;\n protected visibleItems = 5;\n protected containerHeight = this.itemHeight * this.visibleItems;\n protected padding = (this.itemHeight * this.visibleItems - this.itemHeight) / 2;\n protected highlightTop = this.padding;\n \n protected scrollTimeout: any = null;\n protected lastEmittedTime: TimeValue | null = null;\n\n constructor() {\n afterNextRender(\n () => this.initializeScrollPosition()\n );\n }\n\n public initializeScrollPosition(): void{\n const hourIdx = this.hours.indexOf(this.value().hour);\n const minuteIdx = findClosestIndex(this.minutes(), this.value().minute);\n \n if (hourIdx !== -1) {\n this.selectedHourIndex.set(hourIdx)\n }\n \n this.selectedMinuteIndex.set(minuteIdx);\n\n this.scrollToHourImmediate(hourIdx);\n this.scrollToMinuteImmediate(minuteIdx);\n\n this.emitTime();\n }\n\n public onHoursScroll(): void{\n this.updateHourSelection();\n this.debounceEmit();\n }\n\n public onMinutesScroll(): void{\n this.updateMinuteSelection();\n this.debounceEmit();\n }\n\n private debounceEmit(): void{\n clearTimeout(this.scrollTimeout);\n\n this.scrollTimeout = setTimeout(\n () => {\n this.clampSelectionToValidRange();\n this.emitTime();\n }, \n 150\n );\n }\n\n private clampSelectionToValidRange(): void{\n const hours = this.hours;\n const minutes = this.minutes();\n\n let hourIdx = this.selectedHourIndex();\n const currentHour = hours[hourIdx] ?? 0;\n\n if (currentHour < this.minHour()) {\n hourIdx = hours.indexOf(this.minHour());\n\n if (hourIdx === -1) {\n for (let i = 0; i < hours.length; i++) {\n if (hours[i] >= this.minHour()) {\n hourIdx = i;\n break;\n }\n }\n }\n this.selectedHourIndex.set(hourIdx);\n this.scrollToHourImmediate(hourIdx);\n } \n else if (currentHour > this.maxHour()) {\n hourIdx = hours.indexOf(this.maxHour());\n\n if (hourIdx === -1) {\n for (let i = hours.length - 1; i >= 0; i--) {\n if (hours[i] <= this.maxHour()) {\n hourIdx = i;\n break;\n }\n }\n }\n this.selectedHourIndex.set(hourIdx);\n this.scrollToHourImmediate(hourIdx);\n }\n\n const { min: minMinute, max: maxMinute } = this.validMinuteRange();\n let minuteIdx = this.selectedMinuteIndex();\n const currentMinute = minutes[minuteIdx] ?? 0;\n\n if (currentMinute < minMinute) {\n let newIdx = -1;\n \n for (let i = 0; i < minutes.length; i++) {\n if (minutes[i] >= minMinute) {\n newIdx = i;\n break;\n }\n }\n\n if (newIdx !== -1) {\n this.selectedMinuteIndex.set(newIdx);\n this.scrollToMinuteImmediate(newIdx);\n }\n } \n else if (currentMinute > maxMinute) {\n let newIdx = -1;\n \n for (let i = minutes.length - 1; i >= 0; i--) {\n if (minutes[i] <= maxMinute) {\n newIdx = i;\n break;\n }\n }\n\n if (newIdx !== -1) {\n this.selectedMinuteIndex.set(newIdx);\n this.scrollToMinuteImmediate(newIdx);\n }\n }\n }\n\n public updateHourSelection(): void{\n updateScrollSelection(\n this.hoursScroll()!.nativeElement,\n this.itemHeight,\n this.hours.length - 1,\n (v) => this.selectedHourIndex.set(v),\n );\n }\n\n public updateMinuteSelection(): void{\n updateScrollSelection(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n this.minutes().length - 1,\n (v) => this.selectedMinuteIndex.set(v),\n );\n }\n\n public snapHours(): void{\n snapScroll(\n this.hoursScroll()!.nativeElement,\n this.itemHeight,\n this.selectedHourIndex(),\n );\n }\n\n public snapMinutes(): void{\n snapScroll(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n this.selectedMinuteIndex(),\n );\n }\n\n public scrollToHour(index: number): void{\n const clamped = Math.max(0, Math.min(23, index));\n this.selectedHourIndex.set(clamped);\n this.scrollToHourImmediate(clamped);\n this.emitTime();\n }\n\n public scrollToMinute(index: number): void{\n const maxIdx = this.minutes().length - 1;\n const clamped = Math.max(0, Math.min(maxIdx, index));\n \n this.selectedMinuteIndex.set(clamped);\n this.scrollToMinuteImmediate(clamped);\n this.emitTime();\n }\n\n public scrollToHourImmediate(index: number): void{\n scrollImmediate(this.hoursScroll()!.nativeElement, this.itemHeight, index);\n }\n\n public scrollToMinuteImmediate(index: number): void{\n scrollImmediate(\n this.minutesScroll()!.nativeElement,\n this.itemHeight,\n index,\n );\n }\n\n public clampTime(time: TimeValue): TimeValue{\n let { hour, minute } = time;\n const min = this.minTime();\n const max = this.maxTime();\n\n if (min) {\n if (hour < (min.hour ?? 0)) {\n hour = min.hour!;\n minute = min.minute ?? 0;\n } \n else if (hour === (min.hour ?? 0) && min.minute !== undefined) {\n minute = Math.max(min.minute, minute);\n }\n }\n\n if (max) {\n if (hour > (max.hour ?? 23)) {\n hour = max.hour!;\n minute = max.minute ?? 59;\n } \n else if (hour === (max.hour ?? 23) && max.minute !== undefined) {\n minute = Math.min(max.minute, minute);\n }\n }\n\n const minuteValues = this.minutes();\n\n if (!minuteValues.includes(minute)) {\n let closest = minuteValues[0];\n let minDiff = Math.abs(minuteValues[0] - minute);\n \n for (let m of minuteValues) {\n const diff = Math.abs(m - minute);\n if (diff < minDiff) {\n closest = m;\n minDiff = diff;\n }\n }\n minute = closest;\n }\n return { hour, minute };\n }\n\n protected emitTime(): void{\n let time: TimeValue = {\n hour: this.hours[this.selectedHourIndex()]!,\n minute: this.minutes()[this.selectedMinuteIndex()]!,\n };\n\n time = this.clampTime(time);\n\n if (\n !this.lastEmittedTime ||\n this.lastEmittedTime.hour !== time.hour ||\n this.lastEmittedTime.minute !== time.minute\n ) {\n this.lastEmittedTime = time;\n this.timeChanged.emit(time);\n }\n }\n}\n","import { input, signal, effect, computed, Component, forwardRef, booleanAttribute, ChangeDetectionStrategy } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { provideIcons, NgIcon } from '@ng-icons/core';\nimport { matWatchLaterRound } from '@ng-icons/material-icons/round';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { UpPopoverTriggerDirective, UpPopoverContentRefDirective, UpPopoverComponent } from '@unipin/angular-applet/popover';\nimport { UpFieldControl, UpFieldControlComponent } from './../../form-field/field-control';\nimport { TimeValue } from '../types/time.type';\nimport { UpTimeComponent } from './time.component';\n\n\n@Component({\n selector: 'up-timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpTimepickerComponent),\n },\n provideIcons(\n {\n matWatchLaterRound,\n }\n ),\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpPopoverComponent,\n UpPopoverTriggerDirective,\n UpPopoverContentRefDirective,\n UpTimeComponent,\n ],\n template: `\n <up-popover placementOffset=\"4\">\n <button\n upButton\n upPopoverTrigger\n type=\"button\"\n variant=\"ghost\"\n \n [class]=\"_computedClass()\"\n [disabled]=\"disabled() || _disabled()\"\n [attr.data-has-value]=\"value() ? true : false\"\n \n (blur)=\"touch()\"\n >\n {{ formattedTime() }}\n\n <ng-icon size=\"16\" class=\"ml-auto\" name=\"matWatchLaterRound\" />\n </button>\n\n <ng-container *upPopoverContentRef>\n <div\n animate.enter=\"animate-in fade-in\"\n animate.leave=\"animate-out fade-out\"\n >\n <up-time\n [value]=\"value()\"\n [minTime]=\"minTime()\"\n [maxTime]=\"maxTime()\"\n [minuteInterval]=\"minuteInterval()\"\n (timeChanged)=\"selectedTime($event)\"\n />\n </div>\n </ng-container>\n </up-popover>\n `,\n})\nexport class UpTimepickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly minTime = input<TimeValue | undefined>();\n public readonly maxTime = input<TimeValue | undefined>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly initialHour = input<number>(0);\n public readonly initialMinute = input<number>(0);\n public readonly minuteInterval = input<number>(1);\n\n public readonly disabled = input(\n false, \n { transform: booleanAttribute }\n );\n\n public readonly _disabled = signal<boolean>(false);\n public readonly value = signal<TimeValue>({ hour: 0, minute: 0 });\n\n public readonly formattedTime = computed(\n () => {\n const time = this.value();\n if (!time) {\n return '--:--';\n }\n\n const hour = time.hour ?? 0;\n const minute = time.minute ?? 0;\n\n return `${ hour.toString().padStart(2, '0') }:${ minute.toString().padStart(2, '0') }`;\n }\n );\n\n public readonly _computedClass = computed(\n () => {\n return up(\n 'flex justify-between px-3 border border-border min-w-40 w-full font-normal hover:not-disabled:text-primary! data-[has-value=false]:text-muted-foreground',\n this.inlineClass(),\n );\n }\n );\n\n protected _isTouched: boolean = false;\n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = () => {};\n\n constructor() {\n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n\n effect(\n () => {\n if (!this.ngControl) {\n this.value.set(\n {\n hour: this.initialHour(),\n minute: this.initialMinute(),\n }\n );\n }\n }\n );\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public touch(): void{\n this._markTouched();\n }\n\n public setDisabledState?(isDisabled: boolean): void{\n this._disabled.set(isDisabled);\n }\n\n public writeValue(value: TimeValue): void{\n this.value.set(value);\n }\n\n public selectedTime(time: TimeValue): void{\n this._markTouched();\n\n this.value.set(time);\n this._onChange(time);\n }\n\n protected _markTouched(): void{\n if (this._isTouched) {\n return;\n }\n\n this._onTouched();\n this._isTouched = true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, contentChild, effect, input, booleanAttribute } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpFieldControl } from './field-control'; \n\n\n@Component({\n selector: 'up-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div \n class=\"\n group flex flex-col gap-2\n has-[input[type='checkbox']]:flex-row has-[input[type='checkbox']]:items-center\n \"\n [attr.data-state]=\"control()?.error()? 'error' : 'default'\"\n >\n @if (label()) {\n <label \n class=\"\n text-sm font-medium leading-none select-none \n peer-disabled:cursor-not-allowed peer-disabled:opacity-70 \n \n group-has-[input[type='checkbox']]:order-2\n group-has-[input[required]]:not-[.hide-asterisk]:after:content-['*'] group-has-[input[required]]:not-[.hide-asterisk]:after:text-destructive\n \"\n [for]=\"name()\"\n [class.text-destructive]=\"control()?.error()\"\n [class.hide-asterisk]=\"hideAsterisk()\"\n >\n {{ label() }}\n </label>\n }\n\n @if (control()?.error()) {\n <p class=\"text-xs font-medium text-destructive group-not-has-[input[type='radio']]:order-3\">\n {{ control()?.error() }}\n </p>\n }\n @else if (hint()) {\n <p class=\"text-xs text-muted-foreground group-not-has-[input[type='radio']]:order-3\">\n {{ hint() }}\n </p>\n }\n <ng-content />\n </div>\n `\n})\nexport class UpFormFieldComponent {\n\n public readonly name = input<string>('');\n public readonly hint = input<string>('');\n public readonly label = input<string>('');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n public readonly hideAsterisk = input<boolean, boolean>(false, { transform: booleanAttribute });\n\n public readonly control = contentChild(UpFieldControl);\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block space-y-2',\n this.inlineClass(),\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (!this.control()) {\n throw new Error('Form field must contain a field control, eg: input, checkbox, textarea, etc.');\n }\n this.control()!.setControlName(this.label());\n }\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, output, signal, viewChild, WritableSignal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ClassValue } from 'clsx';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matDelete, matUpload } from '@ng-icons/material-icons/baseline';\nimport { up, compressImage, UpFileDragNDropDirective } from '@unipin/angular-applet/common';\nimport { UpFieldControl, UpFieldControlComponent } from '../form-field/field-control';\n\n\n@Component({\n selector: 'up-image-picker',\n templateUrl: './image-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: UpFieldControl,\n useExisting: forwardRef(() => UpImagePickerComponent)\n },\n provideIcons(\n {\n matUpload,\n matDelete\n }\n )\n ],\n imports: [\n NgIcon,\n UpFileDragNDropDirective\n ],\n})\nexport class UpImagePickerComponent extends UpFieldControlComponent implements ControlValueAccessor {\n\n public readonly ratio = input<string>('1/1');\n public readonly imgSrc = model<string>('', { alias: 'src' });\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n \n public readonly changed = output<File>();\n \n public file: any = viewChild('file');\n public fileName: string = '';\n public isTouched: WritableSignal<boolean> = signal<boolean>(false);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'peer overflow-hidden flex flex-col size-full rounded-lg border bg-transparent shadow-xs outline-none md:text-sm relative hover:border-dashed border-2 border-foreground/20 group [&_span]:font-semibold [&_span]:text-xs [&_span]:text-center',\n this.error()? 'ring-destructive/20 dark:ring-destructive/40 border-destructive' : '',\n this.inlineClass(),\n );\n }\n );\n \n protected _onTouched: () => void = () => {};\n protected _onChange: (_val: any) => void = (_val: any) => {};\n\n constructor() { \n super();\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnDestroy(): void{\n if (this.imgSrc()) {\n URL.revokeObjectURL(this.imgSrc());\n }\n }\n\n public registerOnChange(fn: any): void{\n this._onChange = fn;\n }\n \n public registerOnTouched(fn: any): void{\n this._onTouched = fn;\n }\n\n public writeValue(val: any): void{\n this.imgSrc.set(val);\n }\n\n public clear(ev?: Event): void{\n this.writeValue('');\n ev?.stopPropagation();\n }\n \n public touch(): void{\n if (!this.isTouched()) {\n this._onTouched();\n this.isTouched.set(true);\n }\n \n this.imgSrc.set(\n this.imgSrc()\n );\n }\n\n public async selectPhoto(files: any): Promise<void>{\n if (files?.target?.files) files = files.target.files;\n\n if (files && files[0]) {\n const compressedFile = await compressImage(\n {\n quality: 0.8,\n file: files[0],\n }\n );\n\n if (this.file()) {\n this.file().nativeElement.value = '';\n }\n \n this.imgSrc.set(\n URL.createObjectURL(compressedFile)\n );\n this.fileName = compressedFile.name;\n \n this.changed.emit(compressedFile);\n this._onChange(compressedFile);\n }\n }\n}\n","<div \n upFileDragNDrop \n draggedClass=\"border-dashed border-2 border-foreground/20\"\n [class]=\"_computedClass()\"\n [style.aspect-ratio]=\"ratio()\"\n (fileDropped)=\"selectPhoto($event)\"\n>\n @if (imgSrc()) {\n <img \n class=\"overflow-hidden object-cover size-full\"\n [alt]=\"fileName\" \n [src]=\"imgSrc()\" \n [style.aspect-ratio]=\"ratio()\"\n />\n }\n \n <div \n class=\"absolute inset-0 p-2 flex flex-col items-center justify-center text-muted-foreground cursor-pointer opacity-80 group-hover:opacity-100 transition\"\n [style.aspect-ratio]=\"ratio()\"\n >\n @if (imgSrc() === '') {\n <div \n class=\"flex flex-col items-center\"\n (click)=\"file.click()\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matUpload\"\n />\n <span>Choose Image or Drag here.</span>\n </div>\n }\n @else {\n <div \n class=\"absolute flex items-center ustify-center opacity-0 group-hover:opacity-100 transition text-destructive\"\n (click)=\"clear($event)\"\n >\n <ng-icon\n size=\"24px\"\n name=\"matDelete\"\n />\n </div>\n }\n </div>\n\n <input \n type=\"file\" \n hidden \n accept=\"image/png, image/jpeg, image/jpg\" \n (change)=\"selectPhoto($event)\" \n #file\n />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|