@latitude-ui/widgets 0.0.26 → 0.0.28

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.
Files changed (31) hide show
  1. package/fesm2022/latitude-ui-widgets-button.mjs +13 -19
  2. package/fesm2022/latitude-ui-widgets-button.mjs.map +1 -1
  3. package/fesm2022/latitude-ui-widgets-checkbox.mjs +6 -6
  4. package/fesm2022/latitude-ui-widgets-checkbox.mjs.map +1 -1
  5. package/fesm2022/latitude-ui-widgets-core.mjs +155 -2
  6. package/fesm2022/latitude-ui-widgets-core.mjs.map +1 -1
  7. package/fesm2022/latitude-ui-widgets-input.mjs +28 -174
  8. package/fesm2022/latitude-ui-widgets-input.mjs.map +1 -1
  9. package/fesm2022/latitude-ui-widgets-lookup.mjs +49 -0
  10. package/fesm2022/latitude-ui-widgets-lookup.mjs.map +1 -0
  11. package/fesm2022/latitude-ui-widgets-select.mjs +18 -17
  12. package/fesm2022/latitude-ui-widgets-select.mjs.map +1 -1
  13. package/fesm2022/latitude-ui-widgets-switch.mjs +6 -6
  14. package/fesm2022/latitude-ui-widgets-switch.mjs.map +1 -1
  15. package/fesm2022/latitude-ui-widgets-tabs.mjs +1 -1
  16. package/fesm2022/latitude-ui-widgets-tabs.mjs.map +1 -1
  17. package/fesm2022/latitude-ui-widgets-textbox.mjs +23 -24
  18. package/fesm2022/latitude-ui-widgets-textbox.mjs.map +1 -1
  19. package/fesm2022/latitude-ui-widgets-toolbar.mjs +13 -57
  20. package/fesm2022/latitude-ui-widgets-toolbar.mjs.map +1 -1
  21. package/lookup/README.md +3 -0
  22. package/package.json +5 -1
  23. package/types/latitude-ui-widgets-button.d.ts +17 -12
  24. package/types/latitude-ui-widgets-checkbox.d.ts +2 -2
  25. package/types/latitude-ui-widgets-core.d.ts +92 -3
  26. package/types/latitude-ui-widgets-input.d.ts +4 -95
  27. package/types/latitude-ui-widgets-lookup.d.ts +20 -0
  28. package/types/latitude-ui-widgets-select.d.ts +6 -3
  29. package/types/latitude-ui-widgets-switch.d.ts +2 -2
  30. package/types/latitude-ui-widgets-textbox.d.ts +8 -8
  31. package/types/latitude-ui-widgets-toolbar.d.ts +9 -16
