@ngil/form-inputs 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/esm2022/index.mjs +11 -0
- package/esm2022/lib/components/input/input.component.mjs +55 -0
- package/esm2022/lib/components/overlay/overlay-toggle.directive.mjs +57 -0
- package/esm2022/lib/components/overlay/overlay.component.mjs +106 -0
- package/esm2022/lib/components/select/select.component.mjs +69 -0
- package/esm2022/lib/components/select-options/select-options.component.mjs +58 -0
- package/esm2022/lib/components/textarea/textarea.component.mjs +45 -0
- package/esm2022/lib/components/time-picker/time-picker.component.mjs +65 -0
- package/esm2022/lib/components/time-picker/time-picker.directive.mjs +114 -0
- package/esm2022/lib/components/time-picker/time-picker.model.mjs +2 -0
- package/esm2022/lib/components/time-picker-overlay/picker-toggle.mjs +24 -0
- package/esm2022/lib/components/time-picker-overlay/time-picker-overlay.component.mjs +114 -0
- package/esm2022/lib/directives/number-rotation.directive.mjs +102 -0
- package/esm2022/lib/ngil-ui-form.module.mjs +68 -0
- package/esm2022/ngil-form-inputs.mjs +5 -0
- package/fesm2022/ngil-form-inputs.mjs +813 -0
- package/fesm2022/ngil-form-inputs.mjs.map +1 -0
- package/index.d.ts +10 -0
- package/lib/components/input/input.component.d.ts +14 -0
- package/lib/components/overlay/overlay-toggle.directive.d.ts +16 -0
- package/lib/components/overlay/overlay.component.d.ts +22 -0
- package/lib/components/select/select.component.d.ts +16 -0
- package/lib/components/select-options/select-options.component.d.ts +17 -0
- package/lib/components/textarea/textarea.component.d.ts +12 -0
- package/lib/components/time-picker/time-picker.component.d.ts +19 -0
- package/lib/components/time-picker/time-picker.directive.d.ts +28 -0
- package/lib/components/time-picker/time-picker.model.d.ts +5 -0
- package/lib/components/time-picker-overlay/picker-toggle.d.ts +8 -0
- package/lib/components/time-picker-overlay/time-picker-overlay.component.d.ts +26 -0
- package/lib/directives/number-rotation.directive.d.ts +26 -0
- package/lib/ngil-ui-form.module.d.ts +20 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngil-form-inputs.mjs","sources":["../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/overlay/overlay.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/overlay/overlay.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/overlay/overlay-toggle.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/directives/number-rotation.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/time-picker-overlay.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/ngil-ui-form.module.ts","../../../../../../libs/ngil/ui/form-inputs/src/ngil-form-inputs.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ngil-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilInputComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NgilInputComponent extends AbstractInputComponent<string | number> implements AfterViewInit {\r\n @Input() type = 'text';\r\n @Output() changed = new EventEmitter<string | number>();\r\n\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string | number): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string | number): void {\r\n if (this.type === 'number') {\r\n value = +value;\r\n }\r\n this.changed.emit(value);\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"model$ | async as model\">\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n\r\n <div class=\"ngil-input__field\">\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n</ng-container>\r\n","import {\r\n FlexibleConnectedPositionStrategy,\r\n GlobalPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { DomPortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-overlay',\r\n templateUrl: './overlay.component.html',\r\n styleUrls: ['./overlay.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgilOverlayComponent implements OnDestroy {\r\n @ViewChild('contentWrapper') el?: ElementRef;\r\n @Input() overwriteConfig: Partial<OverlayConfig> = {};\r\n\r\n private readonly destroy$ = new Subject<void>();\r\n private readonly maxHeight = 500;\r\n private overlayRef?: OverlayRef;\r\n\r\n origin?: ElementRef<HTMLInputElement>;\r\n isOpened = false;\r\n\r\n constructor(private readonly overlay: Overlay) {}\r\n\r\n open(): void {\r\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\r\n\r\n const portal = new DomPortal(this.el);\r\n this.overlayRef.attach(portal);\r\n\r\n this.overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n\r\n this.isOpened = true;\r\n }\r\n\r\n private getOverlayConfig(): OverlayConfig {\r\n return {\r\n positionStrategy: this.getStrategy(),\r\n hasBackdrop: true,\r\n backdropClass: this.origin ? 'cdk-overlay-transparent-backdrop' : 'cdk-overlay-dark-backdrop',\r\n panelClass: ['ngil-overlay-panel'],\r\n maxHeight: this.maxHeight,\r\n minWidth: this.origin?.nativeElement.offsetWidth,\r\n ...this.overwriteConfig\r\n };\r\n }\r\n\r\n private getStrategy(): GlobalPositionStrategy | FlexibleConnectedPositionStrategy {\r\n if (!this.origin) {\r\n return this.overlay.position().global().centerHorizontally().centerVertically();\r\n }\r\n\r\n const primaryX = 'start';\r\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\r\n const primaryY = 'top';\r\n const secondaryY = 'bottom';\r\n\r\n return this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.origin)\r\n .withPositions([\r\n {\r\n originX: primaryX,\r\n originY: secondaryY,\r\n overlayX: primaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: primaryX,\r\n originY: primaryY,\r\n overlayX: primaryX,\r\n overlayY: secondaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: secondaryY,\r\n overlayX: secondaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: primaryY,\r\n overlayX: secondaryX,\r\n overlayY: secondaryY\r\n }\r\n ]);\r\n }\r\n\r\n close(): void {\r\n this.destroy$.next();\r\n this.overlayRef?.dispose();\r\n this.overlayRef = undefined;\r\n this.isOpened = false;\r\n }\r\n\r\n toggle(): void {\r\n if (this.isOpened) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"ngil-overlay-content\" #contentWrapper>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-select-options',\r\n templateUrl: './select-options.component.html',\r\n styleUrls: ['./select-options.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NgilSelectOptionsComponent<T> implements OnDestroy {\r\n @Input() selectedItems: T | T[] | null = null;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n @Input() multiple = false;\r\n @Input() display = false;\r\n\r\n @Output() itemSelected = new EventEmitter<T | T[]>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n onItemSelected(item: T) {\r\n let newSelection: T | T[];\r\n\r\n if (Array.isArray(this.selectedItems)) {\r\n newSelection = this.selectedItems.includes(item)\r\n ? this.selectedItems.filter(selectedItem => selectedItem !== item)\r\n : [...this.selectedItems, item];\r\n } else if (this.multiple && this.selectedItems) {\r\n newSelection = [this.selectedItems, item];\r\n } else {\r\n newSelection = item;\r\n }\r\n\r\n this.itemSelected.emit(newSelection);\r\n }\r\n\r\n isSelected(item: T) {\r\n if (Array.isArray(this.selectedItems)) {\r\n return this.selectedItems.includes(item);\r\n }\r\n\r\n return item === this.selectedItems;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"ngil-dropdown\" *ngIf=\"display\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { NgilOverlayComponent } from './overlay.component';\r\n\r\n@Directive({\r\n selector: '[ngilOverlayToggle]',\r\n exportAs: 'ngilOverlayToggle'\r\n})\r\nexport class OverlayToggleDirective implements OnInit {\r\n @Input() set ngilOverlayToggle(overlay: NgilOverlayComponent) {\r\n this.overlay = overlay;\r\n }\r\n private overlay: NgilOverlayComponent | undefined;\r\n\r\n @Input() set isOverlayOrigin(isOrigin: boolean) {\r\n this.isOrigin = isOrigin;\r\n this.setOverlayOrigin();\r\n }\r\n private isOrigin = true;\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>) {}\r\n\r\n ngOnInit(): void {\r\n this.setOverlayOrigin();\r\n }\r\n\r\n private setOverlayOrigin(): void {\r\n if (this.isOrigin && this.overlay) {\r\n this.overlay.origin = this.elementRef;\r\n } else if (this.overlay) {\r\n this.overlay.origin = undefined;\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event']) onClick = (event: Event): void => {\r\n if (!this.overlay) {\r\n throw new Error(`The overlay is not defined. The overlay component should be provided in the directive input\r\n\r\n <my-element [ngilOverlayToggle]=\"overlay\"></my-element>\r\n <ngil-overlay #overlay>...</ngil-overlay>\r\n `);\r\n }\r\n\r\n if (!this.overlay.isOpened) {\r\n this.overlay.open();\r\n }\r\n\r\n event.stopPropagation();\r\n };\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, ViewChild, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { NgilOverlayComponent } from '../overlay/overlay.component';\r\n\r\n@Component({\r\n selector: 'ngil-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {\r\n @ViewChild(NgilOverlayComponent) overlay?: NgilOverlayComponent;\r\n @Input() multiple = false;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n\r\n value: T | T[] | null = null;\r\n\r\n get displayValue() {\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(item => (this.displayKey ? item[this.displayKey] : item)).join(',');\r\n }\r\n\r\n if (this.value && this.displayKey) {\r\n return this.value[this.displayKey];\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n writeValue(value: T): void {\r\n this.value = value;\r\n }\r\n\r\n onItemSelected(item: T | T[]) {\r\n this.value = item;\r\n\r\n if (!this.multiple) {\r\n this.overlay?.close();\r\n }\r\n\r\n if (this.onChange) {\r\n this.onChange(this.value);\r\n }\r\n }\r\n\r\n isArray(item: T | T[]): item is T[] {\r\n return Array.isArray(item);\r\n }\r\n}\r\n","<ng-container *ngIf=\"model$ | async as model\">\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n\r\n <ngil-overlay #overlay>\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n</ng-container>\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilTextareaComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgilTextareaComponent extends AbstractInputComponent<string> implements AfterViewInit {\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string): void {\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"model$ | async as model\">\r\n <div class=\"ngil-textarea\" [class.ngil-textarea--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-textarea__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n\r\n <div class=\"ngil-textarea__field\">\r\n <textarea\r\n class=\"ngil-textarea__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n >\r\n </textarea>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n\r\n <small class=\"ngil-textarea__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\r\nimport { NgilTimePickerOverlayComponent } from './time-picker-overlay.component';\r\n\r\n@Component({\r\n selector: 'ngil-picker-toggle',\r\n templateUrl: 'picker-toggle.html',\r\n styleUrls: ['picker-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PickerToggleComponent {\r\n @Input() picker: NgilTimePickerOverlayComponent | undefined;\r\n\r\n @HostListener('click', ['$event']) onClick = (event: Event) => {\r\n if (!this.picker?.isOpen) {\r\n this.picker?.open();\r\n }\r\n event.stopPropagation();\r\n };\r\n}\r\n","<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[ngilNumberRotation]'\r\n})\r\nexport class NumberRotationDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() min = 0;\r\n @Input() max = 10;\r\n @Input() buttonUp?: HTMLElement;\r\n @Input() buttonDown?: HTMLElement;\r\n\r\n get length(): number {\r\n return this.max.toString().length;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n this.onKeyDownEvent(event);\r\n };\r\n\r\n @HostListener('input', ['$event'])\r\n onInput = (event: InputEvent): void => {\r\n let value = (event.target as HTMLInputElement).value;\r\n if (+value > this.max) {\r\n value = value.slice(this.length);\r\n }\r\n this.setValue(+value);\r\n };\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>, private readonly ngControl: NgControl) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.value = this.elementRef.nativeElement.value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.buttonUp?.addEventListener('click', this.onUp);\r\n this.buttonDown?.addEventListener('click', this.onDown);\r\n }\r\n\r\n private onKeyDownEvent(event: KeyboardEvent): void {\r\n if (!this.isKeyValid(event.key)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.onUp();\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.onDown();\r\n }\r\n }\r\n\r\n private isKeyValid(key: string): boolean {\r\n if (key.length !== 1 || !isNaN(+key)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private onUp = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value + 1);\r\n };\r\n\r\n private onDown = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value - 1);\r\n };\r\n\r\n private setValue(value: number): void {\r\n if (value < this.min) {\r\n this.setInputValue(this.max);\r\n } else if (value > this.max) {\r\n this.setInputValue(this.min);\r\n } else {\r\n this.setInputValue(value);\r\n }\r\n }\r\n\r\n private setInputValue(value: number) {\r\n this.ngControl.control?.setValue(value);\r\n this.elementRef.nativeElement.value = value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.buttonUp?.removeEventListener('click', this.onUp);\r\n this.buttonDown?.removeEventListener('click', this.onDown);\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: NgilTimePickerComponent,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgilTimePickerComponent extends AbstractInputComponent<TimePickerValue> implements AfterViewInit {\r\n private defaultValue: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n\r\n value = '';\r\n formGroup = new FormGroup({\r\n hour: new FormControl<number>(this.defaultValue.hour, { nonNullable: true }),\r\n minute: new FormControl<number>(this.defaultValue.minute, { nonNullable: true }),\r\n second: new FormControl<number>(this.defaultValue.second, { nonNullable: true })\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n this.listenValueChanges();\r\n }\r\n\r\n protected listenValueChanges(): void {\r\n this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n if (this.onChange) {\r\n const value = this.formGroup.getRawValue();\r\n this.onChange({\r\n hour: value.hour ?? this.defaultValue.hour,\r\n minute: value.minute ?? this.defaultValue.minute,\r\n second: value.second ?? this.defaultValue.second\r\n });\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: TimePickerValue): void {\r\n if (value) {\r\n this.formGroup.setValue(\r\n {\r\n ...this.defaultValue,\r\n ...value\r\n },\r\n { emitEvent: false }\r\n );\r\n } else {\r\n this.formGroup.reset(this.defaultValue, { emitEvent: false });\r\n }\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\" class=\"ngil-time-picker\">\r\n <div class=\"ngil-time-picker__field\">\r\n <button #hourButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"hour\"\r\n [buttonUp]=\"hourButtonUp\"\r\n [buttonDown]=\"hourButtonDown\"\r\n [max]=\"23\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #hourButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #minuteButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"minute\"\r\n [buttonUp]=\"minuteButtonUp\"\r\n [buttonDown]=\"minuteButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #minuteButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #secondButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"second\"\r\n [buttonUp]=\"secondButtonUp\"\r\n [buttonDown]=\"secondButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #secondButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<ng-template #arrowUp>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 75 50, 25 90, 75\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #arrowDown>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 25 50, 75 90, 25\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Component, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilTimePickerComponent } from '../time-picker/time-picker.component';\r\nimport { TimePickerValue } from '../time-picker/time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker-overlay',\r\n template: ''\r\n})\r\nexport class NgilTimePickerOverlayComponent implements OnDestroy {\r\n origin?: ElementRef<HTMLInputElement>;\r\n valueChanges$ = new Subject<TimePickerValue>();\r\n isOpen = false;\r\n\r\n protected value: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n protected readonly destroy$ = new Subject<void>();\r\n protected contentComponent = NgilTimePickerComponent;\r\n protected componentInstance: undefined | NgilTimePickerComponent;\r\n private overlayRef?: OverlayRef;\r\n\r\n constructor(private readonly overlay: Overlay) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n open() {\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.getStrategy(),\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n const portal = new ComponentPortal(this.contentComponent);\r\n const componentRef = this.overlayRef.attach(portal);\r\n this.componentInstance = componentRef.instance;\r\n this.componentInstance.writeValue(this.value);\r\n\r\n this.componentInstance.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n const value = this.componentInstance?.formGroup.getRawValue();\r\n this.valueChanges$.next({\r\n hour: value?.hour ?? 0,\r\n minute: value?.minute ?? 0,\r\n second: value?.second ?? 0\r\n });\r\n });\r\n\r\n this.overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n\r\n this.isOpen = true;\r\n }\r\n\r\n close(): void {\r\n this.destroyOverlay();\r\n }\r\n\r\n private destroyOverlay() {\r\n this.destroy$.next();\r\n this.componentInstance?.ngOnDestroy();\r\n this.overlayRef?.dispose();\r\n this.componentInstance = undefined;\r\n this.overlayRef = undefined;\r\n this.isOpen = false;\r\n }\r\n\r\n setValue(value: TimePickerValue): void {\r\n this.value = value;\r\n\r\n if (this.componentInstance) {\r\n this.componentInstance.writeValue(this.value);\r\n }\r\n }\r\n\r\n private getStrategy() {\r\n const primaryX = 'start';\r\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\r\n const primaryY = 'top';\r\n const secondaryY = 'bottom';\r\n\r\n if (!this.origin) {\r\n return undefined;\r\n }\r\n\r\n const strategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.origin)\r\n .withPositions([\r\n {\r\n originX: primaryX,\r\n originY: secondaryY,\r\n overlayX: primaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: primaryX,\r\n originY: primaryY,\r\n overlayX: primaryX,\r\n overlayY: secondaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: secondaryY,\r\n overlayX: secondaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: primaryY,\r\n overlayX: secondaryX,\r\n overlayY: secondaryY\r\n }\r\n ]);\r\n\r\n return strategy;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output\r\n} from '@angular/core';\r\nimport { AbstractControl, NgControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilInputComponent } from '../input/input.component';\r\nimport { NgilTimePickerOverlayComponent } from '../time-picker-overlay/time-picker-overlay.component';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Directive({\r\n selector: '[ngilTimePicker]'\r\n})\r\nexport class TimePickerDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() picker?: NgilTimePickerOverlayComponent;\r\n\r\n @Output() changed = new EventEmitter<TimePickerValue>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n if (isNaN(+event.key) && event.key !== ':' && event.key.length === 1) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n @HostListener('input', ['$event']) onInput = (event: InputEvent): void => {\r\n const value = this.getTimePickerValue((event.target as HTMLInputElement).value);\r\n this.picker?.setValue({\r\n hour: +value.hour,\r\n minute: +value.minute || 0,\r\n second: +value.second || 0\r\n });\r\n };\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef<HTMLInputElement>,\r\n @Optional() private readonly inputComponent?: NgilInputComponent,\r\n @Optional() private readonly ngControl?: NgControl\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.ngControl?.control?.setValidators([this.timeValidator()]);\r\n }\r\n\r\n private timeValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = this.getTimePickerValue(control.value);\r\n if (this.itemHasError(value.hour, 23)) {\r\n return {\r\n invalidHour: true\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.minute, 59)) {\r\n return {\r\n invalidMinute: true\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.second, 59)) {\r\n return {\r\n invalidSecond: true\r\n };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private itemHasError(value: string, max: number, min = 0) {\r\n if (value && (value.length > 2 || +value > max || +value < min)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getTimePickerValue(value: string | null) {\r\n const split = value?.split(':');\r\n\r\n return {\r\n hour: split ? split[0] : '00',\r\n minute: split ? split[1] : '00',\r\n second: split ? split[2] : '00'\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.picker) {\r\n this.picker.origin = this.elementRef;\r\n this.picker.valueChanges$.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.setInputText(value);\r\n this.changed.emit(value);\r\n });\r\n }\r\n }\r\n\r\n private setInputText(value: TimePickerValue): void {\r\n const text = [this.getItemText(value.hour), this.getItemText(value.minute), this.getItemText(value.second)].join(\r\n ':'\r\n );\r\n this.inputComponent?.control.setValue(text);\r\n this.elementRef.nativeElement.value = text;\r\n this.ngControl?.control?.setValue(text);\r\n }\r\n\r\n private getItemText(value: number) {\r\n return value.toString().padStart(2, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgilInputComponent } from './components/input/input.component';\r\nimport { OverlayToggleDirective } from './components/overlay/overlay-toggle.directive';\r\nimport { NgilOverlayComponent } from './components/overlay/overlay.component';\r\nimport { NgilSelectOptionsComponent } from './components/select-options/select-options.component';\r\nimport { NgilSelectComponent } from './components/select/select.component';\r\nimport { NgilTextareaComponent } from './components/textarea/textarea.component';\r\nimport { PickerToggleComponent } from './components/time-picker-overlay/picker-toggle';\r\nimport { NgilTimePickerOverlayComponent } from './components/time-picker-overlay/time-picker-overlay.component';\r\nimport { NgilTimePickerComponent } from './components/time-picker/time-picker.component';\r\nimport { TimePickerDirective } from './components/time-picker/time-picker.directive';\r\nimport { NumberRotationDirective } from './directives/number-rotation.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ReactiveFormsModule, OverlayModule],\r\n declarations: [\r\n NgilInputComponent,\r\n NgilTimePickerComponent,\r\n NgilTimePickerOverlayComponent,\r\n PickerToggleComponent,\r\n NumberRotationDirective,\r\n TimePickerDirective,\r\n NgilSelectComponent,\r\n NgilTextareaComponent,\r\n NgilSelectOptionsComponent,\r\n NgilOverlayComponent,\r\n OverlayToggleDirective\r\n ],\r\n exports: [\r\n NgilInputComponent,\r\n NgilSelectComponent,\r\n NgilTextareaComponent,\r\n NgilTimePickerComponent,\r\n NgilTimePickerOverlayComponent,\r\n PickerToggleComponent,\r\n NumberRotationDirective,\r\n TimePickerDirective\r\n ]\r\n})\r\nexport class NgilUiFormModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i1","i2.NgilSelectOptionsComponent","i3.NgilOverlayComponent","i4.OverlayToggleDirective","i3.NumberRotationDirective","i1.NgilInputComponent"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './lib/components/input/input.component';
|
|
2
|
+
export * from './lib/components/select/select.component';
|
|
3
|
+
export * from './lib/components/textarea/textarea.component';
|
|
4
|
+
export * from './lib/components/time-picker-overlay/picker-toggle';
|
|
5
|
+
export * from './lib/components/time-picker-overlay/time-picker-overlay.component';
|
|
6
|
+
export * from './lib/components/time-picker/time-picker.component';
|
|
7
|
+
export * from './lib/components/time-picker/time-picker.directive';
|
|
8
|
+
export * from './lib/components/time-picker/time-picker.model';
|
|
9
|
+
export * from './lib/directives/number-rotation.directive';
|
|
10
|
+
export * from './lib/ngil-ui-form.module';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { AbstractInputComponent } from '@ngil/form-cva';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class NgilInputComponent extends AbstractInputComponent<string | number> implements AfterViewInit {
|
|
6
|
+
type: string;
|
|
7
|
+
changed: EventEmitter<string | number>;
|
|
8
|
+
control: FormControl<any>;
|
|
9
|
+
ngAfterViewInit(): void;
|
|
10
|
+
writeValue(value: string | number): void;
|
|
11
|
+
onChangeInput(value: string | number): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilInputComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilInputComponent, "ngil-input", never, { "type": { "alias": "type"; "required": false; }; }, { "changed": "changed"; }, never, ["[suffix]"], false, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
+
import { NgilOverlayComponent } from './overlay.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class OverlayToggleDirective implements OnInit {
|
|
5
|
+
private readonly elementRef;
|
|
6
|
+
set ngilOverlayToggle(overlay: NgilOverlayComponent);
|
|
7
|
+
private overlay;
|
|
8
|
+
set isOverlayOrigin(isOrigin: boolean);
|
|
9
|
+
private isOrigin;
|
|
10
|
+
constructor(elementRef: ElementRef<HTMLInputElement>);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
private setOverlayOrigin;
|
|
13
|
+
onClick: (event: Event) => void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OverlayToggleDirective, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OverlayToggleDirective, "[ngilOverlayToggle]", ["ngilOverlayToggle"], { "ngilOverlayToggle": { "alias": "ngilOverlayToggle"; "required": false; }; "isOverlayOrigin": { "alias": "isOverlayOrigin"; "required": false; }; }, {}, never, never, false, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
2
|
+
import { ElementRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgilOverlayComponent implements OnDestroy {
|
|
5
|
+
private readonly overlay;
|
|
6
|
+
el?: ElementRef;
|
|
7
|
+
overwriteConfig: Partial<OverlayConfig>;
|
|
8
|
+
private readonly destroy$;
|
|
9
|
+
private readonly maxHeight;
|
|
10
|
+
private overlayRef?;
|
|
11
|
+
origin?: ElementRef<HTMLInputElement>;
|
|
12
|
+
isOpened: boolean;
|
|
13
|
+
constructor(overlay: Overlay);
|
|
14
|
+
open(): void;
|
|
15
|
+
private getOverlayConfig;
|
|
16
|
+
private getStrategy;
|
|
17
|
+
close(): void;
|
|
18
|
+
toggle(): void;
|
|
19
|
+
ngOnDestroy(): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilOverlayComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilOverlayComponent, "ngil-overlay", never, { "overwriteConfig": { "alias": "overwriteConfig"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractInputComponent } from '@ngil/form-cva';
|
|
2
|
+
import { NgilOverlayComponent } from '../overlay/overlay.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {
|
|
5
|
+
overlay?: NgilOverlayComponent;
|
|
6
|
+
multiple: boolean;
|
|
7
|
+
items: T[];
|
|
8
|
+
displayKey?: keyof T;
|
|
9
|
+
value: T | T[] | null;
|
|
10
|
+
get displayValue(): string | T | NonNullable<T>[keyof T] | null;
|
|
11
|
+
writeValue(value: T): void;
|
|
12
|
+
onItemSelected(item: T | T[]): void;
|
|
13
|
+
isArray(item: T | T[]): item is T[];
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilSelectComponent<any>, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectComponent<any>, "ngil-select", never, { "multiple": { "alias": "multiple"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; }, {}, never, ["[suffix]"], false, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgilSelectOptionsComponent<T> implements OnDestroy {
|
|
5
|
+
selectedItems: T | T[] | null;
|
|
6
|
+
items: T[];
|
|
7
|
+
displayKey?: keyof T;
|
|
8
|
+
multiple: boolean;
|
|
9
|
+
display: boolean;
|
|
10
|
+
itemSelected: EventEmitter<T | T[]>;
|
|
11
|
+
protected readonly destroy$: Subject<void>;
|
|
12
|
+
onItemSelected(item: T): void;
|
|
13
|
+
isSelected(item: T): boolean;
|
|
14
|
+
ngOnDestroy(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilSelectOptionsComponent<any>, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectOptionsComponent<any>, "ngil-select-options", never, { "selectedItems": { "alias": "selectedItems"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, { "itemSelected": "itemSelected"; }, never, never, false, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AfterViewInit } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { AbstractInputComponent } from '@ngil/form-cva';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class NgilTextareaComponent extends AbstractInputComponent<string> implements AfterViewInit {
|
|
6
|
+
control: FormControl<any>;
|
|
7
|
+
ngAfterViewInit(): void;
|
|
8
|
+
writeValue(value: string): void;
|
|
9
|
+
onChangeInput(value: string): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilTextareaComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilTextareaComponent, "ngil-textarea", never, {}, {}, never, ["[suffix]"], false, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AfterViewInit } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { AbstractInputComponent } from '@ngil/form-cva';
|
|
4
|
+
import { TimePickerValue } from './time-picker.model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class NgilTimePickerComponent extends AbstractInputComponent<TimePickerValue> implements AfterViewInit {
|
|
7
|
+
private defaultValue;
|
|
8
|
+
value: string;
|
|
9
|
+
formGroup: FormGroup<{
|
|
10
|
+
hour: FormControl<number>;
|
|
11
|
+
minute: FormControl<number>;
|
|
12
|
+
second: FormControl<number>;
|
|
13
|
+
}>;
|
|
14
|
+
ngAfterViewInit(): void;
|
|
15
|
+
protected listenValueChanges(): void;
|
|
16
|
+
writeValue(value: TimePickerValue): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilTimePickerComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilTimePickerComponent, "ngil-time-picker", never, {}, {}, never, never, false, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { NgilInputComponent } from '../input/input.component';
|
|
5
|
+
import { NgilTimePickerOverlayComponent } from '../time-picker-overlay/time-picker-overlay.component';
|
|
6
|
+
import { TimePickerValue } from './time-picker.model';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class TimePickerDirective implements AfterViewInit, OnDestroy, OnInit {
|
|
9
|
+
private readonly elementRef;
|
|
10
|
+
private readonly inputComponent?;
|
|
11
|
+
private readonly ngControl?;
|
|
12
|
+
picker?: NgilTimePickerOverlayComponent;
|
|
13
|
+
changed: EventEmitter<TimePickerValue>;
|
|
14
|
+
protected readonly destroy$: Subject<void>;
|
|
15
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
16
|
+
onInput: (event: InputEvent) => void;
|
|
17
|
+
constructor(elementRef: ElementRef<HTMLInputElement>, inputComponent?: NgilInputComponent | undefined, ngControl?: NgControl | undefined);
|
|
18
|
+
ngOnInit(): void;
|
|
19
|
+
private timeValidator;
|
|
20
|
+
private itemHasError;
|
|
21
|
+
private getTimePickerValue;
|
|
22
|
+
ngAfterViewInit(): void;
|
|
23
|
+
private setInputText;
|
|
24
|
+
private getItemText;
|
|
25
|
+
ngOnDestroy(): void;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerDirective, [null, { optional: true; }, { optional: true; }]>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TimePickerDirective, "[ngilTimePicker]", never, { "picker": { "alias": "picker"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NgilTimePickerOverlayComponent } from './time-picker-overlay.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class PickerToggleComponent {
|
|
4
|
+
picker: NgilTimePickerOverlayComponent | undefined;
|
|
5
|
+
onClick: (event: Event) => void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PickerToggleComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PickerToggleComponent, "ngil-picker-toggle", never, { "picker": { "alias": "picker"; "required": false; }; }, {}, never, never, false, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ElementRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { NgilTimePickerComponent } from '../time-picker/time-picker.component';
|
|
5
|
+
import { TimePickerValue } from '../time-picker/time-picker.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class NgilTimePickerOverlayComponent implements OnDestroy {
|
|
8
|
+
private readonly overlay;
|
|
9
|
+
origin?: ElementRef<HTMLInputElement>;
|
|
10
|
+
valueChanges$: Subject<TimePickerValue>;
|
|
11
|
+
isOpen: boolean;
|
|
12
|
+
protected value: TimePickerValue;
|
|
13
|
+
protected readonly destroy$: Subject<void>;
|
|
14
|
+
protected contentComponent: typeof NgilTimePickerComponent;
|
|
15
|
+
protected componentInstance: undefined | NgilTimePickerComponent;
|
|
16
|
+
private overlayRef?;
|
|
17
|
+
constructor(overlay: Overlay);
|
|
18
|
+
ngOnDestroy(): void;
|
|
19
|
+
open(): void;
|
|
20
|
+
close(): void;
|
|
21
|
+
private destroyOverlay;
|
|
22
|
+
setValue(value: TimePickerValue): void;
|
|
23
|
+
private getStrategy;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilTimePickerOverlayComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgilTimePickerOverlayComponent, "ngil-time-picker-overlay", never, {}, {}, never, never, false, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NumberRotationDirective implements AfterViewInit, OnDestroy, OnInit {
|
|
5
|
+
private readonly elementRef;
|
|
6
|
+
private readonly ngControl;
|
|
7
|
+
min: number;
|
|
8
|
+
max: number;
|
|
9
|
+
buttonUp?: HTMLElement;
|
|
10
|
+
buttonDown?: HTMLElement;
|
|
11
|
+
get length(): number;
|
|
12
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
13
|
+
onInput: (event: InputEvent) => void;
|
|
14
|
+
constructor(elementRef: ElementRef<HTMLInputElement>, ngControl: NgControl);
|
|
15
|
+
ngOnInit(): void;
|
|
16
|
+
ngAfterViewInit(): void;
|
|
17
|
+
private onKeyDownEvent;
|
|
18
|
+
private isKeyValid;
|
|
19
|
+
private onUp;
|
|
20
|
+
private onDown;
|
|
21
|
+
private setValue;
|
|
22
|
+
private setInputValue;
|
|
23
|
+
ngOnDestroy(): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NumberRotationDirective, never>;
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NumberRotationDirective, "input[ngilNumberRotation]", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "buttonUp": { "alias": "buttonUp"; "required": false; }; "buttonDown": { "alias": "buttonDown"; "required": false; }; }, {}, never, never, false, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./components/input/input.component";
|
|
3
|
+
import * as i2 from "./components/time-picker/time-picker.component";
|
|
4
|
+
import * as i3 from "./components/time-picker-overlay/time-picker-overlay.component";
|
|
5
|
+
import * as i4 from "./components/time-picker-overlay/picker-toggle";
|
|
6
|
+
import * as i5 from "./directives/number-rotation.directive";
|
|
7
|
+
import * as i6 from "./components/time-picker/time-picker.directive";
|
|
8
|
+
import * as i7 from "./components/select/select.component";
|
|
9
|
+
import * as i8 from "./components/textarea/textarea.component";
|
|
10
|
+
import * as i9 from "./components/select-options/select-options.component";
|
|
11
|
+
import * as i10 from "./components/overlay/overlay.component";
|
|
12
|
+
import * as i11 from "./components/overlay/overlay-toggle.directive";
|
|
13
|
+
import * as i12 from "@angular/common";
|
|
14
|
+
import * as i13 from "@angular/forms";
|
|
15
|
+
import * as i14 from "@angular/cdk/overlay";
|
|
16
|
+
export declare class NgilUiFormModule {
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgilUiFormModule, never>;
|
|
18
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgilUiFormModule, [typeof i1.NgilInputComponent, typeof i2.NgilTimePickerComponent, typeof i3.NgilTimePickerOverlayComponent, typeof i4.PickerToggleComponent, typeof i5.NumberRotationDirective, typeof i6.TimePickerDirective, typeof i7.NgilSelectComponent, typeof i8.NgilTextareaComponent, typeof i9.NgilSelectOptionsComponent, typeof i10.NgilOverlayComponent, typeof i11.OverlayToggleDirective], [typeof i12.CommonModule, typeof i13.ReactiveFormsModule, typeof i14.OverlayModule], [typeof i1.NgilInputComponent, typeof i7.NgilSelectComponent, typeof i8.NgilTextareaComponent, typeof i2.NgilTimePickerComponent, typeof i3.NgilTimePickerOverlayComponent, typeof i4.PickerToggleComponent, typeof i5.NumberRotationDirective, typeof i6.TimePickerDirective]>;
|
|
19
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgilUiFormModule>;
|
|
20
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ngil/form-inputs",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"tslib": "^2.3.0"
|
|
6
|
+
},
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git@github.com:allanartuso/ngdux.git",
|
|
10
|
+
"directory": "/libs/ngil/ui/form"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngil/ui/form#readme",
|
|
13
|
+
"peerDependencies": {
|
|
14
|
+
"@angular/core": "^17.0.0",
|
|
15
|
+
"@angular/forms": "^17.0.0",
|
|
16
|
+
"@angular/cdk": "^17.0.0"
|
|
17
|
+
},
|
|
18
|
+
"module": "fesm2022/ngil-form-inputs.mjs",
|
|
19
|
+
"typings": "index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
"./package.json": {
|
|
22
|
+
"default": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./index.d.ts",
|
|
26
|
+
"esm2022": "./esm2022/ngil-form-inputs.mjs",
|
|
27
|
+
"esm": "./esm2022/ngil-form-inputs.mjs",
|
|
28
|
+
"default": "./fesm2022/ngil-form-inputs.mjs"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"sideEffects": false
|
|
32
|
+
}
|