@updevs/components 1.0.0-alpha.18 → 1.0.0-alpha.19

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 (73) hide show
  1. package/esm2022/dropdown/dropdown.component.mjs +1 -1
  2. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +18 -3
  3. package/esm2022/form/form.component.mjs +26 -6
  4. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  5. package/esm2022/form/models/form-config.mjs +2 -0
  6. package/esm2022/form/models/public-api.mjs +9 -1
  7. package/esm2022/form/upd-form.module.mjs +8 -4
  8. package/esm2022/form-controls/abstractions/base-control.mjs +8 -2
  9. package/esm2022/form-controls/checkbox/checkbox.component.mjs +2 -4
  10. package/esm2022/form-controls/date-picker/date-picker.component.mjs +1 -1
  11. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  12. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  13. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  14. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  15. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  16. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  17. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +47 -0
  18. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  19. package/esm2022/form-controls/input/input.component.mjs +5 -15
  20. package/esm2022/form-controls/radio/radio.component.mjs +3 -8
  21. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +1 -1
  22. package/esm2022/form-controls/select/components/single/select.component.mjs +1 -1
  23. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +2 -8
  24. package/esm2022/form-controls/textarea/textarea.component.mjs +2 -4
  25. package/esm2022/form-controls/time-picker/time-picker.component.mjs +1 -1
  26. package/esm2022/list/list.component.mjs +1 -1
  27. package/esm2022/table/components/filter-row/filter-row.component.mjs +1 -1
  28. package/esm2022/table/components/search-section/search-section.component.mjs +1 -1
  29. package/esm2022/table/table.component.mjs +1 -1
  30. package/fesm2022/updevs-components-dropdown.mjs +1 -1
  31. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  32. package/fesm2022/updevs-components-form-controls-abstractions.mjs +7 -1
  33. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -1
  34. package/fesm2022/updevs-components-form-controls-checkbox.mjs +1 -3
  35. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  36. package/fesm2022/updevs-components-form-controls-date-picker.mjs +1 -1
  37. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -1
  38. package/fesm2022/updevs-components-form-controls-file-upload.mjs +263 -0
  39. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  40. package/fesm2022/updevs-components-form-controls-input.mjs +4 -14
  41. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  42. package/fesm2022/updevs-components-form-controls-radio.mjs +2 -7
  43. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  44. package/fesm2022/updevs-components-form-controls-select.mjs +3 -9
  45. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  46. package/fesm2022/updevs-components-form-controls-textarea.mjs +1 -3
  47. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  48. package/fesm2022/updevs-components-form-controls-time-picker.mjs +1 -1
  49. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
  50. package/fesm2022/updevs-components-form.mjs +46 -8
  51. package/fesm2022/updevs-components-form.mjs.map +1 -1
  52. package/fesm2022/updevs-components-list.mjs +1 -1
  53. package/fesm2022/updevs-components-list.mjs.map +1 -1
  54. package/fesm2022/updevs-components-table.mjs +3 -3
  55. package/fesm2022/updevs-components-table.mjs.map +1 -1
  56. package/form/components/dynamic-field/dynamic-field.component.d.ts +5 -0
  57. package/form/form.component.d.ts +3 -3
  58. package/form/models/file-upload-field.model.d.ts +16 -0
  59. package/form/models/form-config.d.ts +2 -0
  60. package/form/models/public-api.d.ts +8 -0
  61. package/form/upd-form.module.d.ts +2 -1
  62. package/form-controls/abstractions/base-control.d.ts +15 -10
  63. package/form-controls/checkbox/checkbox.component.d.ts +1 -3
  64. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  65. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  66. package/form-controls/file-upload/index.d.ts +1 -0
  67. package/form-controls/file-upload/public-api.d.ts +3 -0
  68. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  69. package/form-controls/input/input.component.d.ts +2 -6
  70. package/form-controls/radio/radio.component.d.ts +1 -3
  71. package/form-controls/select/models/abstractions/base-select.component.d.ts +2 -8
  72. package/form-controls/textarea/textarea.component.d.ts +1 -3
  73. package/package.json +27 -20
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form-controls-select.mjs","sources":["../../../../libs/components/form-controls/select/src/models/defaults.ts","../../../../libs/components/form-controls/select/src/models/abstractions/base-select.component.ts","../../../../libs/components/form-controls/select/src/components/single/select.component.ts","../../../../libs/components/form-controls/select/src/components/single/select.component.html","../../../../libs/components/form-controls/select/src/components/multiple/select-multiple.component.ts","../../../../libs/components/form-controls/select/src/components/multiple/select-multiple.component.html","../../../../libs/components/form-controls/select/src/upd-select.module.ts","../../../../libs/components/form-controls/select/src/updevs-components-form-controls-select.ts"],"sourcesContent":["import { HorizontalVerticalType } from '@updevs/components';\n\nexport class Defaults {\n static dropdownMaxHeight = 300;\n static typeaheadDebounce = 200;\n static shouldAutoSearch = true;\n static shouldCloseOnOutsideClick = true;\n static layout: HorizontalVerticalType = 'vertical';\n}\n","import {\n Directive,\n HostBinding,\n ElementRef,\n OnInit,\n Output,\n EventEmitter,\n inject,\n NgZone,\n Renderer2,\n RendererStyleFlags2,\n input,\n viewChild,\n computed, effect\n} from '@angular/core';\nimport { DomEventsService, PositioningService, ComputePositionResult } from '@updevs/sdk/layout';\nimport { Tools } from '@updevs/sdk/core';\nimport { BaseSearchStore, ObservableSearchType } from '@updevs/sdk/stores';\nimport { HorizontalVerticalType, RowColumnSize, ColumnSizeHelper } from '@updevs/components';\nimport { ListItem } from '@updevs/components/list';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\nimport { tap, debounceTime, Subject } from 'rxjs';\n\nimport { SelectItem } from '../select-item';\nimport { Defaults } from '../defaults';\n\nimport Utils = Tools.Utils;\n\n@Directive()\nexport abstract class BaseSelectComponent extends BaseControl implements OnInit {\n @HostBinding('class') get wrapperClasses() {\n return this.hostWrapperClasses();\n }\n @Output() readonly dropdownOpenStatusChange = new EventEmitter<boolean>();\n\n componentBox = viewChild('componentBox', { read: ElementRef });\n searchBox = viewChild('searchBox', { read: ElementRef });\n searchBoxChild = viewChild('searchBoxChild', { read: ElementRef });\n list = viewChild('list', { read: ElementRef });\n\n /**\n * Name of the HTML component.\n */\n name = input<string>();\n /**\n * Select items.\n * If provided, the select will be considered static.\n */\n items = input<SelectItem[]>();\n /**\n * Store used to load/filter the items.\n */\n store = input<BaseSearchStore>();\n /**\n * Observable used to load/filter the items.\n */\n observable = input<ObservableSearchType>();\n /**\n * Name of the property in the object that represents the ID/key of the option.\n * **Note:** used only for remote data.\n */\n itemKey = input<string>();\n /**\n * Name of the property in the object that represents the value/description of the option.\n * **Note:** used only for remote data.\n */\n itemValue = input<string>();\n /**\n * Maximum height of the dropdown.\n */\n dropdownMaxHeight = input(Defaults.dropdownMaxHeight);\n typeaheadDebounce = input(Defaults.typeaheadDebounce);\n shouldAutoSearch = input(Defaults.shouldAutoSearch);\n shouldCloseOnOutsideClick = input(Defaults.shouldCloseOnOutsideClick);\n layout = input<HorizontalVerticalType>(Defaults.layout);\n labelColSize = input<RowColumnSize>();\n isDisabled = input(false); // TODO: implementar.\n layoutClasses = computed(() => this.layout() === 'horizontal' ? ['col', 'align-self-center'] : []);\n isLoading = false;\n localItems: SelectItem[] = [];\n listItems: ListItem[] = [];\n dropdownClasses = 'select-dropdown-content remove-top-radius';\n get isDropdownOpen(): boolean {\n return this._isDropdownOpen;\n }\n set isDropdownOpen(value: boolean) {\n this._isDropdownOpen = value;\n\n this.dropdownOpenStatusChange.emit(value);\n\n if (value) {\n this.dropdownClasses += ' select-dropdown-content-open';\n } else {\n this.dropdownClasses = this.dropdownClasses.replace(' select-dropdown-content-open', '');\n }\n }\n get labelSizeClasses(): string {\n if (this.layout() !== 'horizontal') {\n return 'form-label';\n }\n\n return ColumnSizeHelper.getClasses(\n 'col-form-label',\n ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3)\n );\n }\n\n protected _currentTerm?: string;\n protected _localBackupItems: SelectItem[] = [];\n\n private hasExternalList = false;\n private _isDropdownOpen = false;\n private hostWrapperClasses = computed(() => this.layout() === 'horizontal' ? 'row' : '');\n private readonly searchInputSubject = new Subject<string>();\n private readonly renderer = inject(Renderer2);\n private readonly ngZone = inject(NgZone);\n private readonly domEventsService = inject(DomEventsService);\n private readonly positioningService = inject(PositioningService);\n\n protected constructor() {\n super();\n\n effect(() => {\n if (!!this.items()) {\n this._setupLocalItems(this.items()!);\n }\n });\n }\n\n ngOnInit(): void {\n this.hasExternalList = !this.observable() && !this.store();\n\n if (this.shouldAutoSearch()) {\n if (this.hasExternalList) {\n this._setupLocalItems(this.items()!);\n } else {\n this.searchRemote();\n }\n }\n\n if (this.hasExternalList) {\n return;\n }\n\n const typeaheadSubscription = this.searchInputSubject\n .pipe(\n tap(value => this._currentTerm = value),\n debounceTime(this.typeaheadDebounce())\n )\n .subscribe(() => this.searchRemote());\n\n this.addSubscriptions(typeaheadSubscription);\n }\n\n openDropdown(): void {\n this.isDropdownOpen = true;\n\n if (this.shouldCloseOnOutsideClick()) {\n const outsideClickSub = this.domEventsService.startOutsideClickListener(\n () => this.ngZone.run(() => this.isDropdownOpen = false),\n this.list()?.nativeElement,\n true,\n this.componentBox()?.nativeElement,\n this.searchBox()?.nativeElement\n );\n this.addSubscriptions(outsideClickSub);\n }\n\n this.ngZone.runOutsideAngular(() =>\n this.positioningService\n .computePosition(this.componentBox()!, this.list()!, { placement: 'bottom' })\n .subscribe(resp => this.updatePosition(resp))\n );\n }\n\n search(term?: string): void {\n if (this.hasExternalList) {\n this.searchLocal();\n } else {\n this.searchInputSubject.next(term || '');\n }\n }\n\n protected _setupLocalItems(items: SelectItem[]): void {\n this.localItems = Utils.deepCopy(items);\n this._localBackupItems = Utils.deepCopy(items);\n const tempItems: ListItem[] = [];\n\n for (const item of this._localBackupItems) {\n const listItem = this.getListItem(item);\n item.listItem = Object.assign(listItem, {});\n\n tempItems.push(listItem);\n }\n\n this.listItems = [...tempItems];\n this.isLoading = false;\n }\n\n private searchLocal(): void {\n if (!this._currentTerm) {\n this.listItems = Utils.deepCopy(this._localBackupItems.map(li => li.listItem!));\n this.localItems = Utils.deepCopy(this._localBackupItems);\n\n return;\n }\n\n this.ngZone.run(() => {\n this.listItems = Utils.deepCopy<SelectItem[]>(this._localBackupItems).filter(si => {\n let hasChildrenInSearch = false;\n\n if ((si.children?.length || 0) > 0) {\n hasChildrenInSearch = si.children!.filter(\n ci => ci.text!.toLowerCase().includes(this._currentTerm!.toLowerCase())\n ).length > 0;\n }\n\n return si.text!.toLowerCase().includes(this._currentTerm!.toLowerCase()) || hasChildrenInSearch;\n }).map(si => {\n const bkpItem = this._localBackupItems.find(lbi => lbi.value === si.value);\n\n if ((bkpItem?.children?.length || 0) > 0) {\n si.children = [...bkpItem!.children!].filter(\n ci => ci.text!.toLowerCase().includes(this._currentTerm!.toLowerCase())\n );\n }\n\n return this.getListItem(si);\n });\n });\n }\n\n private searchRemote(): void {\n this.isLoading = true;\n const request = { description: this._currentTerm };\n const observable = !!this.observable() ? this.observable()!(request) : this.store()!.search(request);\n\n observable.subscribe(r => {\n const items: SelectItem[] = [];\n\n r.records.forEach(item => {\n items.push({\n value: item[this.itemKey()!],\n text: item[this.itemValue()!],\n objectData: item\n });\n });\n this._setupLocalItems(items);\n });\n }\n\n private getListItem(item: SelectItem): ListItem {\n let listItem: ListItem;\n\n if (!!item.listItem) {\n listItem = item.listItem;\n listItem.id = item.value;\n listItem.text = item.text;\n } else {\n listItem = {\n id: item.value,\n text: item.text\n };\n }\n\n if ((item.children?.length || 0) > 0) {\n listItem.children = [...item.children!].map(c => this.getListItem(c));\n }\n\n return listItem;\n }\n\n private updatePosition(result: ComputePositionResult): void {\n const componentBox = this.componentBox()!.nativeElement.getBoundingClientRect();\n const searchBoxChildElement = this.searchBoxChild()?.nativeElement;\n const ddElement = this.list()!.nativeElement;\n\n this.renderer.setStyle(searchBoxChildElement, 'width', `${Math.abs(componentBox.width)}px`, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'top', `${result.y + searchBoxChildElement.scrollHeight}px`, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'left', 0, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'width', `${Math.abs(componentBox.width)}px`, RendererStyleFlags2.Important);\n }\n\n abstract clearSelection(): void;\n abstract onSelectItem(item: ListItem): void;\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { ListItem } from '@updevs/components/list';\n\nimport { BaseSelectComponent } from '../../models/abstractions/base-select.component';\nimport { SelectItem } from '../../models/select-item';\n\n@Component({\n selector: 'upd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectComponent extends BaseSelectComponent {\n /**\n * If true, it'll use the default style of the OS, no search capabilities.\n */\n @Input() useSystemStyle = false;\n @Input() shouldShowClearButton = true;\n @Input() isCompact = false;\n @Input() set selected(item: OptionalType<SelectItem>) {\n this.currentSelection = item;\n }\n\n /**\n * Triggered when an item is selected.\n */\n @Output() readonly selectedItem = new EventEmitter<OptionalType<SelectItem>>();\n\n currentSelection?: SelectItem;\n\n constructor() {\n super();\n }\n\n onSelectItem(item: ListItem): void {\n this._currentTerm = item.text;\n this.isDropdownOpen = false;\n\n for (const localBackupItem of this._localBackupItems) {\n if ((localBackupItem.children?.length || 0) > 0) {\n this.currentSelection = localBackupItem.children?.find(c => c.value === item.id);\n\n if (!!this.currentSelection) {\n break;\n }\n } else if (localBackupItem.value === item.id) {\n this.currentSelection = localBackupItem;\n break;\n }\n }\n\n this.selectedItem.emit(this.currentSelection);\n }\n\n onSystemSelect(event: any): void {\n // eslint-disable-next-line eqeqeq\n this.currentSelection = this.localItems.find(c => c.value == event.target.value);\n this.selectedItem.emit(this.currentSelection);\n }\n\n clearSelection(): void {\n this.currentSelection = undefined;\n this._currentTerm = undefined;\n\n this.search();\n this.selectedItem.emit(undefined);\n }\n}\n","@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span>{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n","import { Component, ViewEncapsulation, EventEmitter, Output } from '@angular/core';\nimport { ListItem } from '@updevs/components/list';\n\nimport { BaseSelectComponent } from '../../models/abstractions/base-select.component';\nimport { SelectItem } from '../../models/select-item';\n\n@Component({\n selector: 'upd-select-multiple',\n templateUrl: './select-multiple.component.html',\n styleUrls: ['./select-multiple.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectMultipleComponent extends BaseSelectComponent {\n /**\n * Returns the selected items.\n * Triggered when items are selected.\n */\n @Output() readonly selectedItems = new EventEmitter<SelectItem[]>();\n /**\n * Returns the selected Ids.\n * Triggered when items are selected.\n */\n @Output() readonly selectedIds = new EventEmitter<any[]>();\n\n currentSelection: SelectItem[] = [];\n\n constructor() {\n super();\n }\n\n clearSelection(): void {\n this.currentSelection = [];\n this._currentTerm = undefined;\n\n this.updateActiveItemsOnList();\n }\n\n onSelectItem(item: ListItem): void {\n const selectedItem = this.currentSelection.find(cs => cs.value === item.id);\n\n if (!!selectedItem) {\n this.onRemoveItem(selectedItem);\n return;\n }\n\n for (const localBackupItem of this._localBackupItems) {\n if ((localBackupItem.children?.length || 0) > 0) {\n const child = localBackupItem.children?.find(c => c.value === item.id);\n\n if (!!child) {\n this.currentSelection.push(child);\n break;\n }\n } else if (localBackupItem.value === item.id) {\n this.currentSelection.push(localBackupItem);\n break;\n }\n }\n\n this.updateActiveItemsOnList();\n this.selectedItems.emit(this.currentSelection);\n this.selectedIds.emit(this.currentSelection.map(cs => cs.value));\n }\n\n onRemoveItem(item: SelectItem): void {\n const idx = this.currentSelection.findIndex(cs => cs.value === item.value);\n\n this.currentSelection.splice(idx, 1);\n this.updateActiveItemsOnList();\n }\n\n private updateActiveItemsOnList(): void {\n for (const backupItem of this._localBackupItems) {\n const selectedItem = this.currentSelection.find(cs => cs.value === backupItem.value);\n backupItem.listItem!.isActive = !!selectedItem;\n }\n\n this._setupLocalItems(this._localBackupItems);\n }\n}\n","@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span>&nbsp;\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdCoreLayoutModule } from '@updevs/sdk/layout';\nimport { UpdListModule } from '@updevs/components/list';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { SelectComponent } from './components/single/select.component';\nimport { SelectMultipleComponent } from './components/multiple/select-multiple.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdCoreLayoutModule,\n UpdListModule,\n UpdInputModule,\n UpdIconsModule,\n UpdButtonModule,\n UpdPopoverModule,\n TranslocoModule\n ],\n declarations: [\n SelectComponent,\n SelectMultipleComponent\n ],\n exports: [\n SelectComponent,\n SelectMultipleComponent\n ]\n})\nexport class UpdSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form-controls-select.mjs","sources":["../../../../libs/components/form-controls/select/src/models/defaults.ts","../../../../libs/components/form-controls/select/src/models/abstractions/base-select.component.ts","../../../../libs/components/form-controls/select/src/components/single/select.component.ts","../../../../libs/components/form-controls/select/src/components/single/select.component.html","../../../../libs/components/form-controls/select/src/components/multiple/select-multiple.component.ts","../../../../libs/components/form-controls/select/src/components/multiple/select-multiple.component.html","../../../../libs/components/form-controls/select/src/upd-select.module.ts","../../../../libs/components/form-controls/select/src/updevs-components-form-controls-select.ts"],"sourcesContent":["import { HorizontalVerticalType } from '@updevs/components';\n\nexport class Defaults {\n static dropdownMaxHeight = 300;\n static typeaheadDebounce = 200;\n static shouldAutoSearch = true;\n static shouldCloseOnOutsideClick = true;\n static layout: HorizontalVerticalType = 'vertical';\n}\n","import {\n Directive,\n HostBinding,\n ElementRef,\n OnInit,\n Output,\n EventEmitter,\n inject,\n NgZone,\n Renderer2,\n RendererStyleFlags2,\n input,\n viewChild,\n computed, effect\n} from '@angular/core';\nimport { DomEventsService, PositioningService, ComputePositionResult } from '@updevs/sdk/layout';\nimport { Tools } from '@updevs/sdk/core';\nimport { BaseSearchStore, ObservableSearchType } from '@updevs/sdk/stores';\nimport { HorizontalVerticalType, ColumnSizeHelper } from '@updevs/components';\nimport { ListItem } from '@updevs/components/list';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\nimport { tap, debounceTime, Subject } from 'rxjs';\n\nimport { SelectItem } from '../select-item';\nimport { Defaults } from '../defaults';\n\nimport Utils = Tools.Utils;\n\n@Directive()\nexport abstract class BaseSelectComponent extends BaseControl implements OnInit {\n @HostBinding('class') get wrapperClasses() {\n return this.hostWrapperClasses();\n }\n @Output() readonly dropdownOpenStatusChange = new EventEmitter<boolean>();\n\n componentBox = viewChild('componentBox', { read: ElementRef });\n searchBox = viewChild('searchBox', { read: ElementRef });\n searchBoxChild = viewChild('searchBoxChild', { read: ElementRef });\n list = viewChild('list', { read: ElementRef });\n\n /**\n * Select items.\n * If provided, the select will be considered static.\n */\n items = input<SelectItem[]>();\n /**\n * Store used to load/filter the items.\n */\n store = input<BaseSearchStore>();\n /**\n * Observable used to load/filter the items.\n */\n observable = input<ObservableSearchType>();\n /**\n * Name of the property in the object that represents the ID/key of the option.\n * **Note:** used only for remote data.\n */\n itemKey = input<string>();\n /**\n * Name of the property in the object that represents the value/description of the option.\n * **Note:** used only for remote data.\n */\n itemValue = input<string>();\n /**\n * Maximum height of the dropdown.\n */\n dropdownMaxHeight = input(Defaults.dropdownMaxHeight);\n typeaheadDebounce = input(Defaults.typeaheadDebounce);\n shouldAutoSearch = input(Defaults.shouldAutoSearch);\n shouldCloseOnOutsideClick = input(Defaults.shouldCloseOnOutsideClick);\n layout = input<HorizontalVerticalType>(Defaults.layout);\n layoutClasses = computed(() => this.layout() === 'horizontal' ? ['col', 'align-self-center'] : []);\n isLoading = false;\n localItems: SelectItem[] = [];\n listItems: ListItem[] = [];\n dropdownClasses = 'select-dropdown-content remove-top-radius';\n get isDropdownOpen(): boolean {\n return this._isDropdownOpen;\n }\n set isDropdownOpen(value: boolean) {\n this._isDropdownOpen = value;\n\n this.dropdownOpenStatusChange.emit(value);\n\n if (value) {\n this.dropdownClasses += ' select-dropdown-content-open';\n } else {\n this.dropdownClasses = this.dropdownClasses.replace(' select-dropdown-content-open', '');\n }\n }\n get labelSizeClasses(): string {\n if (this.layout() !== 'horizontal') {\n return 'form-label';\n }\n\n return ColumnSizeHelper.getClasses(\n 'col-form-label',\n ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3)\n );\n }\n\n protected _currentTerm?: string;\n protected _localBackupItems: SelectItem[] = [];\n\n private hasExternalList = false;\n private _isDropdownOpen = false;\n private hostWrapperClasses = computed(() => this.layout() === 'horizontal' ? 'row' : '');\n private readonly searchInputSubject = new Subject<string>();\n private readonly renderer = inject(Renderer2);\n private readonly ngZone = inject(NgZone);\n private readonly domEventsService = inject(DomEventsService);\n private readonly positioningService = inject(PositioningService);\n\n protected constructor() {\n super();\n\n effect(() => {\n if (!!this.items()) {\n this._setupLocalItems(this.items()!);\n }\n });\n }\n\n ngOnInit(): void {\n this.hasExternalList = !this.observable() && !this.store();\n\n if (this.shouldAutoSearch()) {\n if (this.hasExternalList) {\n this._setupLocalItems(this.items()!);\n } else {\n this.searchRemote();\n }\n }\n\n if (this.hasExternalList) {\n return;\n }\n\n const typeaheadSubscription = this.searchInputSubject\n .pipe(\n tap(value => this._currentTerm = value),\n debounceTime(this.typeaheadDebounce())\n )\n .subscribe(() => this.searchRemote());\n\n this.addSubscriptions(typeaheadSubscription);\n }\n\n openDropdown(): void {\n this.isDropdownOpen = true;\n\n if (this.shouldCloseOnOutsideClick()) {\n const outsideClickSub = this.domEventsService.startOutsideClickListener(\n () => this.ngZone.run(() => this.isDropdownOpen = false),\n this.list()?.nativeElement,\n true,\n this.componentBox()?.nativeElement,\n this.searchBox()?.nativeElement\n );\n this.addSubscriptions(outsideClickSub);\n }\n\n this.ngZone.runOutsideAngular(() =>\n this.positioningService\n .computePosition(this.componentBox()!, this.list()!, { placement: 'bottom' })\n .subscribe(resp => this.updatePosition(resp))\n );\n }\n\n search(term?: string): void {\n if (this.hasExternalList) {\n this.searchLocal();\n } else {\n this.searchInputSubject.next(term || '');\n }\n }\n\n protected _setupLocalItems(items: SelectItem[]): void {\n this.localItems = Utils.deepCopy(items);\n this._localBackupItems = Utils.deepCopy(items);\n const tempItems: ListItem[] = [];\n\n for (const item of this._localBackupItems) {\n const listItem = this.getListItem(item);\n item.listItem = Object.assign(listItem, {});\n\n tempItems.push(listItem);\n }\n\n this.listItems = [...tempItems];\n this.isLoading = false;\n }\n\n private searchLocal(): void {\n if (!this._currentTerm) {\n this.listItems = Utils.deepCopy(this._localBackupItems.map(li => li.listItem!));\n this.localItems = Utils.deepCopy(this._localBackupItems);\n\n return;\n }\n\n this.ngZone.run(() => {\n this.listItems = Utils.deepCopy<SelectItem[]>(this._localBackupItems).filter(si => {\n let hasChildrenInSearch = false;\n\n if ((si.children?.length || 0) > 0) {\n hasChildrenInSearch = si.children!.filter(\n ci => ci.text!.toLowerCase().includes(this._currentTerm!.toLowerCase())\n ).length > 0;\n }\n\n return si.text!.toLowerCase().includes(this._currentTerm!.toLowerCase()) || hasChildrenInSearch;\n }).map(si => {\n const bkpItem = this._localBackupItems.find(lbi => lbi.value === si.value);\n\n if ((bkpItem?.children?.length || 0) > 0) {\n si.children = [...bkpItem!.children!].filter(\n ci => ci.text!.toLowerCase().includes(this._currentTerm!.toLowerCase())\n );\n }\n\n return this.getListItem(si);\n });\n });\n }\n\n private searchRemote(): void {\n this.isLoading = true;\n const request = { description: this._currentTerm };\n const observable = !!this.observable() ? this.observable()!(request) : this.store()!.search(request);\n\n observable.subscribe(r => {\n const items: SelectItem[] = [];\n\n r.records.forEach(item => {\n items.push({\n value: item[this.itemKey()!],\n text: item[this.itemValue()!],\n objectData: item\n });\n });\n this._setupLocalItems(items);\n });\n }\n\n private getListItem(item: SelectItem): ListItem {\n let listItem: ListItem;\n\n if (!!item.listItem) {\n listItem = item.listItem;\n listItem.id = item.value;\n listItem.text = item.text;\n } else {\n listItem = {\n id: item.value,\n text: item.text\n };\n }\n\n if ((item.children?.length || 0) > 0) {\n listItem.children = [...item.children!].map(c => this.getListItem(c));\n }\n\n return listItem;\n }\n\n private updatePosition(result: ComputePositionResult): void {\n const componentBox = this.componentBox()!.nativeElement.getBoundingClientRect();\n const searchBoxChildElement = this.searchBoxChild()?.nativeElement;\n const ddElement = this.list()!.nativeElement;\n\n this.renderer.setStyle(searchBoxChildElement, 'width', `${Math.abs(componentBox.width)}px`, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'top', `${result.y + searchBoxChildElement.scrollHeight}px`, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'left', 0, RendererStyleFlags2.Important);\n this.renderer.setStyle(ddElement, 'width', `${Math.abs(componentBox.width)}px`, RendererStyleFlags2.Important);\n }\n\n abstract clearSelection(): void;\n abstract onSelectItem(item: ListItem): void;\n}\n","import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { ListItem } from '@updevs/components/list';\n\nimport { BaseSelectComponent } from '../../models/abstractions/base-select.component';\nimport { SelectItem } from '../../models/select-item';\n\n@Component({\n selector: 'upd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectComponent extends BaseSelectComponent {\n /**\n * If true, it'll use the default style of the OS, no search capabilities.\n */\n @Input() useSystemStyle = false;\n @Input() shouldShowClearButton = true;\n @Input() isCompact = false;\n @Input() set selected(item: OptionalType<SelectItem>) {\n this.currentSelection = item;\n }\n\n /**\n * Triggered when an item is selected.\n */\n @Output() readonly selectedItem = new EventEmitter<OptionalType<SelectItem>>();\n\n currentSelection?: SelectItem;\n\n constructor() {\n super();\n }\n\n onSelectItem(item: ListItem): void {\n this._currentTerm = item.text;\n this.isDropdownOpen = false;\n\n for (const localBackupItem of this._localBackupItems) {\n if ((localBackupItem.children?.length || 0) > 0) {\n this.currentSelection = localBackupItem.children?.find(c => c.value === item.id);\n\n if (!!this.currentSelection) {\n break;\n }\n } else if (localBackupItem.value === item.id) {\n this.currentSelection = localBackupItem;\n break;\n }\n }\n\n this.selectedItem.emit(this.currentSelection);\n }\n\n onSystemSelect(event: any): void {\n // eslint-disable-next-line eqeqeq\n this.currentSelection = this.localItems.find(c => c.value == event.target.value);\n this.selectedItem.emit(this.currentSelection);\n }\n\n clearSelection(): void {\n this.currentSelection = undefined;\n this._currentTerm = undefined;\n\n this.search();\n this.selectedItem.emit(undefined);\n }\n}\n","@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span>{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n","import { Component, ViewEncapsulation, EventEmitter, Output } from '@angular/core';\nimport { ListItem } from '@updevs/components/list';\n\nimport { BaseSelectComponent } from '../../models/abstractions/base-select.component';\nimport { SelectItem } from '../../models/select-item';\n\n@Component({\n selector: 'upd-select-multiple',\n templateUrl: './select-multiple.component.html',\n styleUrls: ['./select-multiple.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectMultipleComponent extends BaseSelectComponent {\n /**\n * Returns the selected items.\n * Triggered when items are selected.\n */\n @Output() readonly selectedItems = new EventEmitter<SelectItem[]>();\n /**\n * Returns the selected Ids.\n * Triggered when items are selected.\n */\n @Output() readonly selectedIds = new EventEmitter<any[]>();\n\n currentSelection: SelectItem[] = [];\n\n constructor() {\n super();\n }\n\n clearSelection(): void {\n this.currentSelection = [];\n this._currentTerm = undefined;\n\n this.updateActiveItemsOnList();\n }\n\n onSelectItem(item: ListItem): void {\n const selectedItem = this.currentSelection.find(cs => cs.value === item.id);\n\n if (!!selectedItem) {\n this.onRemoveItem(selectedItem);\n return;\n }\n\n for (const localBackupItem of this._localBackupItems) {\n if ((localBackupItem.children?.length || 0) > 0) {\n const child = localBackupItem.children?.find(c => c.value === item.id);\n\n if (!!child) {\n this.currentSelection.push(child);\n break;\n }\n } else if (localBackupItem.value === item.id) {\n this.currentSelection.push(localBackupItem);\n break;\n }\n }\n\n this.updateActiveItemsOnList();\n this.selectedItems.emit(this.currentSelection);\n this.selectedIds.emit(this.currentSelection.map(cs => cs.value));\n }\n\n onRemoveItem(item: SelectItem): void {\n const idx = this.currentSelection.findIndex(cs => cs.value === item.value);\n\n this.currentSelection.splice(idx, 1);\n this.updateActiveItemsOnList();\n }\n\n private updateActiveItemsOnList(): void {\n for (const backupItem of this._localBackupItems) {\n const selectedItem = this.currentSelection.find(cs => cs.value === backupItem.value);\n backupItem.listItem!.isActive = !!selectedItem;\n }\n\n this._setupLocalItems(this._localBackupItems);\n }\n}\n","@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span>&nbsp;\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdCoreLayoutModule } from '@updevs/sdk/layout';\nimport { UpdListModule } from '@updevs/components/list';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { SelectComponent } from './components/single/select.component';\nimport { SelectMultipleComponent } from './components/multiple/select-multiple.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdCoreLayoutModule,\n UpdListModule,\n UpdInputModule,\n UpdIconsModule,\n UpdButtonModule,\n UpdPopoverModule,\n TranslocoModule\n ],\n declarations: [\n SelectComponent,\n SelectMultipleComponent\n ],\n exports: [\n SelectComponent,\n SelectMultipleComponent\n ]\n})\nexport class UpdSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -11,10 +11,8 @@ class TextareaComponent extends BaseControl {
11
11
  this.value = model();
12
12
  this.customClasses = input();
13
13
  this.wrapperClasses = input();
14
- this.name = input();
15
14
  this.maxLength = input();
16
15
  this.rows = input();
17
- this.isDisabled = input(false);
18
16
  this.displayCharactersCount = input(false);
19
17
  this.classes = [];
20
18
  }