@@ -1 +1 @@
1
- {"version":3,"file":"latitude-ui-widgets-select.mjs","sources":["../../../../packages/widgets/select/lib/select-option/select-option.component.ts","../../../../packages/widgets/select/lib/select-option/select-option.component.html","../../../../packages/widgets/select/lib/select-option/select-option.directive.ts","../../../../packages/widgets/select/lib/select/select.directive.ts","../../../../packages/widgets/select/lib/select-dropdown/select-dropdown.component.ts","../../../../packages/widgets/select/lib/select-dropdown/select-dropdown.component.html","../../../../packages/widgets/select/lib/select-trigger/select-trigger.component.ts","../../../../packages/widgets/select/lib/select-trigger/select-trigger.component.html","../../../../packages/widgets/select/lib/select-value/select-value.component.ts","../../../../packages/widgets/select/lib/select-value/select-value.component.html","../../../../packages/widgets/select/lib/select-values/select-values.component.ts","../../../../packages/widgets/select/lib/select-values/select-values.component.html","../../../../packages/widgets/select/lib/select-multiple.component.ts","../../../../packages/widgets/select/lib/select/select.component.html","../../../../packages/widgets/select/lib/select-single.component.ts","../../../../packages/widgets/select/latitude-ui-widgets-select.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SelectOptionDirective } from './select-option.directive';\n\n\n@Component({\n exportAs: 'latSelectOption',\n selector: 'lat-select-option',\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: forwardRef(() => SelectOptionDirective),\n },\n ],\n})\nexport class SelectOptionComponent<T> {\n readonly value = input.required<T>();\n readonly label = input.required<string>();\n\n readonly hidden = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n}\n","\n","import { computed, Directive, inject } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectOptionComponent } from './select-option.component';\n\n@Directive()\nexport class SelectOptionDirective<T> {\n readonly select = inject(SelectDirective<T, T | T[]>);\n readonly option = inject(SelectOptionComponent<T>, { host: true });\n\n readonly value = computed(() => this.option.value());\n readonly label = computed(() => this.option.label());\n readonly hidden = computed(() => this.option.hidden());\n readonly disabled = computed(() => this.option.disabled());\n\n readonly selected = computed(() => this.select.selected().includes(this.value()));\n}\n","import { delay, of, switchMap } from 'rxjs';\n\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { booleanAttribute, computed, contentChildren, Directive, input, Signal, signal } from '@angular/core';\n\nimport { ConnectedOverlayPositionChange, ConnectedPosition } from '@angular/cdk/overlay';\n\nimport { HTMLInputDirective } from '@latitude-ui/widgets/input';\n\nimport { SelectOptionDirective } from '../select-option/select-option.directive';\n\n@Directive()\nexport abstract class SelectDirective<T, TValue> extends HTMLInputDirective<TValue> {\n readonly searchable = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly contentChildren = contentChildren<SelectOptionDirective<T>>(SelectOptionDirective);\n\n /** @internal */\n readonly _overlayWidth = signal<number>(0);\n\n /** @internal */\n readonly _overlayState = signal<boolean>(false);\n\n /** @internal */\n readonly _overlayExpanded = toSignal(\n toObservable(this._overlayState).pipe(\n switchMap((state) => {\n return state ? of(state) : of(state).pipe(delay(100));\n }),\n takeUntilDestroyed()\n ),\n { initialValue: false }\n );\n\n /** @internal */\n readonly _overlayPositions = signal<ConnectedPosition[]>([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n ]);\n\n /** @internal */\n readonly _overlayPositionSide = signal<'top' | 'bottom' | 'left' | 'right'>('bottom');\n\n /** @internal */\n readonly _indexes = computed(() => {\n const children = this.contentChildren();\n\n return new Map(children.map((option) => [option.value(), option]));\n });\n\n /** @internal */\n readonly _selected = computed(() => {\n const selected = this.selected();\n\n const indexes = this._indexes();\n\n return selected\n .filter((value) => indexes.has(value))\n .map((value) => indexes.get(value)) as SelectOptionDirective<T>[];\n });\n\n public hide() {\n if (!this._overlayState()) {\n return void 0;\n }\n\n this._overlayState.set(false);\n\n this.markAsTouched();\n }\n\n public open() {\n if (this._overlayState() || this.disabled() || this.contentChildren().length === 0) {\n return void 0;\n }\n\n this._overlayState.set(true);\n }\n\n public toggle(): void {\n if (this._overlayState()) {\n this.hide();\n } else {\n this.open();\n }\n }\n\n /** @internal */\n protected updateOverlayPositionSide({ connectionPair }: ConnectedOverlayPositionChange) {\n this._overlayPositionSide.update(() => {\n return connectionPair.originY === 'center'\n ? connectionPair.originX === 'start'\n ? 'left'\n : 'right'\n : connectionPair.originY;\n });\n }\n\n /** ABSTRACT SECTION */\n\n abstract selected: Signal<T[]>;\n\n abstract select(option: SelectOptionDirective<T>): void;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n output,\n signal,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { IconComponent } from '@latitude-ui/widgets/icons';\nimport { ListBoxComponent, OptionComponent } from '@latitude-ui/widgets/listbox';\nimport { TextBoxComponent } from '@latitude-ui/widgets/textbox';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectOptionDirective } from '../select-option/select-option.directive';\n\n\n@Component({\n imports: [IconComponent, ListBoxComponent, OptionComponent, TextBoxComponent, FormsModule],\n exportAs: 'latSelectDropDown',\n selector: 'lat-select-dropdown',\n templateUrl: './select-dropdown.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-side]': 'dir._overlayPositionSide()',\n },\n})\nexport class SelectDropDownComponent<T> {\n readonly dir = inject(SelectDirective);\n\n readonly selection = output<SelectOptionDirective<T>>();\n\n readonly search = signal('');\n readonly options = computed(() => {\n const options = this.dir.contentChildren();\n\n const search = this.search()\n const searchRegExp = search.length ? new RegExp(`.*${search}*.`, 'i') : null\n\n return untracked(() => (searchRegExp ? options.filter((option) => option.label().match(searchRegExp)) : options));\n });\n\n}\n","@if (dir.searchable()) {\n <lat-textbox [autofocus]=\"true\" [(ngModel)]=\"search\" />\n}\n\n<lat-listbox [style.width.px]=\"dir._overlayWidth()\" [attr.data-side]=\"dir._overlayPositionSide()\">\n @for (option of options(); track option.value()) {\n <lat-option\n [label]=\"option.label()\"\n [value]=\"option.value()\"\n [disabled]=\"option.disabled()\"\n [setsize]=\"$count\"\n [posinset]=\"$index\"\n (click)=\"selection.emit(option)\"\n >\n @if (option.selected()) {\n <lat-icon name=\"check\" />\n }\n <span>{{ option.label() }}</span>\n </lat-option>\n }\n</lat-listbox>\n","import {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ButtonComponent } from '@latitude-ui/widgets/button';\nimport { IconComponent } from '@latitude-ui/widgets/icons';\n\nimport { SelectDirective } from '../select/select.directive';\n\n\n@Component({\n imports: [ButtonComponent, IconComponent],\n exportAs: 'latSelectTrigger',\n selector: 'lat-select-trigger',\n templateUrl: './select-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'combobox',\n '[attr.data-size]': 'select.size()',\n '(click)': 'select.toggle()',\n },\n})\nexport class SelectTriggerComponent {\n readonly el = inject(ElementRef<HTMLElement>).nativeElement;\n readonly select = inject(SelectDirective);\n\n constructor() {\n afterRenderEffect((onCleanup) => {\n const observer = new ResizeObserver(() => {\n this.select._overlayWidth.set(this.el.offsetWidth);\n });\n\n observer.observe(this.el);\n\n onCleanup(() => observer.disconnect());\n });\n }\n}\n","<ng-content select=\"lat-select-values\" />\n\n@if (!select.readonly()) {\n <section class=\"lat-select-control\">\n <lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"select.size()\" [disabled]=\"select.disabled()\">\n <lat-icon [name]=\"select._overlayState() ? 'chevron-up' : 'chevron-down'\"/>\n </lat-button>\n </section>\n}\n\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\n\n\n@Component({\n exportAs: 'latSelectValue',\n selector: 'lat-select-value',\n templateUrl: './select-value.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem'\n },\n})\nexport class SelectValueComponent {\n readonly select = inject(SelectDirective);\n}\n","<span>\n <ng-content />\n</span>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectValueComponent } from '../select-value/select-value.component';\n\n\n@Component({\n imports: [SelectValueComponent],\n exportAs: 'latSelectValues',\n selector: 'lat-select-values',\n templateUrl: './select-values.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list'\n },\n})\nexport class SelectValuesComponent {\n readonly select = inject(SelectDirective);\n}\n","@for (option of select._selected(); track option.value()) {\n <lat-select-value>\n {{ option.label() }}\n </lat-select-value>\n} @empty {\n {{ select.placeholder() }}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\n\nimport { HTMLInputDirective } from '@latitude-ui/widgets/input';\n\nimport { SelectDirective } from './select/select.directive';\n\nimport { SelectDropDownComponent } from './select-dropdown/select-dropdown.component';\nimport { SelectTriggerComponent } from './select-trigger/select-trigger.component';\nimport { SelectOptionDirective } from './select-option/select-option.directive';\nimport { SelectValuesComponent } from './select-values/select-values.component';\n\n@Component({\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n SelectDropDownComponent,\n SelectTriggerComponent,\n SelectValuesComponent,\n ],\n exportAs: 'latSelect',\n selector: 'lat-select[type=\"multiple\"]',\n templateUrl: './select/select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SelectDirective,\n useExisting: forwardRef(() => SelectMultipleComponent),\n },\n {\n provide: HTMLInputDirective,\n useExisting: forwardRef(() => SelectMultipleComponent),\n },\n ],\n})\nexport class SelectMultipleComponent<T> extends SelectDirective<T, T[]> {\n readonly maxlength = input<number, unknown>(Number.MAX_SAFE_INTEGER, { transform: numberAttribute });\n\n public override selected = computed(() => {\n const value = this.value();\n\n return (value ? (Array.isArray(value) ? value : [value]) : []) as T[];\n });\n\n public override select(option: SelectOptionDirective<T>): void {\n const selected = this.selected().slice();\n\n if (selected.length >= this.maxlength()) {\n return void 0;\n }\n\n const index = selected.findIndex((value) => value === option.value());\n\n if (index === -1) {\n selected.push(option.value());\n } else {\n selected.splice(index, 1);\n }\n\n this.writeValue(selected);\n }\n}\n","<lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <lat-select-values />\n</lat-select-trigger>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"_overlayExpanded()\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth() > 0 ? _overlayWidth() : 'auto'\"\n [cdkConnectedOverlayPositions]=\"_overlayPositions()\"\n (detach)=\"hide()\"\n (backdropClick)=\"hide()\"\n (positionChange)=\"updateOverlayPositionSide($event)\"\n>\n <lat-select-dropdown (selection)=\"select($event)\" />\n</ng-template>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed, forwardRef,\n input,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\n\nimport { HTMLInputDirective } from '@latitude-ui/widgets/input';\n\nimport { SelectDirective } from './select/select.directive';\n\nimport { SelectDropDownComponent } from './select-dropdown/select-dropdown.component';\nimport { SelectOptionDirective } from './select-option/select-option.directive';\nimport { SelectTriggerComponent } from './select-trigger/select-trigger.component';\nimport { SelectValuesComponent } from './select-values/select-values.component';\n\n\n@Component({\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n SelectDropDownComponent,\n SelectTriggerComponent,\n SelectValuesComponent,\n ],\n exportAs: 'latSelect',\n selector: 'lat-select[type=\"single\"]',\n templateUrl: './select/select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SelectDirective,\n useExisting: forwardRef(() => SelectSingleComponent),\n },\n {\n provide: HTMLInputDirective,\n useExisting: forwardRef(() => SelectSingleComponent),\n },\n ],\n})\nexport class SelectSingleComponent<T> extends SelectDirective<T, T> {\n readonly nullable = input<unknown, boolean>(true, { transform: booleanAttribute });\n\n public override selected = computed(() => {\n const value = this.value();\n return (value === undefined ? [] : [value]) as T[];\n });\n\n public override select(option: SelectOptionDirective<T>): void {\n const value = this.nullable() ? (option.selected() ? null : option.value()) : option.value();\n\n this.writeValue(value);\n this.hide();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"latitude-ui-widgets-select.mjs","sources":["../../../../packages/widgets/select/lib/select-option/select-option.component.ts","../../../../packages/widgets/select/lib/select-option/select-option.component.html","../../../../packages/widgets/select/lib/select-option/select-option.directive.ts","../../../../packages/widgets/select/lib/select/select.directive.ts","../../../../packages/widgets/select/lib/select-dropdown/select-dropdown.component.ts","../../../../packages/widgets/select/lib/select-dropdown/select-dropdown.component.html","../../../../packages/widgets/select/lib/select-trigger/select-trigger.component.ts","../../../../packages/widgets/select/lib/select-trigger/select-trigger.component.html","../../../../packages/widgets/select/lib/select-value/select-value.component.ts","../../../../packages/widgets/select/lib/select-value/select-value.component.html","../../../../packages/widgets/select/lib/select-values/select-values.component.ts","../../../../packages/widgets/select/lib/select-values/select-values.component.html","../../../../packages/widgets/select/lib/select-multiple.component.ts","../../../../packages/widgets/select/lib/select/select.component.html","../../../../packages/widgets/select/lib/select-single.component.ts","../../../../packages/widgets/select/latitude-ui-widgets-select.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SelectOptionDirective } from './select-option.directive';\n\n\n@Component({\n exportAs: 'latSelectOption',\n selector: 'lat-select-option',\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: forwardRef(() => SelectOptionDirective),\n },\n ],\n})\nexport class SelectOptionComponent<T> {\n readonly value = input.required<T>();\n readonly label = input.required<string>();\n\n readonly hidden = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n}\n","\n","import { computed, Directive, inject } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectOptionComponent } from './select-option.component';\n\n@Directive()\nexport class SelectOptionDirective<T> {\n readonly select = inject(SelectDirective<T, T | T[]>);\n readonly option = inject(SelectOptionComponent<T>, { host: true });\n\n readonly value = computed(() => this.option.value());\n readonly label = computed(() => this.option.label());\n readonly hidden = computed(() => this.option.hidden());\n readonly disabled = computed(() => this.option.disabled());\n\n readonly selected = computed(() => this.select.selected().includes(this.value()));\n}\n","import { delay, of, switchMap } from 'rxjs';\r\n\r\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\r\nimport { booleanAttribute, computed, contentChildren, Directive, input, Signal, signal } from '@angular/core';\r\n\r\nimport { ConnectedOverlayPositionChange, ConnectedPosition } from '@angular/cdk/overlay';\r\n\r\nimport { HTMLFormControl } from '@latitude-ui/widgets/core';\r\n\r\nimport { SelectOptionDirective } from '../select-option/select-option.directive';\r\n\r\nexport type SelectMode = 'popover' | 'dialog' ;\r\n\r\n@Directive()\r\nexport abstract class SelectDirective<T, TValue> extends HTMLFormControl<TValue> {\r\n readonly mode = input<SelectMode>('popover');\r\n readonly searchable = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n\r\n readonly contentChildren = contentChildren<SelectOptionDirective<T>>(SelectOptionDirective);\r\n\r\n /** @internal */\r\n readonly _overlayWidth = signal<number>(0);\r\n\r\n /** @internal */\r\n readonly _overlayState = signal<boolean>(false);\r\n\r\n /** @internal */\r\n readonly _overlayExpanded = toSignal(\r\n toObservable(this._overlayState).pipe(\r\n switchMap((state) => {\r\n return state ? of(state) : of(state).pipe(delay(100));\r\n }),\r\n takeUntilDestroyed()\r\n ),\r\n { initialValue: false }\r\n );\r\n\r\n /** @internal */\r\n readonly _overlayPositions = signal<ConnectedPosition[]>([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom'\r\n }\r\n ]);\r\n\r\n /** @internal */\r\n readonly _overlayPositionSide = signal<'top' | 'bottom' | 'left' | 'right'>('bottom');\r\n\r\n /** @internal */\r\n readonly _indexes = computed(() => {\r\n const children = this.contentChildren();\r\n\r\n return new Map(children.map((option) => [option.value(), option]));\r\n });\r\n\r\n /** @internal */\r\n readonly _selected = computed(() => {\r\n const selected = this.selected();\r\n\r\n const indexes = this._indexes();\r\n\r\n return selected\r\n .filter((value) => indexes.has(value))\r\n .map((value) => indexes.get(value)) as SelectOptionDirective<T>[];\r\n });\r\n\r\n public hide() {\r\n if (!this._overlayState()) {\r\n return void 0;\r\n }\r\n\r\n this._overlayState.set(false);\r\n\r\n this.markAsTouched();\r\n }\r\n\r\n public open() {\r\n if (this._overlayState() || this.disabled() || this.contentChildren().length === 0) {\r\n return void 0;\r\n }\r\n\r\n this._overlayState.set(true);\r\n }\r\n\r\n public toggle(): void {\r\n if (this._overlayState()) {\r\n this.hide();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected updateOverlayPositionSide({ connectionPair }: ConnectedOverlayPositionChange) {\r\n this._overlayPositionSide.update(() => {\r\n return connectionPair.originY === 'center'\r\n ? connectionPair.originX === 'start'\r\n ? 'left'\r\n : 'right'\r\n : connectionPair.originY;\r\n });\r\n }\r\n\r\n /** ABSTRACT SECTION */\r\n\r\n abstract selected: Signal<T[]>;\r\n\r\n abstract select(option: SelectOptionDirective<T>): void;\r\n}\r\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n output,\n signal,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { IconComponent } from '@latitude-ui/widgets/icons';\nimport { ListBoxComponent, OptionComponent } from '@latitude-ui/widgets/listbox';\nimport { TextBoxComponent } from '@latitude-ui/widgets/textbox';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectOptionDirective } from '../select-option/select-option.directive';\n\n\n@Component({\n imports: [IconComponent, ListBoxComponent, OptionComponent, TextBoxComponent, FormsModule],\n exportAs: 'latSelectDropDown',\n selector: 'lat-select-dropdown',\n templateUrl: './select-dropdown.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-side]': 'dir._overlayPositionSide()',\n },\n})\nexport class SelectDropDownComponent<T> {\n readonly dir = inject(SelectDirective);\n\n readonly selection = output<SelectOptionDirective<T>>();\n\n readonly search = signal('');\n readonly options = computed(() => {\n const options = this.dir.contentChildren();\n\n const search = this.search()\n const searchRegExp = search.length ? new RegExp(`.*${search}*.`, 'i') : null\n\n return untracked(() => (searchRegExp ? options.filter((option) => option.label().match(searchRegExp)) : options));\n });\n\n}\n","@if (dir.searchable()) {\n <lat-textbox [autofocus]=\"true\" [(ngModel)]=\"search\" />\n}\n\n<lat-listbox [style.width.px]=\"dir._overlayWidth()\" [attr.data-side]=\"dir._overlayPositionSide()\">\n @for (option of options(); track option.value()) {\n <lat-option\n [label]=\"option.label()\"\n [value]=\"option.value()\"\n [disabled]=\"option.disabled()\"\n [setsize]=\"$count\"\n [posinset]=\"$index\"\n (click)=\"selection.emit(option)\"\n >\n @if (option.selected()) {\n <lat-icon name=\"check\" />\n }\n <span>{{ option.label() }}</span>\n </lat-option>\n }\n</lat-listbox>\n","import {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ButtonComponent } from '@latitude-ui/widgets/button';\nimport { IconComponent } from '@latitude-ui/widgets/icons';\n\nimport { SelectDirective } from '../select/select.directive';\n\n\n@Component({\n imports: [ButtonComponent, IconComponent],\n exportAs: 'latSelectTrigger',\n selector: 'lat-select-trigger',\n templateUrl: './select-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'combobox',\n '[attr.size]': 'select.size()',\n '(click)': 'select.toggle()',\n },\n})\nexport class SelectTriggerComponent {\n readonly el = inject(ElementRef<HTMLElement>).nativeElement;\n readonly select = inject(SelectDirective);\n\n constructor() {\n afterRenderEffect((onCleanup) => {\n const observer = new ResizeObserver(() => {\n this.select._overlayWidth.set(this.el.offsetWidth);\n });\n\n observer.observe(this.el);\n\n onCleanup(() => observer.disconnect());\n });\n }\n}\n","<ng-content select=\"lat-select-values\" />\n\n@if (!select.readonly()) {\n <div class=\"lat-select-control\">\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"select.size()\" [disabled]=\"select.disabled()\">\n <lat-icon [name]=\"select._overlayState() ? 'chevron-up' : 'chevron-down'\"/>\n </lat-button>\n </div>\n}\n\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\n\n\n@Component({\n exportAs: 'latSelectValue',\n selector: 'lat-select-value',\n templateUrl: './select-value.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem'\n },\n})\nexport class SelectValueComponent {\n readonly select = inject(SelectDirective);\n}\n","<span>\n <ng-content />\n</span>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\n\nimport { SelectDirective } from '../select/select.directive';\nimport { SelectValueComponent } from '../select-value/select-value.component';\n\n\n@Component({\n imports: [SelectValueComponent],\n exportAs: 'latSelectValues',\n selector: 'lat-select-values',\n templateUrl: './select-values.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list'\n },\n})\nexport class SelectValuesComponent {\n readonly select = inject(SelectDirective);\n}\n","@for (option of select._selected(); track option.value()) {\n <lat-select-value>\n {{ option.label() }}\n </lat-select-value>\n} @empty {\n {{ select.placeholder() }}\n}\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n forwardRef,\r\n input,\r\n numberAttribute,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\n\r\nimport { HTMLFormControl } from '@latitude-ui/widgets/core';\r\n\r\nimport { SelectDirective } from './select/select.directive';\r\n\r\nimport { SelectDropDownComponent } from './select-dropdown/select-dropdown.component';\r\nimport { SelectTriggerComponent } from './select-trigger/select-trigger.component';\r\nimport { SelectOptionDirective } from './select-option/select-option.directive';\r\nimport { SelectValuesComponent } from './select-values/select-values.component';\r\n\r\n@Component({\r\n imports: [\r\n CdkOverlayOrigin,\r\n CdkConnectedOverlay,\r\n SelectDropDownComponent,\r\n SelectTriggerComponent,\r\n SelectValuesComponent,\r\n ],\r\n exportAs: 'latSelect',\r\n selector: 'lat-select[type=\"multiple\"]',\r\n templateUrl: './select/select.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: SelectDirective,\r\n useExisting: forwardRef(() => SelectMultipleComponent),\r\n },\r\n {\r\n provide: HTMLFormControl,\r\n useExisting: forwardRef(() => SelectMultipleComponent),\r\n },\r\n ],\r\n})\r\nexport class SelectMultipleComponent<T> extends SelectDirective<T, T[]> {\r\n readonly maxlength = input<number, unknown>(Number.MAX_SAFE_INTEGER, { transform: numberAttribute });\r\n\r\n public override selected = computed(() => {\r\n const value = this.value();\r\n\r\n return (value ? (Array.isArray(value) ? value : [value]) : []) as T[];\r\n });\r\n\r\n public override select(option: SelectOptionDirective<T>): void {\r\n const selected = this.selected().slice();\r\n\r\n if (selected.length >= this.maxlength()) {\r\n return void 0;\r\n }\r\n\r\n const index = selected.findIndex((value) => value === option.value());\r\n\r\n if (index === -1) {\r\n selected.push(option.value());\r\n } else {\r\n selected.splice(index, 1);\r\n }\r\n\r\n this.writeValue(selected);\r\n }\r\n}\r\n","@if(mode() === 'popover') {\n <lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <lat-select-values />\n </lat-select-trigger>\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"_overlayExpanded()\"\n [cdkConnectedOverlayWidth]=\"_overlayWidth() > 0 ? _overlayWidth() : 'auto'\"\n [cdkConnectedOverlayPositions]=\"_overlayPositions()\"\n (detach)=\"hide()\"\n (backdropClick)=\"hide()\"\n (positionChange)=\"updateOverlayPositionSide($event)\"\n >\n <lat-select-dropdown (selection)=\"select($event)\" />\n </ng-template>\n} @else {\n <lat-select-trigger>\n <lat-select-values />\n </lat-select-trigger>\n}\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed, forwardRef,\r\n input,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\n\r\nimport { HTMLFormControl } from '@latitude-ui/widgets/core';\r\n\r\nimport { SelectDirective } from './select/select.directive';\r\n\r\nimport { SelectDropDownComponent } from './select-dropdown/select-dropdown.component';\r\nimport { SelectOptionDirective } from './select-option/select-option.directive';\r\nimport { SelectTriggerComponent } from './select-trigger/select-trigger.component';\r\nimport { SelectValuesComponent } from './select-values/select-values.component';\r\n\r\n\r\n@Component({\r\n imports: [\r\n CdkOverlayOrigin,\r\n CdkConnectedOverlay,\r\n SelectDropDownComponent,\r\n SelectTriggerComponent,\r\n SelectValuesComponent,\r\n ],\r\n exportAs: 'latSelect',\r\n selector: 'lat-select[type=\"single\"]',\r\n templateUrl: './select/select.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: SelectDirective,\r\n useExisting: forwardRef(() => SelectSingleComponent),\r\n },\r\n {\r\n provide: HTMLFormControl,\r\n useExisting: forwardRef(() => SelectSingleComponent),\r\n },\r\n ],\r\n})\r\nexport class SelectSingleComponent<T> extends SelectDirective<T, T> {\r\n readonly nullable = input<unknown, boolean>(true, { transform: booleanAttribute });\r\n\r\n public override selected = computed(() => {\r\n const value = this.value();\r\n return (value === undefined ? [] : [value]) as T[];\r\n });\r\n\r\n public override select(option: SelectOptionDirective<T>): void {\r\n const value = this.nullable() ? (option.selected() ? null : option.value()) : option.value();\r\n\r\n this.writeValue(value);\r\n this.hide();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import { HTMLInputDirective } from '@latitude-ui/widgets/input';
3
+ import { HTMLFormControl } from '@latitude-ui/widgets/core';
4
4
 
