@acorex/components 22.0.0-next.5 → 22.0.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datetime-text-box/README.md +3 -0
- package/fesm2022/acorex-components-datetime-text-box.mjs +632 -0
- package/fesm2022/acorex-components-datetime-text-box.mjs.map +1 -0
- package/fesm2022/acorex-components-file-viewer.mjs +368 -107
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/package.json +7 -3
- package/types/acorex-components-datetime-text-box.d.ts +142 -0
- package/types/acorex-components-file-viewer.d.ts +146 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-datetime-text-box.mjs","sources":["../../../../packages/components/datetime-text-box/src/lib/datetime-text-box.component.ts","../../../../packages/components/datetime-text-box/src/lib/datetime-text-box.component.html","../../../../packages/components/datetime-text-box/src/lib/datetime-text-box.module.ts","../../../../packages/components/datetime-text-box/src/acorex-components-datetime-text-box.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nimport {\n AXClearableComponent,\n AXClickEvent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDateTimePickerType } from '@acorex/components/calendar';\nimport { AXCalendarService, AXDateTime, AXDateTimePart, AXDateTimeParts, TimeUnit } from '@acorex/core/date-time';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { getWordBoundsAtPosition } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { map } from 'rxjs';\n\n/**\n * A date & time editor that works like a text box: the user types digits directly into a\n * masked value (separators come from the active format), navigates between date/time\n * segments with Left/Right arrows and spins segment values with Up/Down arrows.\n *\n * The committed value is a native `Date` (same contract as `ax-datetime-box`), and both\n * `gregorian` and `solar-hijri` calendar systems are supported.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-datetime-text-box',\n templateUrl: './datetime-text-box.component.html',\n styleUrl: './datetime-text-box.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXDateTimeTextBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimeTextBoxComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimeTextBoxComponent },\n { provide: AXClearableComponent, useExisting: AXDateTimeTextBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimeTextBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n host: {\n '(keydown)': '_handleOnKeydownEvent($event)',\n '(keyup)': '_handleKeyUpEvent()',\n '[attr.name]': 'name',\n },\n})\nexport class AXDateTimeTextBoxComponent extends classes(MXInputBaseValueComponent<Date>, MXLookComponent) {\n private platformService = inject(AXPlatform);\n private localeService = inject(AXLocaleService);\n private calendarService = inject(AXCalendarService);\n\n /** @ignore */\n private readonly _editingParts: AXDateTimeParts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MM', 'M'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'DD', 'd'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.second.placeholder),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this._formatPart(this._editingDate(), this._editingParts.AMPM.placeholder),\n },\n };\n\n /** @ignore */\n protected _editingText = signal<string>('');\n\n /** @ignore */\n private _inputChars: string[] = [];\n\n /** @ignore */\n private _activePart = signal<string | null>(null);\n\n /**\n * Determines which parts are editable: `date`, `time` or `datetime`.\n * The mask format is resolved from the active locale profile for this mode.\n * @defaultValue 'datetime'\n */\n picker = input<AXDateTimePickerType>('datetime');\n\n /**\n * The calendar system to use (`gregorian` or `solar-hijri`).\n * Falls back to the active locale profile calendar when not provided.\n */\n calendar = input<string | null>(null);\n\n /**\n * Optional format override (e.g. `yyyy/MM/dd HH:mm:ss`).\n * When omitted, the short format of the active locale profile is used.\n */\n format = input<string | null>(null);\n\n /**\n * The minimum allowed date value. Applied when the editor loses focus.\n */\n minValue = input<Date | null>(null);\n\n /**\n * The maximum allowed date value. Applied when the editor loses focus.\n */\n maxValue = input<Date | null>(null);\n\n /**\n * Emitted when a click event occurs on the editor input.\n * @event\n */\n onClick = output<AXClickEvent>();\n\n /** @ignore */\n classNames = input('', { alias: 'class' });\n\n protected readonly _calendarSystem = computed(\n () => this.calendar() ?? this.localeService.activeProfile().calendar.system,\n );\n\n protected readonly _resolvedFormat = computed(\n () => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '',\n );\n\n /** @ignore */\n private _editingDate = linkedSignal<AXDateTime>(() => this.calendarService.now(this._calendarSystem()));\n\n /** @ignore */\n private inputRef = viewChild<ElementRef<HTMLInputElement>>('input');\n\n /** @ignore */\n private get inputElement(): HTMLInputElement | undefined {\n return this.inputRef()?.nativeElement;\n }\n\n /**\n * @description check if page is in rtl or ltr\n */\n protected isRtl = signal(this.platformService.isRtl());\n\n /** @ignore */\n #formatEffect = effect(() => {\n this._resolvedFormat();\n this._calendarSystem();\n this._detectParts();\n untracked(() => {\n this.internalValueChanged(this.value);\n });\n });\n\n /** @ignore */\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.platformService.directionChange.pipe(map((i) => i.data === 'rtl')).subscribe((isRtl) => this.isRtl.set(isRtl));\n }\n\n /**\n * Formats a part using the calendar already attached to the AXDateTime.\n * Avoids formatService's string-options path, which always uses the active locale calendar.\n * @ignore\n */\n private _formatPart(date: AXDateTime, placeholder: string): string {\n return date.format(placeholder);\n }\n\n /** @ignore */\n private _detectParts() {\n Object.values(this._editingParts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._resolvedFormat().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n }\n\n /** @ignore */\n private _getOrderedParts(): AXDateTimePart[] {\n const formatParts = this._resolvedFormat().split(/[^a-zA-Z]+/);\n const result: AXDateTimePart[] = [];\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));\n if (found && found.enabled) result.push(found);\n });\n return result;\n }\n\n /** @ignore */\n private _clearInputBuffer() {\n this._inputChars = [];\n }\n\n /** @ignore */\n private _updateText() {\n let text = this._resolvedFormat();\n Object.values(this._editingParts).forEach((part) => {\n if (this._activePart() == part.key) {\n if (part.typedValue) text = text.replace(part.placeholder, part.typedValue);\n } else {\n if (part.typedValue != part.placeholder && part.typedValue != null) {\n text = text.replace(part.placeholder, part.realValue());\n }\n }\n });\n this._editingText.set(text == this._resolvedFormat() ? '' : text);\n if (this._activePart()) {\n this._highlightActivePart();\n }\n }\n\n /**\n * Handles changes to the internal date value, updating editing parts and text representation.\n * @ignore\n */\n override internalValueChanged(value?: Date): void {\n if (value && this.calendarService.isValidDate(value)) {\n this._editingDate.set(this.calendarService.create(value, this._calendarSystem()));\n }\n Object.values(this._editingParts).forEach((part) => {\n if (value) {\n if (part.typedValue != part.placeholder) part.typedValue = part.realValue();\n } else part.typedValue = null;\n });\n this._updateText();\n }\n\n /**\n * Normalizes Persian (U+06F0-U+06F9) and Arabic-Indic (U+0660-U+0669) digits to ASCII.\n * @ignore\n */\n private _normalizeDigit(key: string): string | null {\n if (!key || key.length !== 1) return null;\n const code = key.charCodeAt(0);\n if (code >= 0x30 && code <= 0x39) return key;\n if (code >= 0x06f0 && code <= 0x06f9) return String.fromCharCode(code - 0x06f0 + 0x30);\n if (code >= 0x0660 && code <= 0x0669) return String.fromCharCode(code - 0x0660 + 0x30);\n return null;\n }\n\n /** @ignore */\n protected _handleOnKeydownEvent(e: KeyboardEvent) {\n const ignore = () => {\n if (e.key === 'Tab' || e.code === 'Space' || e.code === 'Enter') {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n };\n\n const input = e.target as HTMLInputElement;\n const orderedParts = this._getOrderedParts();\n const part = this._activePart() ? this._editingParts[this._activePart()] : orderedParts[0];\n const nextPart = part ? orderedParts[orderedParts.indexOf(part) + 1] : null;\n const prevPart = part ? orderedParts[orderedParts.indexOf(part) - 1] : null;\n\n const goNext = () => {\n this._clearInputBuffer();\n if (nextPart) {\n this._activePart.set(nextPart.key);\n this._highlightActivePart();\n }\n };\n const goPrev = () => {\n this._clearInputBuffer();\n if (prevPart) {\n this._activePart.set(prevPart.key);\n this._highlightActivePart();\n }\n };\n\n const digit = this._normalizeDigit(e.key);\n\n /*************** Handle Left and Right **************/\n if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {\n ignore();\n if (!this._activePart()) {\n this._activePart.set(part?.key ?? null);\n this._highlightActivePart();\n } else {\n e.code === 'ArrowRight' ? goNext() : goPrev();\n }\n } else if ((e.code === 'ArrowUp' || e.code === 'ArrowDown') && !e.ctrlKey) {\n /*************** Handle Up and Down **************/\n ignore();\n if (this.disabled || this.readonly || !part) {\n return;\n }\n const sign = e.code === 'ArrowUp' ? +1 : -1;\n this._activePart.set(part.key);\n this._clearInputBuffer();\n const unit: TimeUnit = part.key === 'AMPM' ? 'hour' : (part.key as TimeUnit);\n const amount = part.key === 'AMPM' ? sign * 12 : sign;\n const newVal: AXDateTime = this._editingDate().add(unit, amount);\n this._editingDate.set(newVal);\n // mark every enabled part as edited, so the whole value gets displayed\n this._getOrderedParts().forEach((p) => {\n p.typedValue = p.realValue();\n });\n this._detectValueChanges();\n } else if (e.code == 'Backspace' || e.code == 'Delete') {\n /*************** Handle Backspace / Delete **************/\n if (this.disabled || this.readonly || !part) {\n return;\n }\n if (input.value) {\n ignore();\n this._clearInputBuffer();\n this._activePart.set(part.key);\n this._editingParts[part.key].typedValue = this._editingParts[part.key].placeholder;\n this._updateText();\n goPrev();\n }\n } else if (e.code == 'Tab' || e.code == 'Space') {\n /*************** Handle Tab and Space **************/\n if (input.value) {\n if (!e.shiftKey && nextPart) {\n ignore();\n goNext();\n } else if (e.shiftKey && prevPart) {\n ignore();\n goPrev();\n }\n }\n } else if (digit != null) {\n /*************** Handle Digits **************/\n ignore();\n if (this.disabled || this.readonly || !part) {\n return;\n }\n this._activePart.set(part.key);\n this._handleDigitInput(part, digit, goNext);\n } else if (part?.key === 'AMPM' && (e.key?.toLowerCase() === 'a' || e.key?.toLowerCase() === 'p')) {\n /*************** Handle AM/PM letters **************/\n ignore();\n if (this.disabled || this.readonly) {\n return;\n }\n const hour = this._editingDate().hour;\n const wantsPM = e.key.toLowerCase() === 'p';\n if (wantsPM && hour < 12) {\n this._applyEditingDate(this._editingDate().add('hour', 12));\n } else if (!wantsPM && hour >= 12) {\n this._applyEditingDate(this._editingDate().add('hour', -12));\n }\n } else {\n ignore();\n }\n /*************** Emit Event **************/\n super.emitOnKeydownEvent(e);\n }\n\n /**\n * Applies typed digits to the active part with calendar-aware limits, auto advancing\n * to the next part when the segment is complete or unambiguous.\n * @ignore\n */\n private _handleDigitInput(part: AXDateTimePart, digit: string, goNext: () => void) {\n let next = false;\n const editing = this._editingParts[part.key];\n\n switch (part.key) {\n case 'year': {\n if (editing.placeholder.length == 2 && this._inputChars.length == 0) {\n // 2-digit year placeholder: prefill the current century of the active calendar\n this._inputChars.push(\n ...this._formatPart(this.calendarService.now(this._calendarSystem()), 'yyyy').substring(0, 2).split(''),\n );\n }\n this._inputChars.push(digit);\n editing.typedValue = ('0000' + this._inputChars.join('')).slice(-4);\n if (this._inputChars.length >= 4) {\n next = true;\n }\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n this._applyEditingDate(this._editingDate().set('year', nv));\n }\n break;\n }\n case 'month': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(digit);\n editing.typedValue = `0${digit}`;\n if (parseInt(digit) > 1) {\n next = true;\n }\n } else {\n const combined = parseInt(`${this._inputChars[0]}${digit}`);\n editing.typedValue = combined > 12 || combined < 1 ? `0${digit}` : `${combined}`.padStart(2, '0');\n next = true;\n }\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n this._applyEditingDate(this._editingDate().set('month', nv));\n }\n break;\n }\n case 'day': {\n const totalDays = this._editingDate().month.totalDays;\n if (this._inputChars.length == 0) {\n this._inputChars.push(digit);\n editing.typedValue = `0${digit}`;\n if (parseInt(digit) > Math.floor(totalDays / 10)) {\n next = true;\n }\n } else {\n const combined = parseInt(`${this._inputChars[0]}${digit}`);\n editing.typedValue = combined > totalDays || combined < 1 ? `0${digit}` : `${combined}`.padStart(2, '0');\n next = true;\n }\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n this._applyEditingDate(this._editingDate().set('day', nv));\n }\n break;\n }\n case 'hour': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(digit);\n editing.typedValue = `0${digit}`;\n if (parseInt(digit) > 2) {\n next = true;\n }\n } else {\n const combined = parseInt(`${this._inputChars[0]}${digit}`);\n editing.typedValue = combined > 23 ? `0${digit}` : `${combined}`.padStart(2, '0');\n next = true;\n }\n this._applyEditingDate(this._editingDate().set('hour', parseInt(editing.typedValue)));\n break;\n }\n case 'minute':\n case 'second': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(digit);\n editing.typedValue = `0${digit}`;\n if (parseInt(digit) > 5) {\n next = true;\n }\n } else {\n const combined = parseInt(`${this._inputChars[0]}${digit}`);\n editing.typedValue = combined > 59 ? `0${digit}` : `${combined}`.padStart(2, '0');\n next = true;\n }\n this._applyEditingDate(this._editingDate().set(part.key as TimeUnit, parseInt(editing.typedValue)));\n break;\n }\n default:\n return;\n }\n if (next) {\n goNext();\n }\n }\n\n /** @ignore */\n private _applyEditingDate(value: AXDateTime) {\n this._editingDate.set(value);\n this._detectValueChanges();\n }\n\n /** @ignore */\n protected _handleKeyUpEvent() {\n if (this._activePart()) {\n this._highlightActivePart();\n }\n }\n\n /** @ignore */\n protected _handleFocusEvent(e: FocusEvent) {\n super.emitOnFocusEvent(e);\n }\n\n /** @ignore */\n protected _handleBlurEvent(e: FocusEvent) {\n this._activePart.set(null);\n this._clearInputBuffer();\n this._clampToRange();\n super.emitOnBlurEvent(e);\n }\n\n /**\n * Clamps the committed value into the [minValue, maxValue] range.\n * @ignore\n */\n private _clampToRange() {\n const value = this.value;\n if (!value) return;\n const min = this.minValue();\n const max = this.maxValue();\n if (min && value.getTime() < min.getTime()) {\n this.commitValue(new Date(min), true);\n } else if (max && value.getTime() > max.getTime()) {\n this.commitValue(new Date(max), true);\n }\n }\n\n /** @ignore */\n protected _handleOnInputClickEvent(e: MouseEvent): void {\n setTimeout(() => {\n this._detectPartAtPosition();\n }, 0);\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n /** @ignore */\n private _detectPartAtPosition(): void {\n const input = this.inputElement;\n if (!input || !input.value) return;\n const sStart = input.selectionEnd || 0;\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const orderedParts = this._getOrderedParts();\n const index = valueParts.findIndex((c) => c.index <= sStart && c.index + c[0].length >= sStart);\n if (index < 0 || !orderedParts[index]) return;\n this._clearInputBuffer();\n this._activePart.set(orderedParts[index].key);\n this._highlightActivePart();\n }\n\n /** @ignore */\n private _highlightActivePart(): void {\n const input = this.inputElement;\n if (!input || !input.value || !this._activePart()) return;\n const orderedParts = this._getOrderedParts();\n const index = orderedParts.findIndex((c) => c.key == this._activePart());\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const { start, end } = getWordBoundsAtPosition(input.value, valueParts[index]?.index);\n if (input && typeof input.setSelectionRange === 'function') {\n input.setSelectionRange(start, end);\n }\n }\n\n /** @ignore */\n private _detectValueChanges() {\n this.commitValue(this._editingDate().date, true);\n }\n}\n","<div\n class=\"ax-editor-container ax-default {{ classNames() }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n [id]=\"id\"\n class=\"ax-input\"\n type=\"text\"\n [dir]=\"isRtl() ? 'rtl' : 'ltr'\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.placeholder]=\"placeholder || _resolvedFormat()\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"true\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"_editingText()\"\n [style.text-align]=\"isRtl() ? 'end' : 'start'\"\n (mouseup)=\"_handleOnInputClickEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\"\n (blur)=\"_handleBlurEvent($event)\"\n />\n @if (_editingText() && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { NgModule } from '@angular/core';\nimport { AXDateTimeTextBoxComponent } from './datetime-text-box.component';\n\n@NgModule({\n imports: [AXDateTimeTextBoxComponent],\n exports: [AXDateTimeTextBoxComponent],\n})\nexport class AXDateTimeTextBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|