@@ -36,7 +34,7 @@ class TextareaComponent extends BaseControl {
36
34
  this.classes = [...lClasses, ...(this.customClasses() || '').split(' ')];
37
35
  }
38
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: TextareaComponent, selector: "upd-textarea", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, displayCharactersCount: { classPropertyName: "displayCharactersCount", publicName: "displayCharactersCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!labelText || displayCharactersCount()) {\n <label class=\"form-label\">\n {{ labelText }}\n @if (displayCharactersCount() && !!maxLength()) {\n <span class=\"form-label-description\">{{ value()?.length || 0 }}/{{ maxLength() }}</span>\n }\n </label>\n}\n\n<textarea [attr.maxlength]=\"maxLength()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value() || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isDisabled() ? '' : undefined\" [attr.rows]=\"rows()\"\n (input)=\"updateValue($event)\">\n</textarea>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: TextareaComponent, selector: "upd-textarea", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, displayCharactersCount: { classPropertyName: "displayCharactersCount", publicName: "displayCharactersCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!labelText || displayCharactersCount()) {\n <label class=\"form-label\">\n {{ labelText }}\n @if (displayCharactersCount() && !!maxLength()) {\n <span class=\"form-label-description\">{{ value()?.length || 0 }}/{{ maxLength() }}</span>\n }\n </label>\n}\n\n<textarea [attr.maxlength]=\"maxLength()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value() || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isDisabled() ? '' : undefined\" [attr.rows]=\"rows()\"\n (input)=\"updateValue($event)\">\n</textarea>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
40
38
  }