5
- class SwitchComponent extends HTMLInputDirective {
5
+ class SwitchComponent extends HTMLFormControl {
6
6
  toggle() {
7
7
  if (!this.disabled()) {
8
8
  const value = this.value() ?? false;
@@ -12,21 +12,21 @@ class SwitchComponent extends HTMLInputDirective {
12
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
13
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: SwitchComponent, isStandalone: true, selector: "lat-switch", host: { listeners: { "click": "toggle()" } }, providers: [
14
14
  {
15
- provide: HTMLInputDirective,
15
+ provide: HTMLFormControl,
16
16
  useExisting: forwardRef(() => SwitchComponent),
17
17
  },
18
- ], exportAs: ["latSwitch"], usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
18
+ ], exportAs: ["latSwitch"], usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"computedId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SwitchComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ exportAs: 'latSwitch', selector: 'lat-switch', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
23
23
  {
24
- provide: HTMLInputDirective,
24
+ provide: HTMLFormControl,
25
25
  useExisting: forwardRef(() => SwitchComponent),
26
26
  },
27
27
  ], host: {
28
28
  '(click)': 'toggle()',
29
- }, template: "<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n" }]
29
+ }, template: "<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"computedId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n" }]
30
30
  }] });
31
31
 
32
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"latitude-ui-widgets-switch.mjs","sources":["../../../../packages/widgets/switch/lib/switch.component.ts","../../../../packages/widgets/switch/lib/switch.component.html","../../../../packages/widgets/switch/latitude-ui-widgets-switch.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\n\nimport { HTMLInputDirective } from '@latitude-ui/widgets/input';\n\n\n@Component({\n exportAs: 'latSwitch',\n selector: 'lat-switch',\n templateUrl: './switch.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: HTMLInputDirective,\n useExisting: forwardRef(() => SwitchComponent),\n },\n ],\n host: {\n '(click)': 'toggle()',\n },\n})\nexport class SwitchComponent extends HTMLInputDirective<boolean> {\n toggle() {\n if (!this.disabled()) {\n const value = this.value() ?? false;\n\n this.writeValue(!value);\n }\n }\n}\n","<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAqBM,MAAO,eAAgB,SAAQ,kBAA2B,CAAA;IAC9D,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK;AAEnC,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QACzB;IACF;uGAPW,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAVf;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC/C,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBH,iXAeA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDMa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,SAAS;+BACE,WAAW,EAAA,QAAA,EACX,YAAY,EAAA,aAAA,EAEP,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC/C,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA,EAAA,QAAA,EAAA,iXAAA,EAAA;;;AEnBH;;AAEG;;;;"}
1
+ {"version":3,"file":"latitude-ui-widgets-switch.mjs","sources":["../../../../packages/widgets/switch/lib/switch.component.ts","../../../../packages/widgets/switch/lib/switch.component.html","../../../../packages/widgets/switch/latitude-ui-widgets-switch.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { HTMLFormControl } from '@latitude-ui/widgets/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latSwitch',\r\n selector: 'lat-switch',\r\n templateUrl: './switch.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: HTMLFormControl,\r\n useExisting: forwardRef(() => SwitchComponent),\r\n },\r\n ],\r\n host: {\r\n '(click)': 'toggle()',\r\n },\r\n})\r\nexport class SwitchComponent extends HTMLFormControl<boolean> {\r\n toggle() {\r\n if (!this.disabled()) {\r\n const value = this.value() ?? false;\r\n\r\n this.writeValue(!value);\r\n }\r\n }\r\n}\r\n","<button\n type=\"button\"\n role=\"switch\"\n [attr.id]=\"computedId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <div\n role=\"presentation\"\n class=\"lat-switch-thumb\"\n ></div>\n</button>\n<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAqBM,MAAO,eAAgB,SAAQ,eAAwB,CAAA;IAC3D,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK;AAEnC,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QACzB;IACF;uGAPW,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAVf;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC/C,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBH,oXAeA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDMa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,SAAS;+BACE,WAAW,EAAA,QAAA,EACX,YAAY,EAAA,aAAA,EAEP,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC/C,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA,EAAA,QAAA,EAAA,oXAAA,EAAA;;;AEnBH;;AAEG;;;;"}
@@ -64,7 +64,7 @@ class TabsComponent {
64
64
  this.selected.set(tab);
65
65
  }
66
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: TabsComponent, isStandalone: true, selector: "lat-tabs", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tabs", predicate: TabComponent, isSignal: true }], exportAs: ["latTabs"], ngImport: i0, template: "<lat-toolbar role=\"tablist\" variant=\"inherit\">\r\n @for (tab of tabs(); track $index) {\r\n <lat-button\r\n role=\"tab\"\r\n variant=\"inherit\"\r\n [id]=\"tab.tabId()\"\r\n [tabindex]=\"tab.tabindex()\"\r\n [disabled]=\"tab.disabled()\"\r\n (click)=\"onTabChanged(tab)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.label()\" />\r\n </lat-button>\r\n }\r\n</lat-toolbar>\r\n\r\n@if (selected(); as tab) {\r\n <div\r\n role=\"tabpanel\"\r\n [attr.id]=\"tab.tabpanelId()\"\r\n [attr.aria-labelledby]=\"tab.tabId()\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.content()\" />\r\n </div>\r\n} @else {\r\n <div role=\"presentation\">\r\n <!-- TODO: empty state placeholder -->\r\n </div>\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolBarComponent, selector: "lat-toolbar", inputs: ["role", "size", "dock", "variant"], exportAs: ["latToolBar"] }, { kind: "component", type: ButtonComponent, selector: "lat-button, a[latButton],button[latButton]", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: TabsComponent, isStandalone: true, selector: "lat-tabs", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "tabs", predicate: TabComponent, isSignal: true }], exportAs: ["latTabs"], ngImport: i0, template: "<lat-toolbar role=\"tablist\" variant=\"inherit\">\r\n @for (tab of tabs(); track $index) {\r\n <lat-button\r\n role=\"tab\"\r\n variant=\"inherit\"\r\n [id]=\"tab.tabId()\"\r\n [tabindex]=\"tab.tabindex()\"\r\n [disabled]=\"tab.disabled()\"\r\n (click)=\"onTabChanged(tab)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.label()\" />\r\n </lat-button>\r\n }\r\n</lat-toolbar>\r\n\r\n@if (selected(); as tab) {\r\n <div\r\n role=\"tabpanel\"\r\n [attr.id]=\"tab.tabpanelId()\"\r\n [attr.aria-labelledby]=\"tab.tabId()\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.content()\" />\r\n </div>\r\n} @else {\r\n <div role=\"presentation\">\r\n <!-- TODO: empty state placeholder -->\r\n </div>\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolBarComponent, selector: "lat-toolbar", inputs: ["role", "size", "dock", "variant"], exportAs: ["latToolBar"] }, { kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TabsComponent, decorators: [{
70
70
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"latitude-ui-widgets-tabs.mjs","sources":["../../../../packages/widgets/tabs/lib/tab-label.directive.ts","../../../../packages/widgets/tabs/lib/tab-content.directive.ts","../../../../packages/widgets/tabs/lib/tab.component.ts","../../../../packages/widgets/tabs/lib/tab.component.html","../../../../packages/widgets/tabs/lib/tabs.options.ts","../../../../packages/widgets/tabs/lib/tabs.component.ts","../../../../packages/widgets/tabs/lib/tabs.component.html","../../../../packages/widgets/tabs/latitude-ui-widgets-tabs.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n exportAs: 'latTabLabel',\r\n selector: '[latTabLabel]'\r\n})\r\nexport class TabLabelDirective {\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n exportAs: 'latTabContent',\r\n selector: '[latTabContent]'\r\n})\r\nexport class TabContentDirective {\r\n}\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, computed,\r\n contentChild,\r\n input, numberAttribute,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { uid } from '@latitude-ui/widgets/core';\r\n\r\nimport { TabLabelDirective } from './tab-label.directive';\r\nimport { TabContentDirective } from './tab-content.directive';\r\n\r\n\r\n@Component({\r\n exportAs: 'latTab',\r\n selector: 'lat-tab',\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TabComponent {\r\n readonly id = input<string>(uid());\r\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n readonly tabindex = input<number, unknown>(undefined, { transform: numberAttribute });\r\n\r\n readonly tabId = computed(() => `lat-tab-${this.id()}`);\r\n readonly tabpanelId = computed(() => `lat-tabpanel-${this.id()}`);\r\n\r\n readonly label = contentChild(TabLabelDirective, { read: TemplateRef });\r\n readonly content = contentChild.required(TabContentDirective, { read: TemplateRef })\r\n}\r\n","","import { InjectionToken } from '@angular/core';\r\n\r\nimport { BoxSize } from '@latitude-ui/widgets/core';\r\n\r\n\r\nexport type TabsOptions = {\r\n size: BoxSize;\r\n variant: 'default' | 'inherit' | ({} & string);\r\n}\r\n\r\nexport const TABS_OPTIONS = new InjectionToken<TabsOptions>(\r\n ngDevMode ? 'TABS_OPTIONS' : '',\r\n {\r\n factory: () => {\r\n return {\r\n size: 'md',\r\n variant: 'default',\r\n }\r\n }\r\n }\r\n);\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n inject, input,\r\n linkedSignal,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nimport { ButtonComponent } from '@latitude-ui/widgets/button';\r\nimport { ToolBarComponent } from '@latitude-ui/widgets/toolbar';\r\n\r\nimport { TabComponent } from './tab.component';\r\nimport { TABS_OPTIONS, TabsOptions } from './tabs.options';\r\n\r\n\r\n@Component({\r\n imports: [\r\n NgTemplateOutlet,\r\n ToolBarComponent,\r\n ButtonComponent\r\n ],\r\n exportAs: 'latTabs',\r\n selector: 'lat-tabs',\r\n templateUrl: './tabs.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TabsComponent {\r\n readonly options = inject(TABS_OPTIONS);\r\n\r\n readonly size = input<TabsOptions['size']>(this.options.size);\r\n readonly variant = input<TabsOptions['variant']>(this.options.variant);\r\n\r\n readonly tabs = contentChildren(TabComponent);\r\n\r\n readonly selected = linkedSignal<TabComponent | undefined>(() => this.tabs().at(0));\r\n\r\n onTabChanged(tab: TabComponent | undefined) {\r\n this.selected.set(tab);\r\n }\r\n}\r\n","<lat-toolbar role=\"tablist\" variant=\"inherit\">\r\n @for (tab of tabs(); track $index) {\r\n <lat-button\r\n role=\"tab\"\r\n variant=\"inherit\"\r\n [id]=\"tab.tabId()\"\r\n [tabindex]=\"tab.tabindex()\"\r\n [disabled]=\"tab.disabled()\"\r\n (click)=\"onTabChanged(tab)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.label()\" />\r\n </lat-button>\r\n }\r\n</lat-toolbar>\r\n\r\n@if (selected(); as tab) {\r\n <div\r\n role=\"tabpanel\"\r\n [attr.id]=\"tab.tabpanelId()\"\r\n [attr.aria-labelledby]=\"tab.tabId()\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.content()\" />\r\n </div>\r\n} @else {\r\n <div role=\"presentation\">\r\n <!-- TODO: empty state placeholder -->\r\n </div>\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"latitude-ui-widgets-tabs.mjs","sources":["../../../../packages/widgets/tabs/lib/tab-label.directive.ts","../../../../packages/widgets/tabs/lib/tab-content.directive.ts","../../../../packages/widgets/tabs/lib/tab.component.ts","../../../../packages/widgets/tabs/lib/tab.component.html","../../../../packages/widgets/tabs/lib/tabs.options.ts","../../../../packages/widgets/tabs/lib/tabs.component.ts","../../../../packages/widgets/tabs/lib/tabs.component.html","../../../../packages/widgets/tabs/latitude-ui-widgets-tabs.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n exportAs: 'latTabLabel',\r\n selector: '[latTabLabel]'\r\n})\r\nexport class TabLabelDirective {\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n exportAs: 'latTabContent',\r\n selector: '[latTabContent]'\r\n})\r\nexport class TabContentDirective {\r\n}\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, computed,\r\n contentChild,\r\n input, numberAttribute,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { uid } from '@latitude-ui/widgets/core';\r\n\r\nimport { TabLabelDirective } from './tab-label.directive';\r\nimport { TabContentDirective } from './tab-content.directive';\r\n\r\n\r\n@Component({\r\n exportAs: 'latTab',\r\n selector: 'lat-tab',\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TabComponent {\r\n readonly id = input<string>(uid());\r\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n readonly tabindex = input<number, unknown>(undefined, { transform: numberAttribute });\r\n\r\n readonly tabId = computed(() => `lat-tab-${this.id()}`);\r\n readonly tabpanelId = computed(() => `lat-tabpanel-${this.id()}`);\r\n\r\n readonly label = contentChild(TabLabelDirective, { read: TemplateRef });\r\n readonly content = contentChild.required(TabContentDirective, { read: TemplateRef })\r\n}\r\n","","import { InjectionToken } from '@angular/core';\r\n\r\nimport { BoxSize } from '@latitude-ui/widgets/core';\r\n\r\n\r\nexport type TabsOptions = {\r\n size: BoxSize;\r\n variant: 'default' | 'inherit' | ({} & string);\r\n}\r\n\r\nexport const TABS_OPTIONS = new InjectionToken<TabsOptions>(\r\n ngDevMode ? 'TABS_OPTIONS' : '',\r\n {\r\n factory: () => {\r\n return {\r\n size: 'md',\r\n variant: 'default',\r\n }\r\n }\r\n }\r\n);\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n inject, input,\r\n linkedSignal,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nimport { ButtonComponent } from '@latitude-ui/widgets/button';\r\nimport { ToolBarComponent } from '@latitude-ui/widgets/toolbar';\r\n\r\nimport { TabComponent } from './tab.component';\r\nimport { TABS_OPTIONS, TabsOptions } from './tabs.options';\r\n\r\n\r\n@Component({\r\n imports: [\r\n NgTemplateOutlet,\r\n ToolBarComponent,\r\n ButtonComponent\r\n ],\r\n exportAs: 'latTabs',\r\n selector: 'lat-tabs',\r\n templateUrl: './tabs.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TabsComponent {\r\n readonly options = inject(TABS_OPTIONS);\r\n\r\n readonly size = input<TabsOptions['size']>(this.options.size);\r\n readonly variant = input<TabsOptions['variant']>(this.options.variant);\r\n\r\n readonly tabs = contentChildren(TabComponent);\r\n\r\n readonly selected = linkedSignal<TabComponent | undefined>(() => this.tabs().at(0));\r\n\r\n onTabChanged(tab: TabComponent | undefined) {\r\n this.selected.set(tab);\r\n }\r\n}\r\n","<lat-toolbar role=\"tablist\" variant=\"inherit\">\r\n @for (tab of tabs(); track $index) {\r\n <lat-button\r\n role=\"tab\"\r\n variant=\"inherit\"\r\n [id]=\"tab.tabId()\"\r\n [tabindex]=\"tab.tabindex()\"\r\n [disabled]=\"tab.disabled()\"\r\n (click)=\"onTabChanged(tab)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.label()\" />\r\n </lat-button>\r\n }\r\n</lat-toolbar>\r\n\r\n@if (selected(); as tab) {\r\n <div\r\n role=\"tabpanel\"\r\n [attr.id]=\"tab.tabpanelId()\"\r\n [attr.aria-labelledby]=\"tab.tabId()\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"tab.content()\" />\r\n </div>\r\n} @else {\r\n <div role=\"presentation\">\r\n <!-- TODO: empty state placeholder -->\r\n </div>\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { viewChild, ElementRef, Directive, input, numberAttribute, computed, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, effect } from '@angular/core';
3
- import { HTMLInputDirective } from '@latitude-ui/widgets/input';
3
+ import { HTMLFormControl } from '@latitude-ui/widgets/core';
4
4
  import { maskitoDateOptionsGenerator, maskitoStringifyDate, maskitoParseDate, maskitoNumberOptionsGenerator, maskitoStringifyNumber, maskitoParseNumber } from '@maskito/kit';
5
5
  import { Maskito, maskitoInitialCalibrationPlugin } from '@maskito/core';
6
6
  import { ButtonComponent } from '@latitude-ui/widgets/button';
7
7
  import { IconComponent } from '@latitude-ui/widgets/icons';
8
8
 
9
- class HTMLTextBoxDirective extends HTMLInputDirective {
9
+ class TextBoxDirective extends HTMLFormControl {
10
10
  el = viewChild.required('htmlInputElement', { read: (ElementRef) });
11
11
  blur() {
12
12
  this.el().nativeElement.blur();
@@ -14,14 +14,14 @@ class HTMLTextBoxDirective extends HTMLInputDirective {
14
14
  focus() {
15
15
  this.el().nativeElement.focus();
16
16
  }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: HTMLTextBoxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.3", type: HTMLTextBoxDirective, isStandalone: true, viewQueries: [{ propertyName: "el", first: true, predicate: ["htmlInputElement"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0 });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.3", type: TextBoxDirective, isStandalone: true, viewQueries: [{ propertyName: "el", first: true, predicate: ["htmlInputElement"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0 });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: HTMLTextBoxDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxDirective, decorators: [{
21
21
  type: Directive
22
22
  }], propDecorators: { el: [{ type: i0.ViewChild, args: ['htmlInputElement', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
23
23
 
24
- class TextBoxComponent extends HTMLTextBoxDirective {
24
+ class TextBoxComponent extends TextBoxDirective {
25
25
  rows = input(undefined, { ...(ngDevMode ? { debugName: "rows" } : {}), transform: numberAttribute });
26
26
  maxlength = input(undefined, { ...(ngDevMode ? { debugName: "maxlength" } : {}), transform: numberAttribute });
27
27
  minlength = input(undefined, { ...(ngDevMode ? { debugName: "minlength" } : {}), transform: numberAttribute });
@@ -41,24 +41,22 @@ class TextBoxComponent extends HTMLTextBoxDirective {
41
41
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
42
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: TextBoxComponent, isStandalone: true, selector: "lat-textbox:not([type]), lat-textbox[type=\"text\"]", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
43
43
  {
44
- provide: HTMLInputDirective,
44
+ provide: HTMLFormControl,
45
45
  useExisting: forwardRef(() => TextBoxComponent),
46
46
  },
47
- ], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "@if(textarea()) {\r\n <textarea\r\n #htmlInputElement\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n [style.resize]=\"'none'\"\r\n [style.height]=\"'auto'\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n ></textarea>\r\n} @else {\r\n <input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n />\r\n}\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
47
+ ], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "@if(textarea()) {\r\n <textarea\r\n #htmlInputElement\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n [style.resize]=\"'none'\"\r\n [style.height]=\"'auto'\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n ></textarea>\r\n} @else {\r\n <input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n />\r\n}\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ exportAs: 'latTextBox', selector: 'lat-textbox:not([type]), lat-textbox[type="text"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
52
52
  {
53
- provide: HTMLInputDirective,
53
+ provide: HTMLFormControl,
54
54
  useExisting: forwardRef(() => TextBoxComponent),
55
55
  },
56
- ], host: {
57
- // '[style.height]': 'textarea() ? "auto" : undefined'
58
- }, template: "@if(textarea()) {\r\n <textarea\r\n #htmlInputElement\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n [style.resize]=\"'none'\"\r\n [style.height]=\"'auto'\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n ></textarea>\r\n} @else {\r\n <input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n />\r\n}\r\n" }]
56
+ ], template: "@if(textarea()) {\r\n <textarea\r\n #htmlInputElement\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n [style.resize]=\"'none'\"\r\n [style.height]=\"'auto'\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n ></textarea>\r\n} @else {\r\n <input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (input)=\"onValueChanged()\"\r\n />\r\n}\r\n" }]
59
57
  }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], minlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minlength", required: false }] }] } });
60
58
 
61
- class TextBoxDateComponent extends HTMLTextBoxDirective {
59
+ class TextBoxDateComponent extends TextBoxDirective {
62
60
  max = input(...(ngDevMode ? [undefined, { debugName: "max" }] : []));
63
61
  min = input(...(ngDevMode ? [undefined, { debugName: "min" }] : []));
64
62
  pattern = input('dd/mm/yyyy', ...(ngDevMode ? [{ debugName: "pattern" }] : []));
@@ -88,7 +86,8 @@ class TextBoxDateComponent extends HTMLTextBoxDirective {
88
86
  patternPlaceholder = computed(() => {
89
87
  const pattern = this.pattern();
90
88
  const separator = this.separator();
91
- return pattern.replace('/\//g', separator);
89
+ const regexp = new RegExp(/\//g);
90
+ return pattern.replace(regexp, separator);
92
91
  }, ...(ngDevMode ? [{ debugName: "patternPlaceholder" }] : []));
93
92
  picker = viewChild.required('htmlInputPicker', { read: (ElementRef) });
94
93
  maskitoDateParams = computed(() => {
@@ -188,22 +187,22 @@ class TextBoxDateComponent extends HTMLTextBoxDirective {
188
187
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
189
188
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: TextBoxDateComponent, isStandalone: true, selector: "lat-textbox[type=\"date\"]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
190
189
  {
191
- provide: HTMLInputDirective,
190
+ provide: HTMLFormControl,
192
191
  useExisting: forwardRef(() => TextBoxDateComponent),
193
192
  },
194
- ], viewQueries: [{ propertyName: "picker", first: true, predicate: ["htmlInputPicker"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input #htmlInputPicker type=\"date\" aria-hidden=\"true\" (change)=\"onPickerChange()\"/>\r\n\r\n<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.placeholder]=\"placeholder() || patternPlaceholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (!readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onPickerShow($event)\"\r\n >\r\n <lat-icon name=\"calendar-week\" />\r\n </lat-button>\r\n </div>\r\n}\r\n\r\n\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button, a[latButton],button[latButton]", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
193
+ ], viewQueries: [{ propertyName: "picker", first: true, predicate: ["htmlInputPicker"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input #htmlInputPicker type=\"date\" aria-hidden=\"true\" (change)=\"onPickerChange()\"/>\r\n\r\n<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.placeholder]=\"placeholder() || patternPlaceholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (!readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onPickerShow($event)\"\r\n >\r\n <lat-icon name=\"calendar-week\" />\r\n </lat-button>\r\n </div>\r\n}\r\n\r\n\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
195
194
  }
196
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxDateComponent, decorators: [{
197
196
  type: Component,
198
197
  args: [{ imports: [ButtonComponent, IconComponent], exportAs: 'latTextBox', selector: 'lat-textbox[type="date"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
199
198
  {
200
- provide: HTMLInputDirective,
199
+ provide: HTMLFormControl,
201
200
  useExisting: forwardRef(() => TextBoxDateComponent),
202
201
  },
203
- ], template: "<input #htmlInputPicker type=\"date\" aria-hidden=\"true\" (change)=\"onPickerChange()\"/>\r\n\r\n<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.placeholder]=\"placeholder() || patternPlaceholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (!readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onPickerShow($event)\"\r\n >\r\n <lat-icon name=\"calendar-week\" />\r\n </lat-button>\r\n </div>\r\n}\r\n\r\n\r\n" }]
202
+ ], template: "<input #htmlInputPicker type=\"date\" aria-hidden=\"true\" (change)=\"onPickerChange()\"/>\r\n\r\n<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"textbox\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.placeholder]=\"placeholder() || patternPlaceholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (!readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onPickerShow($event)\"\r\n >\r\n <lat-icon name=\"calendar-week\" />\r\n </lat-button>\r\n </div>\r\n}\r\n\r\n\r\n" }]
204
203
  }], ctorParameters: () => [], propDecorators: { max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], picker: [{ type: i0.ViewChild, args: ['htmlInputPicker', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
205
204
 
206
- class TextBoxNumberComponent extends HTMLTextBoxDirective {
205
+ class TextBoxNumberComponent extends TextBoxDirective {
207
206
  max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: numberAttribute });
208
207
  min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: numberAttribute });
209
208
  step = input(undefined, { ...(ngDevMode ? { debugName: "step" } : {}), transform: numberAttribute });
@@ -330,24 +329,24 @@ class TextBoxNumberComponent extends HTMLTextBoxDirective {
330
329
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
331
330
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: TextBoxNumberComponent, isStandalone: true, selector: "lat-textbox[type=\"number\"]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, decimalZeroPadding: { classPropertyName: "decimalZeroPadding", publicName: "decimalZeroPadding", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
332
331
  {
333
- provide: HTMLInputDirective,
332
+ provide: HTMLFormControl,
334
333
  useExisting: forwardRef(() => TextBoxNumberComponent),
335
334
  },
336
- ], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onValueSpined(1)\"\r\n >\r\n <lat-icon name=\"chevron-up\" />\r\n </lat-button>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onValueSpined(-1)\"\r\n >\r\n <lat-icon name=\"chevron-down\" />\r\n </lat-button>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button, a[latButton],button[latButton]", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
335
+ ], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onValueSpined(1)\"\r\n >\r\n <lat-icon name=\"chevron-up\" />\r\n </lat-button>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onValueSpined(-1)\"\r\n >\r\n <lat-icon name=\"chevron-down\" />\r\n </lat-button>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
337
336
  }
338
337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: TextBoxNumberComponent, decorators: [{
339
338
  type: Component,
340
339
  args: [{ imports: [ButtonComponent, IconComponent], exportAs: 'latTextBox', selector: 'lat-textbox[type="number"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
341
340
  {
342
- provide: HTMLInputDirective,
341
+ provide: HTMLFormControl,
343
342
  useExisting: forwardRef(() => TextBoxNumberComponent),
344
343
  },
345
- ], template: "<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onValueSpined(1)\"\r\n >\r\n <lat-icon name=\"chevron-up\" />\r\n </lat-button>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || undefined\"\r\n (click)=\"onValueSpined(-1)\"\r\n >\r\n <lat-icon name=\"chevron-down\" />\r\n </lat-button>\r\n </div>\r\n}\r\n" }]
344
+ ], template: "<input\r\n #htmlInputElement\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"computedId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || void 0\"\r\n [attr.readonly]=\"readonly() || void 0\"\r\n [attr.required]=\"required() || void 0\"\r\n [attr.autofocus]=\"autofocus()\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || void 0\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || void 0\"\r\n [attr.aria-readonly]=\"readonly() || void 0\"\r\n [attr.aria-required]=\"required() || void 0\"\r\n [attr.aria-labelledby]=\"labelledby ? labelledby() : void 0\"\r\n (blur)=\"onBlurEvent()\"\r\n (focus)=\"onFocusEvent()\"\r\n (input)=\"onValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <div>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onValueSpined(1)\"\r\n >\r\n <lat-icon name=\"chevron-up\" />\r\n </lat-button>\r\n <lat-button\r\n size=\"inherit\"\r\n variant=\"inherit\"\r\n tabindex=\"-1\"\r\n [disabled]=\"disabled() || void 0\"\r\n (click)=\"onValueSpined(-1)\"\r\n >\r\n <lat-icon name=\"chevron-down\" />\r\n </lat-button>\r\n </div>\r\n}\r\n" }]
346
345
  }], ctorParameters: () => [], propDecorators: { max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], decimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimals", required: false }] }], decimalSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimalSeparator", required: false }] }], decimalZeroPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimalZeroPadding", required: false }] }], thousandSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "thousandSeparator", required: false }] }] } });
347
346
 
348
347
  /**
349
348
  * Generated bundle index. Do not edit.
350
349
  */
351
350
 
352
- export { HTMLTextBoxDirective, TextBoxComponent, TextBoxDateComponent, TextBoxNumberComponent };
351
+ export { TextBoxComponent, TextBoxDateComponent, TextBoxDirective, TextBoxNumberComponent };
353
352
  //# sourceMappingURL=latitude-ui-widgets-textbox.mjs.map