41
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaComponent, decorators: [{
42
40
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form-controls-textarea.mjs","sources":["../../../../libs/components/form-controls/textarea/src/textarea.component.ts","../../../../libs/components/form-controls/textarea/src/textarea.component.html","../../../../libs/components/form-controls/textarea/src/upd-textarea.module.ts","../../../../libs/components/form-controls/textarea/src/updevs-components-form-controls-textarea.ts"],"sourcesContent":["import { Component, ViewEncapsulation, HostBinding, OnInit, OnChanges, input, model } from '@angular/core';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\n\n@Component({\n selector: 'upd-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextareaComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n\n value = model<string>();\n customClasses = input<string>();\n wrapperClasses = input<string>();\n name = input<string>();\n maxLength = input<number>();\n rows = input<number>();\n isDisabled = input(false);\n displayCharactersCount = input(false);\n classes: string[] = [];\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(): void {\n this.updateClasses();\n }\n\n updateValue(event?: any): void {\n if (!event && !event.target) {\n return;\n }\n\n const target = event.target as HTMLTextAreaElement;\n\n this.value.set(target.value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = ['form-control'];\n this.classes = [...lClasses, ...(this.customClasses() || '').split(' ')];\n }\n}\n","@if (!!labelText || displayCharactersCount()) {\n <label class=\"form-label\">\n {{ labelText }}\n @if (displayCharactersCount() && !!maxLength()) {\n <span class=\"form-label-description\">{{ value()?.length || 0 }}/{{ maxLength() }}</span>\n }\n </label>\n}\n\n<textarea [attr.maxlength]=\"maxLength()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value() || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isDisabled() ? '' : undefined\" [attr.rows]=\"rows()\"\n (input)=\"updateValue($event)\">\n</textarea>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TextareaComponent } from './textarea.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n TextareaComponent\n ],\n exports: [\n TextareaComponent\n ]\n})\nexport class UpdTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form-controls-textarea.mjs","sources":["../../../../libs/components/form-controls/textarea/src/textarea.component.ts","../../../../libs/components/form-controls/textarea/src/textarea.component.html","../../../../libs/components/form-controls/textarea/src/upd-textarea.module.ts","../../../../libs/components/form-controls/textarea/src/updevs-components-form-controls-textarea.ts"],"sourcesContent":["import { Component, ViewEncapsulation, HostBinding, OnInit, OnChanges, input, model } from '@angular/core';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\n\n@Component({\n selector: 'upd-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextareaComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n\n value = model<string>();\n customClasses = input<string>();\n wrapperClasses = input<string>();\n maxLength = input<number>();\n rows = input<number>();\n displayCharactersCount = input(false);\n classes: string[] = [];\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(): void {\n this.updateClasses();\n }\n\n updateValue(event?: any): void {\n if (!event && !event.target) {\n return;\n }\n\n const target = event.target as HTMLTextAreaElement;\n\n this.value.set(target.value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = ['form-control'];\n this.classes = [...lClasses, ...(this.customClasses() || '').split(' ')];\n }\n}\n","@if (!!labelText || displayCharactersCount()) {\n <label class=\"form-label\">\n {{ labelText }}\n @if (displayCharactersCount() && !!maxLength()) {\n <span class=\"form-label-description\">{{ value()?.length || 0 }}/{{ maxLength() }}</span>\n }\n </label>\n}\n\n<textarea [attr.maxlength]=\"maxLength()\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value() || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isDisabled() ? '' : undefined\" [attr.rows]=\"rows()\"\n (input)=\"updateValue($event)\">\n</textarea>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TextareaComponent } from './textarea.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n TextareaComponent\n ],\n exports: [\n TextareaComponent\n ]\n})\nexport class UpdTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -248,7 +248,7 @@ class TimePickerComponent {
248
248
  console.log('max w', this.maxWidth);
249
249
  }
250
250
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TimePickerComponent, selector: "upd-time-picker", inputs: { dropdownMaxHeight: "dropdownMaxHeight", showMask: "showMask", shouldSelectSeconds: "shouldSelectSeconds", shouldUse24hFormat: "shouldUse24hFormat", startingHour: "startingHour", endingHour: "endingHour", hourInterval: "hourInterval", startingMinute: "startingMinute", endingMinute: "endingMinute", minuteInterval: "minuteInterval", startingSecond: "startingSecond", endingSecond: "endingSecond", secondInterval: "secondInterval", customHours: "customHours", customMinutes: "customMinutes", customSeconds: "customSeconds" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<upd-input #input [mask]=\"inputMask\" [maskConfig]=\"{showMaskTyped:showMask}\" [isInputGroupFlat]=\"true\">\n <ng-template updInputAppend>\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"calendar-time\"></upd-icon>\n </upd-button>\n </ng-template>\n</upd-input>\n<upd-dropdown [isOpen]=\"isDropdownOpen\" [dropdownReference]=\"inputRef\" [maxHeight]=\"dropdownMaxHeight\" [maxWidth]=\"maxWidth\"\n wrapperClasses=\"overflow-x-hidden\">\n <div class=\"time-options-wrapper\" [style.max-width.px]=\"maxWidth\">\n <upd-time-selector [shouldSelectSeconds]=\"shouldSelectSeconds\" [shouldUse24hFormat]=\"shouldUse24hFormat\"\n [startingHour]=\"startingHour\" [endingHour]=\"endingHour\" [hourInterval]=\"hourInterval\"\n [startingMinute]=\"startingMinute\" [endingMinute]=\"endingMinute\" [minuteInterval]=\"minuteInterval\"\n [startingSecond]=\"startingSecond\" [endingSecond]=\"endingSecond\" [secondInterval]=\"secondInterval\"\n [customHours]=\"customHours\" [customMinutes]=\"customMinutes\" [customSeconds]=\"customSeconds\"></upd-time-selector>\n </div>\n</upd-dropdown>\n", styles: [".time-options-wrapper{padding:10px 20px 15px;width:100%;border-radius:6px;font-size:25px;font-weight:500;text-align:center;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: i1$2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "name", "maxLength", "isDisabled", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "isRequired", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout", "labelColSize"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i1$2.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i4.DropdownComponent, selector: "upd-dropdown", inputs: ["items", "header", "isOpen", "shouldCloseOnOutsideClick", "arrowType", "wrapperClasses", "elementsExcludedFromOutsideClick", "minHeight", "maxHeight", "minWidth", "maxWidth", "dropdownReference", "dropdownReferencePosition", "textOverflowStrategy"], outputs: ["isOpenChange", "selectedItem", "checkboxChanged"] }, { kind: "component", type: TimeSelectorComponent, selector: "upd-time-selector", inputs: ["shouldSelectSeconds", "shouldUse24hFormat", "startingHour", "endingHour", "hourInterval", "startingMinute", "endingMinute", "minuteInterval", "startingSecond", "endingSecond", "secondInterval", "customHours", "customMinutes", "customSeconds"] }] }); }
251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TimePickerComponent, selector: "upd-time-picker", inputs: { dropdownMaxHeight: "dropdownMaxHeight", showMask: "showMask", shouldSelectSeconds: "shouldSelectSeconds", shouldUse24hFormat: "shouldUse24hFormat", startingHour: "startingHour", endingHour: "endingHour", hourInterval: "hourInterval", startingMinute: "startingMinute", endingMinute: "endingMinute", minuteInterval: "minuteInterval", startingSecond: "startingSecond", endingSecond: "endingSecond", secondInterval: "secondInterval", customHours: "customHours", customMinutes: "customMinutes", customSeconds: "customSeconds" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<upd-input #input [mask]=\"inputMask\" [maskConfig]=\"{showMaskTyped:showMask}\" [isInputGroupFlat]=\"true\">\n <ng-template updInputAppend>\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"calendar-time\"></upd-icon>\n </upd-button>\n </ng-template>\n</upd-input>\n<upd-dropdown [isOpen]=\"isDropdownOpen\" [dropdownReference]=\"inputRef\" [maxHeight]=\"dropdownMaxHeight\" [maxWidth]=\"maxWidth\"\n wrapperClasses=\"overflow-x-hidden\">\n <div class=\"time-options-wrapper\" [style.max-width.px]=\"maxWidth\">\n <upd-time-selector [shouldSelectSeconds]=\"shouldSelectSeconds\" [shouldUse24hFormat]=\"shouldUse24hFormat\"\n [startingHour]=\"startingHour\" [endingHour]=\"endingHour\" [hourInterval]=\"hourInterval\"\n [startingMinute]=\"startingMinute\" [endingMinute]=\"endingMinute\" [minuteInterval]=\"minuteInterval\"\n [startingSecond]=\"startingSecond\" [endingSecond]=\"endingSecond\" [secondInterval]=\"secondInterval\"\n [customHours]=\"customHours\" [customMinutes]=\"customMinutes\" [customSeconds]=\"customSeconds\"></upd-time-selector>\n </div>\n</upd-dropdown>\n", styles: [".time-options-wrapper{padding:10px 20px 15px;width:100%;border-radius:6px;font-size:25px;font-weight:500;text-align:center;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: i1$2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i1$2.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i4.DropdownComponent, selector: "upd-dropdown", inputs: ["items", "header", "isOpen", "shouldCloseOnOutsideClick", "arrowType", "wrapperClasses", "elementsExcludedFromOutsideClick", "minHeight", "maxHeight", "minWidth", "maxWidth", "dropdownReference", "dropdownReferencePosition", "textOverflowStrategy"], outputs: ["isOpenChange", "selectedItem", "checkboxChanged"] }, { kind: "component", type: TimeSelectorComponent, selector: "upd-time-selector", inputs: ["shouldSelectSeconds", "shouldUse24hFormat", "startingHour", "endingHour", "hourInterval", "startingMinute", "endingMinute", "minuteInterval", "startingSecond", "endingSecond", "secondInterval", "customHours", "customMinutes", "customSeconds"] }] }); }
252
252
  }
253
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TimePickerComponent, decorators: [{
254
254
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form-controls-time-picker.mjs","sources":["../../../../libs/components/form-controls/time-picker/src/time-selector/time-selector.component.ts","../../../../libs/components/form-controls/time-picker/src/time-selector/time-selector.component.html","../../../../libs/components/form-controls/time-picker/src/time-picker.component.ts","../../../../libs/components/form-controls/time-picker/src/time-picker.component.html","../../../../libs/components/form-controls/time-picker/src/upd-time-picker.module.ts","../../../../libs/components/form-controls/time-picker/src/updevs-components-form-controls-time-picker.ts"],"sourcesContent":["import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'upd-time-selector',\n templateUrl: './time-selector.component.html',\n styleUrls: ['./time-selector.component.scss']\n})\nexport class TimeSelectorComponent implements OnInit, OnChanges {\n /**\n * Whether seconds should be selectable.\n */\n @Input() shouldSelectSeconds = false;\n /**\n * Whether the 24-hour format will be used or the 12-hour one (AM/PM)\n */\n @Input() shouldUse24hFormat = true;\n /**\n * Hour from which where the list will begin.\n */\n @Input() startingHour = 0;\n /**\n * Hour from which where the list will end.\n */\n @Input() endingHour = 23;\n /**\n * Interval between hours displayed.\n */\n @Input() hourInterval = 1;\n /**\n * Minute from which where the list will begin.\n */\n @Input() startingMinute = 0;\n /**\n * Minute from which where the list will end.\n */\n @Input() endingMinute = 59;\n /**\n * Interval between minutes displayed.\n */\n @Input() minuteInterval = 5;\n /**\n * Second from which where the list will begin.\n */\n @Input() startingSecond = 0;\n /**\n * Second from which where the list will end.\n */\n @Input() endingSecond = 59;\n /**\n * Interval between seconds displayed.\n */\n @Input() secondInterval = 10;\n /**\n * Custom list of hours to be displayed for selection.\n */\n @Input() customHours?: number[];\n /**\n * Custom list of minutes to be displayed for selection.\n */\n @Input() customMinutes?: number[];\n /**\n * Custom list of seconds to be displayed for selection.\n */\n @Input() customSeconds?: number[];\n\n hoursList: number[] = [];\n minutesList: number[] = [];\n secondsList: number[] = [];\n\n ngOnInit(): void {\n this.setupTimeLists();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setupTimeLists();\n }\n\n private setupTimeLists(): void {\n this.hoursList = [];\n this.minutesList = [];\n this.secondsList = [];\n\n if (!!this.customHours) {\n this.hoursList = this.customHours;\n } else {\n this.setupTimeList(this.hoursList, this.startingHour, this.endingHour, this.hourInterval);\n }\n\n if (!!this.customMinutes) {\n this.minutesList = this.customMinutes;\n } else {\n this.setupTimeList(this.minutesList, this.startingMinute, this.endingMinute, this.minuteInterval);\n }\n\n if (!!this.customSeconds) {\n this.secondsList = this.customSeconds;\n } else {\n this.setupTimeList(this.secondsList, this.startingSecond, this.endingSecond, this.secondInterval);\n }\n }\n\n private setupTimeList(list: number[], start: number, end: number, interval: number): void {\n for (let i = start; i <= end; i += interval) {\n list.push(i);\n }\n }\n}\n","<div class=\"d-flex\">\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (h of hoursList; track h) {\n <li>\n <div class=\"cell\">{{ h.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n <div class=\"time-dots-separator\">\n <span>:</span>\n </div>\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (m of minutesList; track m) {\n <li>\n <div class=\"cell\">{{ m.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n @if (shouldSelectSeconds) {\n <div class=\"time-dots-separator\">\n <span>:</span>\n </div>\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (s of secondsList; track s) {\n <li>\n <div class=\"cell\">{{ s.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n }\n @if (!shouldUse24hFormat) {\n <div class=\"time-items-list\">\n <ul class=\"list\">\n <li>\n <div class=\"cell\">{{ 'AM' | transloco }}</div>\n <div class=\"cell\">{{ 'PM' | transloco }}</div>\n </li>\n </ul>\n </div>\n }\n</div>\n<div>\n <upd-button>{{ 'Select' | transloco }}</upd-button>\n</div>\n","import { Component, Input, OnInit, OnChanges, SimpleChanges, ViewChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'upd-time-picker',\n templateUrl: './time-picker.component.html',\n styleUrls: ['./time-picker.component.scss']\n})\nexport class TimePickerComponent implements OnInit, OnChanges {\n @ViewChild('input', { read: ElementRef }) inputRef?: ElementRef;\n\n /**\n * Maximum height of the dropdown.\n */\n @Input() dropdownMaxHeight = 300;\n /**\n * Whether the mask should be shown.\n */\n @Input() showMask = true;\n /**\n * Whether seconds should be selectable.\n */\n @Input() shouldSelectSeconds = false;\n /**\n * Whether the 24-hour format will be used or the 12-hour one (AM/PM)\n */\n @Input() shouldUse24hFormat = true;\n /**\n * Hour from which where the list will begin.\n */\n @Input() startingHour = 0;\n /**\n * Hour from which where the list will end.\n */\n @Input() endingHour = 23;\n /**\n * Interval between hours displayed.\n */\n @Input() hourInterval = 1;\n /**\n * Minute from which where the list will begin.\n */\n @Input() startingMinute = 0;\n /**\n * Minute from which where the list will end.\n */\n @Input() endingMinute = 59;\n /**\n * Interval between minutes displayed.\n */\n @Input() minuteInterval = 5;\n /**\n * Second from which where the list will begin.\n */\n @Input() startingSecond = 0;\n /**\n * Second from which where the list will end.\n */\n @Input() endingSecond = 59;\n /**\n * Interval between seconds displayed.\n */\n @Input() secondInterval = 10;\n /**\n * Custom list of hours to be displayed for selection.\n */\n @Input() customHours?: number[];\n /**\n * Custom list of minutes to be displayed for selection.\n */\n @Input() customMinutes?: number[];\n /**\n * Custom list of seconds to be displayed for selection.\n */\n @Input() customSeconds?: number[];\n\n maxWidth = 0;\n isDropdownOpen = false;\n\n get inputMask(): string {\n return this.shouldSelectSeconds ? 'Hh:m0:s0' : 'Hh:m0';\n }\n\n ngOnInit(): void {\n this.setupStyle();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setupStyle();\n }\n\n openDropdown(): void {\n this.isDropdownOpen = true;\n }\n\n private setupStyle(): void {\n let finalWidth = 195;\n\n if (this.shouldSelectSeconds) {\n finalWidth += 60 + 10;\n }\n\n if (!this.shouldUse24hFormat) {\n finalWidth += 60;\n }\n\n this.maxWidth = finalWidth;\n\n console.log('max w', this.maxWidth);\n }\n}\n","<upd-input #input [mask]=\"inputMask\" [maskConfig]=\"{showMaskTyped:showMask}\" [isInputGroupFlat]=\"true\">\n <ng-template updInputAppend>\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"calendar-time\"></upd-icon>\n </upd-button>\n </ng-template>\n</upd-input>\n<upd-dropdown [isOpen]=\"isDropdownOpen\" [dropdownReference]=\"inputRef\" [maxHeight]=\"dropdownMaxHeight\" [maxWidth]=\"maxWidth\"\n wrapperClasses=\"overflow-x-hidden\">\n <div class=\"time-options-wrapper\" [style.max-width.px]=\"maxWidth\">\n <upd-time-selector [shouldSelectSeconds]=\"shouldSelectSeconds\" [shouldUse24hFormat]=\"shouldUse24hFormat\"\n [startingHour]=\"startingHour\" [endingHour]=\"endingHour\" [hourInterval]=\"hourInterval\"\n [startingMinute]=\"startingMinute\" [endingMinute]=\"endingMinute\" [minuteInterval]=\"minuteInterval\"\n [startingSecond]=\"startingSecond\" [endingSecond]=\"endingSecond\" [secondInterval]=\"secondInterval\"\n [customHours]=\"customHours\" [customMinutes]=\"customMinutes\" [customSeconds]=\"customSeconds\"></upd-time-selector>\n </div>\n</upd-dropdown>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdListModule } from '@updevs/components/list';\nimport { UpdDropdownModule } from '@updevs/components/dropdown';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { TimePickerComponent } from './time-picker.component';\nimport { TimeSelectorComponent } from './time-selector/time-selector.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslocoModule,\n UpdInputModule,\n UpdIconsModule,\n UpdButtonModule,\n UpdListModule,\n UpdDropdownModule\n ],\n declarations: [\n TimePickerComponent,\n TimeSelectorComponent\n ],\n exports: [\n TimePickerComponent,\n TimeSelectorComponent\n ]\n})\nexport class UpdTimePickerModule {\n constructor(translocoService: TranslocoService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i5.TimeSelectorComponent","en","pt"],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form-controls-time-picker.mjs","sources":["../../../../libs/components/form-controls/time-picker/src/time-selector/time-selector.component.ts","../../../../libs/components/form-controls/time-picker/src/time-selector/time-selector.component.html","../../../../libs/components/form-controls/time-picker/src/time-picker.component.ts","../../../../libs/components/form-controls/time-picker/src/time-picker.component.html","../../../../libs/components/form-controls/time-picker/src/upd-time-picker.module.ts","../../../../libs/components/form-controls/time-picker/src/updevs-components-form-controls-time-picker.ts"],"sourcesContent":["import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'upd-time-selector',\n templateUrl: './time-selector.component.html',\n styleUrls: ['./time-selector.component.scss']\n})\nexport class TimeSelectorComponent implements OnInit, OnChanges {\n /**\n * Whether seconds should be selectable.\n */\n @Input() shouldSelectSeconds = false;\n /**\n * Whether the 24-hour format will be used or the 12-hour one (AM/PM)\n */\n @Input() shouldUse24hFormat = true;\n /**\n * Hour from which where the list will begin.\n */\n @Input() startingHour = 0;\n /**\n * Hour from which where the list will end.\n */\n @Input() endingHour = 23;\n /**\n * Interval between hours displayed.\n */\n @Input() hourInterval = 1;\n /**\n * Minute from which where the list will begin.\n */\n @Input() startingMinute = 0;\n /**\n * Minute from which where the list will end.\n */\n @Input() endingMinute = 59;\n /**\n * Interval between minutes displayed.\n */\n @Input() minuteInterval = 5;\n /**\n * Second from which where the list will begin.\n */\n @Input() startingSecond = 0;\n /**\n * Second from which where the list will end.\n */\n @Input() endingSecond = 59;\n /**\n * Interval between seconds displayed.\n */\n @Input() secondInterval = 10;\n /**\n * Custom list of hours to be displayed for selection.\n */\n @Input() customHours?: number[];\n /**\n * Custom list of minutes to be displayed for selection.\n */\n @Input() customMinutes?: number[];\n /**\n * Custom list of seconds to be displayed for selection.\n */\n @Input() customSeconds?: number[];\n\n hoursList: number[] = [];\n minutesList: number[] = [];\n secondsList: number[] = [];\n\n ngOnInit(): void {\n this.setupTimeLists();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setupTimeLists();\n }\n\n private setupTimeLists(): void {\n this.hoursList = [];\n this.minutesList = [];\n this.secondsList = [];\n\n if (!!this.customHours) {\n this.hoursList = this.customHours;\n } else {\n this.setupTimeList(this.hoursList, this.startingHour, this.endingHour, this.hourInterval);\n }\n\n if (!!this.customMinutes) {\n this.minutesList = this.customMinutes;\n } else {\n this.setupTimeList(this.minutesList, this.startingMinute, this.endingMinute, this.minuteInterval);\n }\n\n if (!!this.customSeconds) {\n this.secondsList = this.customSeconds;\n } else {\n this.setupTimeList(this.secondsList, this.startingSecond, this.endingSecond, this.secondInterval);\n }\n }\n\n private setupTimeList(list: number[], start: number, end: number, interval: number): void {\n for (let i = start; i <= end; i += interval) {\n list.push(i);\n }\n }\n}\n","<div class=\"d-flex\">\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (h of hoursList; track h) {\n <li>\n <div class=\"cell\">{{ h.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n <div class=\"time-dots-separator\">\n <span>:</span>\n </div>\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (m of minutesList; track m) {\n <li>\n <div class=\"cell\">{{ m.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n @if (shouldSelectSeconds) {\n <div class=\"time-dots-separator\">\n <span>:</span>\n </div>\n <div class=\"time-items-list\">\n <ul class=\"list\">\n @for (s of secondsList; track s) {\n <li>\n <div class=\"cell\">{{ s.toString().padStart(2, '0') }}</div>\n </li>\n }\n </ul>\n </div>\n }\n @if (!shouldUse24hFormat) {\n <div class=\"time-items-list\">\n <ul class=\"list\">\n <li>\n <div class=\"cell\">{{ 'AM' | transloco }}</div>\n <div class=\"cell\">{{ 'PM' | transloco }}</div>\n </li>\n </ul>\n </div>\n }\n</div>\n<div>\n <upd-button>{{ 'Select' | transloco }}</upd-button>\n</div>\n","import { Component, Input, OnInit, OnChanges, SimpleChanges, ViewChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'upd-time-picker',\n templateUrl: './time-picker.component.html',\n styleUrls: ['./time-picker.component.scss']\n})\nexport class TimePickerComponent implements OnInit, OnChanges {\n @ViewChild('input', { read: ElementRef }) inputRef?: ElementRef;\n\n /**\n * Maximum height of the dropdown.\n */\n @Input() dropdownMaxHeight = 300;\n /**\n * Whether the mask should be shown.\n */\n @Input() showMask = true;\n /**\n * Whether seconds should be selectable.\n */\n @Input() shouldSelectSeconds = false;\n /**\n * Whether the 24-hour format will be used or the 12-hour one (AM/PM)\n */\n @Input() shouldUse24hFormat = true;\n /**\n * Hour from which where the list will begin.\n */\n @Input() startingHour = 0;\n /**\n * Hour from which where the list will end.\n */\n @Input() endingHour = 23;\n /**\n * Interval between hours displayed.\n */\n @Input() hourInterval = 1;\n /**\n * Minute from which where the list will begin.\n */\n @Input() startingMinute = 0;\n /**\n * Minute from which where the list will end.\n */\n @Input() endingMinute = 59;\n /**\n * Interval between minutes displayed.\n */\n @Input() minuteInterval = 5;\n /**\n * Second from which where the list will begin.\n */\n @Input() startingSecond = 0;\n /**\n * Second from which where the list will end.\n */\n @Input() endingSecond = 59;\n /**\n * Interval between seconds displayed.\n */\n @Input() secondInterval = 10;\n /**\n * Custom list of hours to be displayed for selection.\n */\n @Input() customHours?: number[];\n /**\n * Custom list of minutes to be displayed for selection.\n */\n @Input() customMinutes?: number[];\n /**\n * Custom list of seconds to be displayed for selection.\n */\n @Input() customSeconds?: number[];\n\n maxWidth = 0;\n isDropdownOpen = false;\n\n get inputMask(): string {\n return this.shouldSelectSeconds ? 'Hh:m0:s0' : 'Hh:m0';\n }\n\n ngOnInit(): void {\n this.setupStyle();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setupStyle();\n }\n\n openDropdown(): void {\n this.isDropdownOpen = true;\n }\n\n private setupStyle(): void {\n let finalWidth = 195;\n\n if (this.shouldSelectSeconds) {\n finalWidth += 60 + 10;\n }\n\n if (!this.shouldUse24hFormat) {\n finalWidth += 60;\n }\n\n this.maxWidth = finalWidth;\n\n console.log('max w', this.maxWidth);\n }\n}\n","<upd-input #input [mask]=\"inputMask\" [maskConfig]=\"{showMaskTyped:showMask}\" [isInputGroupFlat]=\"true\">\n <ng-template updInputAppend>\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"calendar-time\"></upd-icon>\n </upd-button>\n </ng-template>\n</upd-input>\n<upd-dropdown [isOpen]=\"isDropdownOpen\" [dropdownReference]=\"inputRef\" [maxHeight]=\"dropdownMaxHeight\" [maxWidth]=\"maxWidth\"\n wrapperClasses=\"overflow-x-hidden\">\n <div class=\"time-options-wrapper\" [style.max-width.px]=\"maxWidth\">\n <upd-time-selector [shouldSelectSeconds]=\"shouldSelectSeconds\" [shouldUse24hFormat]=\"shouldUse24hFormat\"\n [startingHour]=\"startingHour\" [endingHour]=\"endingHour\" [hourInterval]=\"hourInterval\"\n [startingMinute]=\"startingMinute\" [endingMinute]=\"endingMinute\" [minuteInterval]=\"minuteInterval\"\n [startingSecond]=\"startingSecond\" [endingSecond]=\"endingSecond\" [secondInterval]=\"secondInterval\"\n [customHours]=\"customHours\" [customMinutes]=\"customMinutes\" [customSeconds]=\"customSeconds\"></upd-time-selector>\n </div>\n</upd-dropdown>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdListModule } from '@updevs/components/list';\nimport { UpdDropdownModule } from '@updevs/components/dropdown';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { TimePickerComponent } from './time-picker.component';\nimport { TimeSelectorComponent } from './time-selector/time-selector.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslocoModule,\n UpdInputModule,\n UpdIconsModule,\n UpdButtonModule,\n UpdListModule,\n UpdDropdownModule\n ],\n declarations: [\n TimePickerComponent,\n TimeSelectorComponent\n ],\n exports: [\n TimePickerComponent,\n TimeSelectorComponent\n ]\n})\nexport class UpdTimePickerModule {\n constructor(translocoService: TranslocoService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i5.TimeSelectorComponent","en","pt"],"mappings":"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"}