@libs-ui/components-tags 0.2.66

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libs-ui-components-tags.mjs","sources":["../../../../../libs-ui/components/tags/src/pipes/get-color.pipe.ts","../../../../../libs-ui/components/tags/src/tags.component.ts","../../../../../libs-ui/components/tags/src/tags.component.html","../../../../../libs-ui/components/tags/src/libs-ui-components-tags.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { colorStepContrastFromOrigin, get, rgbToHex } from '@libs-ui/utils';\n\n@Pipe({\n name: 'LibsUiComponentsTagsGetColorPipe',\n standalone: true\n})\nexport class LibsUiComponentsTagsGetColorPipe implements PipeTransform {\n\n transform(style: unknown, element: HTMLElement) {\n if (!style) {\n return {};\n }\n let color = get(style, 'color');\n let backgroundColor = get(style, 'backgroundColor') || get(style, 'background');\n if (color && color.includes('rgb') && color.match(/d+/g)?.length) {\n const [red, green, blue] = color.match(/d+/g);\n color = rgbToHex({ red, green, blue });\n }\n if (backgroundColor && backgroundColor.includes('rgb') && backgroundColor.match(/\\d+/g)?.length) {\n const [red, green, blue] = backgroundColor.match(/\\d+/g);\n backgroundColor = rgbToHex({ red, green, blue });\n }\n if (color && /(^#)[a-z0-9]{3,6}/ig.test(color)) {\n element.style.setProperty('--libs-ui-tags-item-icon-default', color);\n element.style.setProperty('--libs-ui-tags-item-icon-background-hover', color);\n }\n if (backgroundColor && /(^#)[a-z0-9]{3,6}/ig.test(backgroundColor)) {\n element.style.setProperty('--libs-ui-tags-item-icon-hover', backgroundColor);\n element.style.setProperty('--libs-ui-tags-item-icon-active', backgroundColor);\n element.style.setProperty('--libs-ui-tags-item-icon-background-active', colorStepContrastFromOrigin((backgroundColor), 60)?.light || '');\n }\n return style;\n }\n\n}\n","import { NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, OnDestroy, OnInit, output, signal, untracked, viewChild } from '@angular/core';\nimport { LibsUiComponentsAvatarComponent, TYPE_SIZE_AVATAR_CONFIG } from '@libs-ui/components-avatar';\nimport { IButton } from '@libs-ui/components-buttons-button';\nimport { IValidMaxItemSelected } from '@libs-ui/components-dropdown';\nimport { IFocusAndBlurEvent, IInputFunctionControlEvent, LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { IInputSearchConfig } from '@libs-ui/components-inputs-search';\nimport { IValid, IValidPattern } from '@libs-ui/components-inputs-valid';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { getFieldKeyByType, IListConfigItem, IListDataEmitKey, IListDataEmitMultiKey, IListFunctionControlEvent, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { IFlagMouse, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_DIRECTION, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { IHttpResponse } from '@libs-ui/interfaces-types';\nimport { IHttpRequestConfig, LibsUiHttpRequestService } from '@libs-ui/services-http-request';\nimport { cloneDeep, ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_VALID, ERROR_MESSAGE_PATTEN_VALID, escapeHtml, get, isNil, set, uuid } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject, Subscription, takeUntil } from 'rxjs';\nimport { ITagsConfig, ITagsFunctionControlEvent } from './interfaces/tags.interface';\nimport { LibsUiComponentsTagsGetColorPipe } from './pipes/get-color.pipe';\nimport { LibsUiComponentsClickOutsideDirective } from '@libs-ui/components-click-outside';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-tags',\n templateUrl: './tags.component.html',\n styleUrl: './tags.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule, NgTemplateOutlet, NgStyle, LibsUiComponentsClickOutsideDirective,\n LibsUiComponentsLabelComponent, LibsUiComponentsPopoverComponent,\n LibsUiComponentsInputsInputComponent, LibsUiComponentsAvatarComponent,\n LibsUiComponentsListComponent, LibsUiComponentsTagsGetColorPipe\n ],\n})\nexport class LibsUiComponentsTagsComponent implements OnInit, OnDestroy {\n\n /* PROPERTY */\n protected flagMouse = signal<IFlagMouse>({ isMouseEnter: false, isMouseEnterContent: false });\n protected loading = signal<boolean>(false);\n protected loadingDetail = signal<boolean>(false);\n protected keySearch = signal<string>('');\n protected valueInput = signal<string>('');\n protected itemsSelected = signal<Array<any>>([]);\n protected showList = signal<boolean>(false);\n protected positionList = signal<TYPE_POPOVER_DIRECTION | undefined>(undefined);\n protected keysSelected = signal<Array<unknown>>([]);\n protected disableWhenMaxItem = signal<boolean>(false);\n protected itemChangeUnSelect = signal<unknown | undefined>(undefined);\n protected focus = signal<boolean>(false);\n protected error = signal<IValid | undefined>(undefined);\n protected fieldKey = signal<string>('id');\n protected functionGetItemAutoAddList = computed(() => {\n if (!this.enterAutoAddTagToList()) {\n return;\n }\n return () => this.itemsSelected().filter(item => `${item[this.fieldKey()]}`.search(this.fakeId()) === 0).reverse();\n });\n\n private fakeId = signal<string>(uuid());\n private timeOutFlag = signal<number | undefined>(undefined);\n private timeOutChangeSearch = signal<number | undefined>(undefined);\n private timeOutCheckViewChange = signal<number | undefined>(undefined);\n private timeoutClickOutside = signal<number | undefined>(undefined);\n private clientHeight = signal<number | undefined>(undefined);\n private itemsOfList = signal<Array<unknown>>([]);\n private keySearchChange = new Subject<string>();\n private keySearchChangeSub = signal<Subscription | undefined>(undefined);\n private tempIgnoreEmit = signal<boolean>(false);\n private popoverFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private inputFunctionControl = signal<IInputFunctionControlEvent | undefined>(undefined);\n private typePopover = signal<TYPE_POPOVER_EVENT | undefined>(undefined);\n private listFunctionControl = signal<IListFunctionControlEvent | undefined>(undefined);\n private defaultItemsSelectedCurrent = signal<Array<unknown> | undefined>(undefined);\n private onDestroy = new Subject<void>();\n\n /* INPUT */\n readonly classIncludePopover = input<string>();\n readonly enterAutoAddTagToList = input<boolean>(false);\n readonly checkExitIsLabelInclude = input<boolean>();\n readonly checkExitByFields = input<Array<string>>();\n readonly parentBorderWidth = input<number>();\n readonly functionCheckPermissionCreateTag = input<() => boolean>(() => true);\n readonly placeholder = input<string>();\n readonly httpRequestDetailItemByIds = input<IHttpRequestConfig>();\n readonly fieldLabel = input<string>('label');\n readonly maxItemInput = input<number>();\n readonly zIndex = input<number>();\n readonly config = input<ITagsConfig>();\n readonly disable = input<boolean>();\n readonly readonly = input<boolean>();\n readonly labelConfig = input<ILabel>();\n readonly defaultItemsSelected = input<Array<unknown>>();\n readonly defaultKeysSelected = input<Array<unknown>>();\n readonly listSearchConfig = input<IInputSearchConfig>();\n readonly isSearchOnline = input<boolean>(false);\n readonly listSearchPadding = input<boolean>();\n readonly listDividerClassInclude = input<string>();\n readonly listConfig = input<IListConfigItem>();\n readonly listButtonsOther = input<Array<IButton>>();\n readonly listClickExactly = input<boolean>();\n readonly listBackgroundListCustom = input<string>();\n readonly listMaxItemShow = input<number>();\n readonly listHiddenInputSearchWhenHasSearchConfig = input<boolean>();\n readonly removeTextSearchWhenBlurInput = input<boolean>(true);\n readonly keysHiddenItem = model<Array<unknown>>()\n readonly keysDisableItem = input<Array<unknown>>()\n readonly ignoreEmitWhenSameDataSelected = input<boolean>();\n readonly singleSelected = input<boolean>();\n readonly classIncludeTagItem = input<string>()\n readonly classIconRemoveTagItem = input<string>()\n readonly showBorderActiveWhenFocusInput = input<boolean>()\n readonly fieldGetImage = input<string>();\n readonly imageSize = input<TYPE_SIZE_AVATAR_CONFIG>(16);\n readonly fieldGetTextAvatar = input<string>('user');\n readonly classAvatarInclude = input<string>();\n readonly getLastTextAfterSpace = input<boolean>();\n readonly validRequired = input<IValid>();\n readonly validMaxItemSelected = input<IValidMaxItemSelected>();\n readonly validPattern = input<Array<IValidPattern>>();\n readonly showListBellow = input<boolean>();\n readonly hiddenInputWhenReadonly = input<boolean>();\n\n /* OUTPUT */\n readonly outSelectMultiItem = output<Array<unknown>>();\n readonly outValidEvent = output<boolean>();\n readonly outFunctionsControl = output<ITagsFunctionControlEvent>();\n readonly outClickButtonOther = output<IButton>();\n readonly outShowListEvent = output<boolean>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n readonly outLoadingGetDetailSelected = output<boolean>();\n\n /* VIEW CHILD */\n private readonly tagsEl = viewChild.required<ElementRef>('tagsEl');\n\n /* INJECT*/\n private httpRequestService = inject(LibsUiHttpRequestService);\n\n constructor() {\n effect(() => {\n const maxItemInput = this.maxItemInput();\n untracked(() => {\n this.disableWhenMaxItem.set(false);\n if (maxItemInput && maxItemInput <= this.itemsSelected().length) {\n this.disableWhenMaxItem.set(true);\n }\n })\n })\n effect(() => {\n const listConfig = this.listConfig();\n untracked(() => {\n if (listConfig) {\n this.fieldKey.set(getFieldKeyByType(listConfig, 'id'))\n }\n })\n })\n effect(() => {\n const currentItems = this.defaultItemsSelected() || [];\n untracked(() => {\n const previousItems = this.defaultItemsSelectedCurrent() || [];\n this.defaultItemsSelectedCurrent.set(this.defaultItemsSelected());\n if (previousItems.length !== currentItems.length) {\n this.updateItemsSelected(currentItems);\n return;\n }\n for (const prevItem of previousItems) {\n if (!currentItems.some(item => get(item, this.fieldKey()) === get(prevItem, this.fieldKey()))) {\n this.updateItemsSelected(currentItems);\n break;\n }\n }\n })\n })\n effect(() => {\n const currentValue = this.defaultKeysSelected() || [];\n untracked(() => {\n const previousValue = this.keysSelected() || [];\n if (previousValue.length !== currentValue.length) {\n this.getDetailByIds(currentValue);\n return;\n }\n const keysNew = currentValue.filter(key => !this.itemsSelected().some(item => item[this.fieldKey()] === key));\n if (keysNew.length) {\n this.getDetailByIds(keysNew);\n }\n })\n })\n }\n\n ngOnInit() {\n if (!this.config()) {\n return;\n }\n const httpRequestDetailItemByIds = this.httpRequestDetailItemByIds();\n if (httpRequestDetailItemByIds && (!httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue || !httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue?.detailById)) {\n throw 'Config getDetailByIds yêu cầu tối thiểu các tham số guideAutoUpdateArgumentsValue, detailById';\n }\n const preprocessor = (keys: Array<unknown>) => {\n if (!keys || !(keys instanceof Array) || !keys.length) {\n return '';\n }\n return keys.join(';');\n };\n if (httpRequestDetailItemByIds?.guideAutoUpdateArgumentsValue?.detailById) {\n httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue.detailById.fieldGetValue = httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue.detailById.fieldGetValue ?? 'keys';\n httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue.detailById.preprocessor = httpRequestDetailItemByIds.guideAutoUpdateArgumentsValue.detailById.preprocessor ?? preprocessor;\n }\n this.outFunctionsControl.emit({\n valid: this.checkValid.bind(this),\n removeList: async () => this.popoverFunctionControl()?.removePopoverOverlay(),\n updateLabel: this.updateLabel.bind(this),\n clearItemSelected: this.clearItemSelected.bind(this),\n clearKeySearch: () => this.handlerValueChangeSearch(''),\n focusInput: () => this.focusInput(),\n getFakeId: async () => this.fakeId(),\n createTag: this.handlerEnterEvent.bind(this),\n removeItemSelected: this.handlerRemoveItemSelected.bind(this),\n resetError: this.resetError.bind(this),\n resetToDefaultDataSelected: this.resetToDefaultDataSelected.bind(this),\n updateItemSelectedDisable: this.updateItemSelectedDisable.bind(this),\n refreshListData: this.refreshListData.bind(this),\n setError: this.setError.bind(this)\n });\n }\n\n private async setError(message: string) {\n this.error.set({ message });\n }\n\n protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControl.set(event);\n }\n\n private async updateLabel() {\n if (!this.itemsSelected() || !this.itemsSelected().length) {\n return;\n }\n this.itemsSelected.update(items => {\n items.forEach(item => this.updateFieldLabel(item));\n return [...items]\n });\n }\n\n private updateFieldLabel(item: unknown) {\n const ref = get(item, 'ref') || item;\n const getValue = this.config()?.getValue;\n set(item, 'fieldLabel', `${get(ref, this.fieldLabel()) || ref.label || ref.name || ' '}`);\n if (getValue) {\n set(item, 'fieldLabel', getValue(ref) || ' ');\n }\n }\n\n private async clearItemSelected(ignoreValid = false) {\n if (!this.itemsSelected() || !this.itemsSelected().length) {\n return;\n }\n const length = this.itemsSelected().length - 1;\n this.tempIgnoreEmit.set(true);\n this.itemsSelected().forEach((item, index) => {\n if (index === length) {\n this.tempIgnoreEmit.set(false);\n }\n this.handlerRemoveItemSelected({ stopPropagation: () => { return } } as Event, item, ignoreValid);\n });\n }\n\n private updateItemsSelected(itemsSelected: Array<unknown>, ignoreValidate = true, ignoreEmitKeySelectedWhenItemsNotExitsEmpty?: boolean) {\n if (!itemsSelected || !itemsSelected.length) {\n return;\n }\n const itemsNotExits: Array<unknown> = [];\n itemsSelected.forEach(item => {\n if (!item) {\n return;\n }\n let fieldLabel = `${get(item, this.fieldLabel()) || get(item, 'label') || get(item, 'name') || ' '}`;\n const getValue = this.config()?.getValue;\n if (getValue) {\n fieldLabel = getValue(item) || ' ';\n }\n const itemExits = this.checkExits(fieldLabel, get(item, this.fieldKey()));\n if (itemExits?.isItemSelected) {\n Object.assign(itemExits.item, item);\n return;\n }\n itemsNotExits.push(item);\n });\n this.processData(itemsNotExits, ignoreValidate, ignoreEmitKeySelectedWhenItemsNotExitsEmpty);\n }\n\n protected handlerPopoverEvent(type: TYPE_POPOVER_EVENT) {\n this.typePopover.set(type);\n if (type === 'click') {\n return;\n }\n if (type === 'remove') {\n this.showList.set(false);\n this.outShowListEvent.emit(false);\n this.inputFunctionControl()?.blur();\n return;\n }\n this.showList.set(true);\n this.outShowListEvent.emit(true);\n this.inputFunctionControl()?.focus();\n }\n\n protected handlerPopoverContentEvent(position: TYPE_POPOVER_DIRECTION) {\n if (this.positionList() === position) {\n return;\n }\n this.positionList.set(position);\n }\n\n protected async handlerRemoveItemSelected(event: Event, itemRemove: unknown, ignoreValid?: boolean) {\n event.stopPropagation();\n this.flagMouse.set({ isMouseEnter: true, isMouseEnterContent: true });\n this.timeOutFlag.set(setTimeout(() => this.flagMouse.set({ isMouseEnter: false, isMouseEnterContent: false }), 250));\n this.itemsSelected.update(items => items.filter(item => ((isNil(get(itemRemove, this.fieldKey())) || isNil(get(item, this.fieldKey()))) && get(itemRemove, 'fieldLabel').trim() !== item.fieldLabel.trim() || (!isNil(get(itemRemove, this.fieldKey())) && !isNil(get(item, this.fieldKey())) && get(itemRemove, this.fieldKey()) !== get(item, this.fieldKey())))));\n this.itemChangeUnSelect.set(itemRemove);\n if (itemRemove && !isNil(get(itemRemove, this.fieldKey())) && `${get(itemRemove, this.fieldKey())}`.search(this.fakeId()) >= 0) {\n this.keysHiddenItem.update(items => ([...items || [], get(itemRemove, this.fieldKey())]));\n }\n this.keysSelected.set(Array.from(new Set(this.itemsSelected().map(item => get(item, this.fieldKey())))));\n this.disableWhenMaxItem.set(false);\n const maxItemInput = this.maxItemInput();\n if (maxItemInput && maxItemInput <= this.itemsSelected().length) {\n this.disableWhenMaxItem.set(true);\n }\n if (!this.showList()) {\n this.outSelectMultiItem.emit(this.getItemSelected());\n this.checkViewChange(true, ignoreValid);\n return;\n }\n if (this.showList()) {\n this.tempIgnoreEmit.set(true);\n }\n if (!ignoreValid) {\n this.checkValid();\n }\n this.tempIgnoreEmit.set(false);\n }\n\n protected handlerInputFunctionControl(event: IInputFunctionControlEvent) {\n this.inputFunctionControl.set(event);\n }\n\n protected handlerFocusAndBlurEvent(event: IFocusAndBlurEvent) {\n this.focus.set(false);\n if (event.name === 'focus') {\n this.focus.set(true);\n }\n if (event.name === 'blur' && this.typePopover()?.includes('mouseleave') && this.validRequired() && (!this.itemsSelected() || !this.itemsSelected().length)) {\n this.checkValid();\n }\n }\n\n protected handlerClickOutside(event: Event) {\n event.stopPropagation();\n clearTimeout(this.timeoutClickOutside());\n this.timeoutClickOutside.set(setTimeout(() => {\n if (this.showList() || !this.removeTextSearchWhenBlurInput()) {\n return;\n }\n this.valueInput.set('');\n this.keySearch.set('');\n this.inputFunctionControl()?.resetValue();\n }, 250));\n }\n\n protected async handlerEnterEvent() {\n if (!this.valueInput() || !`${this.valueInput()}`.trim()) {\n return;\n }\n if (this.config()?.ignoreEnterCreateNewItem) {\n const itemExits = this.checkExits();\n if (!itemExits || itemExits.isItemSelected) {\n return;\n }\n this.processData([itemExits.item]);\n this.handlerValueChangeSearch('');\n return;\n }\n if (!this.functionCheckPermissionCreateTag()()) {\n return;\n }\n const itemExits = this.checkExits();\n const valueInput = `${this.valueInput()}`.trim();\n const newItem = { [this.fieldLabel()]: valueInput };\n if (this.fieldKey()) {\n newItem[this.fieldKey()] = `${this.fakeId()}${valueInput}${uuid()}`;\n }\n if (!itemExits) {\n if (this.checkPattern([newItem])) {\n const itemBuildValue = { ...newItem };\n const buildValue = this.config()?.buildValue;\n if (buildValue) {\n buildValue(itemBuildValue, newItem[this.fieldLabel()]);\n }\n newItem[this.fieldLabel()] = itemBuildValue[this.fieldLabel()];\n if (this.enterAutoAddTagToList()) {\n this.listFunctionControl()?.updateData({ newData: [newItem], functionCustomAddDataToStore: (newData, store) => store.update(value => ([...newData, ...value])) })\n }\n this.processData([newItem]);\n this.handlerValueChangeSearch('');\n }\n return;\n }\n if (itemExits.isItemSelected) {\n return;\n }\n this.processData([itemExits.item]);\n this.handlerValueChangeSearch('');\n }\n\n protected async handlerValueChangeSearch(value: string | number) {\n this.valueInput.set(`${value}`);\n if (!`${value || ''}`.trim()) {\n this.keySearchChangeSub()?.unsubscribe();\n this.keySearchChangeSub.set(undefined);\n this.timeOutChangeSearch.set(setTimeout(() => this.keySearch.set('')));\n if (!this.config()?.ignoreEnterCreateNewItem) {\n this.checkValid();\n }\n return;\n }\n if (this.config()?.ignoreInput) {\n return;\n }\n if (!this.keySearchChangeSub()) {\n this.setEventKeySearch();\n }\n this.keySearchChange.next(`${(value || '')}`.trim());\n }\n\n private setEventKeySearch() {\n if (this.keySearchChangeSub()) {\n return;\n }\n this.keySearchChangeSub.set(this.keySearchChange.pipe(debounceTime(1500), takeUntil(this.onDestroy)).subscribe(value => this.keySearch.set(`${(value || '')}`.trim())));\n }\n\n private processData(items: Array<unknown>, ignoreValidate = false, ignoreEmitKeySelectedWhenItemsNotExitsEmpty?: boolean) {\n if (!items || !items.length) {\n const itemsSelected = this.getItemSelected();\n if (!ignoreEmitKeySelectedWhenItemsNotExitsEmpty) {\n this.outSelectMultiItem.emit(itemsSelected);\n }\n this.keysSelected.set(Array.from(new Set(itemsSelected?.map(item => get(item, this.fieldKey())))));\n this.checkViewChange(false, ignoreValidate);\n return;\n }\n const itemsMapping = items.map(item => {\n const ref = get(item, 'ref') || item;\n item = cloneDeep(ref);\n set(item, 'ref', ref);\n this.updateFieldLabel(item);\n const getDisableItem = this.config()?.getDisableItem;\n const getStyles = this.config()?.getStyles;\n const getStylesTagSpecific = this.config()?.getStylesTagSpecific;\n if (getDisableItem) {\n set(item, 'disableItem', getDisableItem(item));\n }\n if (getStyles) {\n set(item, 'ngStyles', getStyles(item));\n }\n if (getStylesTagSpecific) {\n const type = getStylesTagSpecific(item);\n if (type === 'specific_violet_color') {\n set(item, 'ngStyles', { color: '#7239EA', backgroundColor: '#F1EBFD' });\n }\n }\n return item;\n });\n this.itemsSelected.update(items => [...items, ...itemsMapping]);\n this.keysSelected.set(Array.from(new Set(this.itemsSelected().map(item => get(item, this.fieldKey())))));\n this.outSelectMultiItem.emit(this.getItemSelected());\n this.checkViewChange(false, ignoreValidate);\n }\n\n protected handlerDataChange(items: Array<unknown>) {\n this.itemsOfList.set(items);\n this.popoverFunctionControl()?.updatePopoverOverlayPosition();\n if (!this.config()?.ignoreInput) {\n this.inputFunctionControl()?.focus();\n }\n }\n\n protected handlerLoading(event: boolean) {\n this.loading.set(event);\n }\n\n private checkViewChange(ignoreScrollBottom: boolean, ignoreValidate = false) {\n this.disableWhenMaxItem.set(false);\n const maxItemInput = this.maxItemInput();\n if (maxItemInput && maxItemInput <= this.itemsSelected().length) {\n this.disableWhenMaxItem.set(true);\n }\n this.timeOutCheckViewChange.set((setTimeout(() => {\n const scrollHeight = this.tagsEl()?.nativeElement.scrollHeight;\n if (!isNil(scrollHeight) && this.clientHeight() !== scrollHeight && this.positionList() !== 'top') {\n this.popoverFunctionControl()?.updatePopoverOverlayPosition();\n }\n if (!ignoreScrollBottom && this.tagsEl() && this.tagsEl().nativeElement) {\n this.tagsEl().nativeElement.scrollTop = scrollHeight\n }\n this.clientHeight.set(scrollHeight);\n }, 250)));\n if (!ignoreValidate) {\n this.checkValid();\n }\n }\n\n private checkExits(label?: string, id?: string) {\n let itemExits;\n if (!isNil(id) && !`${id}`.includes(this.fakeId()) && this.fieldKey()) {\n itemExits = this.itemsSelected().find(item => !isNil(get(item, this.fieldKey())) && `${get(item, this.fieldKey())}`.trim() === `${id}`);\n if (itemExits) {\n return { item: itemExits, isItemSelected: !!itemExits };\n }\n return;\n }\n if (!label) {\n label = `${(this.valueInput || '')}`.trim();\n }\n itemExits = this.itemsSelected().find(item => !isNil(get(item, 'fieldLabel')) && (get(item, 'fieldLabel').trim() === label?.trim()) || (this.checkExitIsLabelInclude() && get(item, 'fieldLabel').trim().includes(label?.trim())) || (this.checkExitByFields() && this.checkExitByFields()?.some(field => get(item, field)?.trim() === label?.trim() || get(item, field)?.trim() === escapeHtml(label?.trim() || '') || escapeHtml(get(item, field)?.trim() || ' ') === escapeHtml(label?.trim() || ''))));\n if (itemExits) {\n return { item: itemExits, isItemSelected: true };\n }\n itemExits = this.itemsOfList().find(item => !isNil(get(item, 'fieldLabel')) && (get(item, 'fieldLabel').trim().includes() === label?.trim()) || (this.checkExitIsLabelInclude() && get(item, 'fieldLabel').trim().includes(label?.trim())) || (this.checkExitByFields() && this.checkExitByFields()?.some(field => get(item, field)?.trim() === label?.trim() || escapeHtml(get(item, field)?.trim() || ' ') === escapeHtml(label?.trim() || '') || get(item, field)?.trim() === escapeHtml(label?.trim() || ''))));\n if (itemExits) {\n return { item: itemExits, isItemSelected: false };\n }\n return;\n }\n\n protected handlerSelectedKey(event: IListDataEmitKey | undefined) {\n if (!event || !event.item) {\n return;\n }\n if (!isNil(event?.key)) {\n this.popoverFunctionControl()?.removePopoverOverlay();\n }\n if (this.itemsSelected()[0]) {\n this.tempIgnoreEmit.set(true);\n this.handlerRemoveItemSelected({ stopPropagation: () => { return } } as Event, this.itemsSelected()[0], this.itemsSelected()[0].disableItem);\n this.tempIgnoreEmit.set(false);\n }\n this.updateItemsSelected([event.item], !!this.itemsSelected()[0]); // Bug #36075\n }\n\n private getFlagEmitSelectedItem(keys: Array<unknown>) {\n if (!this.ignoreEmitWhenSameDataSelected() || keys.length !== this.itemsSelected().length) {\n return false;\n }\n for (const key of keys) {\n if (!this.itemsSelected().some(item => get(item, this.fieldKey()) === key)) {\n return false;\n }\n }\n return true;\n }\n\n protected async handlerSelectMultiKey(event: IListDataEmitMultiKey | undefined) {\n if (!event) {\n return;\n }\n const keys = [];\n const items: Array<unknown> = [];\n if (event.keys && event.keys.length && (!event.mapKeys || !event.mapKeys.length)) {\n keys.push(...event.keys);\n }\n const ignoreEmitKeySelectedWhenItemsNotExitsEmpty = this.getFlagEmitSelectedItem(cloneDeep(event.keys ?? []));\n event.mapKeys.forEach(mapKey => {\n if (isNil(mapKey.key)) {\n return;\n }\n if (mapKey.item) {\n return items.push(mapKey.item);\n }\n if (!Array.isArray(this.itemsSelected)) {\n return keys.push(mapKey.key);\n }\n const item = this.itemsSelected.find(item => get(item, this.fieldKey()) === mapKey.key);\n if (item) {\n return items.push(item);\n }\n return keys.push(mapKey.key);\n });\n if (keys.length) {\n const resultData: Array<unknown> = await this.getDetailByIds(keys, true);\n items.push(...resultData);\n }\n const messageEmpty = this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID;\n let ignoreValidate = true;\n if (messageEmpty === this.error()?.message) {\n ignoreValidate = false;\n }\n const itemRemove = this.itemsSelected().find(itemSelected => get(itemSelected, this.fieldKey()) && !(items.some(item => get(itemSelected, this.fieldKey()) === get(item, this.fieldKey()))));\n this.itemsSelected.update(itemsSelected => itemsSelected.filter(itemSelected => !get(itemSelected, this.fieldKey()) || (event.keys.length && items.some(item => get(itemSelected, this.fieldKey()) === get(item, this.fieldKey())))));\n if (itemRemove) {\n if (this.enterAutoAddTagToList() && !isNil(get(itemRemove, this.fieldKey())) && `${get(itemRemove, this.fieldKey())}`.search(this.fakeId()) >= 0) {\n this.keysHiddenItem.update(items => [...(items || []), get(itemRemove, this.fieldKey())]);\n }\n }\n if (!event.keys.length) {\n this.checkValid();\n this.keysSelected.set(Array.from(new Set(this.itemsSelected()?.map(item => get(item, this.fieldKey())))));\n this.outSelectMultiItem.emit(this.getItemSelected());\n this.checkViewChange(false, ignoreValidate);\n return;\n }\n this.updateItemsSelected(items, ignoreValidate, ignoreEmitKeySelectedWhenItemsNotExitsEmpty);\n this.checkValid();\n }\n\n private async getDetailByIds(keys: Array<unknown>, isResponseData?: boolean): Promise<Array<unknown>> {\n const httpRequestDetailItemByIds = this.httpRequestDetailItemByIds();\n if (!httpRequestDetailItemByIds || this.loadingDetail() || !(keys instanceof Array) || !keys.length) {\n return [];\n }\n this.updateLoadingDetail(true);\n const cloneHttpDetailConfig = cloneDeep(httpRequestDetailItemByIds);\n try {\n const { argumentsValue, guideAutoUpdateArgumentsValue } = cloneHttpDetailConfig;\n if (!guideAutoUpdateArgumentsValue || !guideAutoUpdateArgumentsValue.detailById) {\n return [];\n }\n guideAutoUpdateArgumentsValue.detailById.fieldGetValue = 'keys';\n this.httpRequestService.updateArguments(argumentsValue, { keys: keys }, {}, '', false, false, guideAutoUpdateArgumentsValue);\n const result = (await this.httpRequestService.callApi(cloneHttpDetailConfig)) as IHttpResponse<Array<unknown>>;\n if (!isResponseData) {\n this.updateItemsSelected(result.data || []);\n this.updateLoadingDetail(false);\n return [];\n }\n this.updateLoadingDetail(false);\n return result.data || [];\n } catch (error) {\n console.log(error);\n this.updateLoadingDetail(false);\n }\n return [];\n }\n\n private async checkValid() {\n const valid = this.itemsSelected() && this.itemsSelected().length ? true : false;\n const stateError = !!this.error();\n this.error.set(undefined);\n if (this.validRequired() && !valid) {\n this.error.set({ ...this.validRequired(), message: this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID });\n }\n if (!this.error()) {\n this.checkPattern(this.itemsSelected());\n this.checkMaxItemSelectedValid();\n }\n if (!this.tempIgnoreEmit()) {\n this.outValidEvent.emit(!this.error());\n }\n if (stateError !== !!this.error()) {\n this.popoverFunctionControl()?.updatePopoverOverlayPosition();\n }\n return !this.error();\n }\n\n private checkMaxItemSelectedValid() {\n const validMaxItemSelected = this.validMaxItemSelected();\n if (validMaxItemSelected && this.itemsSelected().length > validMaxItemSelected.value) {\n this.error.set({ ...validMaxItemSelected, message: validMaxItemSelected.message || ERROR_MESSAGE_MAX_VALID, interpolateParams: { value: validMaxItemSelected.value } });\n return false;\n }\n return true;\n }\n\n private checkPattern(items: Array<unknown>): boolean {\n const validPattern = this.validPattern();\n if (!validPattern || !validPattern.length || !items || !items.length) {\n return true;\n }\n for (const valid of validPattern) {\n if (valid.pattern && items.some(item => !valid.pattern.test(get(item, this.fieldLabel())))) {\n this.error.set({ ...valid, message: valid.message || ERROR_MESSAGE_PATTEN_VALID });\n return false;\n }\n }\n return true;\n }\n\n protected handlerClickButtonOther(event: IButton) {\n this.outClickButtonOther.emit(event);\n }\n\n private getItemSelected(): Array<unknown> {\n return this.itemsSelected().map(item => {\n const itemMap = { ...item };\n if (!isNil(get(itemMap, this.fieldKey())) && `${get(itemMap, this.fieldKey())}`.search(this.fakeId()) === 0) {\n set(itemMap, this.fieldKey(), '');\n }\n return itemMap;\n });\n }\n\n protected async resetToDefaultDataSelected(itemSelected?: Array<unknown>) {\n if (itemSelected && Array.isArray(itemSelected)) {\n this.itemsSelected.set([]);\n this.updateItemsSelected(itemSelected);\n return;\n }\n itemSelected = new Array<unknown>();\n if (!this.fieldKey()) {\n return;\n }\n const defaultKeysSelected = this.defaultKeysSelected();\n if (defaultKeysSelected && Array.isArray(defaultKeysSelected)) {\n this.itemsSelected.set([]);\n this.getDetailByIds(defaultKeysSelected);\n return;\n }\n const defaultItemsSelected = this.defaultItemsSelected();\n if (defaultItemsSelected && Array.isArray(defaultItemsSelected)) {\n this.itemsSelected.set([]);\n this.updateItemsSelected(defaultItemsSelected);\n return;\n }\n }\n\n protected handlerFunctionControlList(event: IListFunctionControlEvent) {\n this.listFunctionControl.set(event);\n }\n\n protected async focusInput() {\n this.inputFunctionControl()?.focus();\n }\n\n protected handlerChangeFlagMouse(event: IFlagMouse) {\n this.outChangStageFlagMouse.emit(event);\n }\n\n protected handlerChangStageFlagMouse(flag: IFlagMouse) {\n this.flagMouse.set(flag);\n }\n\n private async resetError() {\n this.error.set(undefined);\n }\n\n private updateLoadingDetail(event: boolean) {\n this.loadingDetail.set(event);\n this.outLoadingGetDetailSelected.emit(event);\n }\n\n private async updateItemSelectedDisable() {\n const getDisableItem = this.config()?.getDisableItem;\n if (!getDisableItem) {\n return;\n }\n this.itemsSelected.update(itemsSelected => itemsSelected.map(item => ({ ...item, disableItem: getDisableItem(item) })));\n }\n\n private async refreshListData() {\n this.listFunctionControl()?.refresh();\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n clearTimeout(this.timeOutFlag());\n clearTimeout(this.timeOutChangeSearch());\n clearTimeout(this.timeOutCheckViewChange());\n clearTimeout(this.timeoutClickOutside());\n }\n\n}\n","<div class=\"flex flex-col w-full h-full\">\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft || disable() || loading() || loadingDetail()\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight || disable() || loading() || loadingDetail()\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleActive]=\"labelConfig.toggleDisable || disable() || loading() || loadingDetail()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"labelConfig.count\" />\n }\n <libs_ui-components-popover class=\"w-full h-full\"\n [ignoreShowPopover]=\"disable() || readonly() || !!config()?.ignoreShowList || false\"\n [ignoreCursorPointerModeLikeClick]=\"true\"\n [elementRefCustom]=\"tagsEl\"\n [mode]=\"!config()?.ignoreInput ? 'click' : 'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [flagMouse]=\"flagMouse()\"\n [config]=\"{\n animationConfig: config()?.animationConfig || {},\n zIndex: zIndex() || 1000,\n widthByParent: true,\n parentBorderWidth: parentBorderWidth() ?? 0,\n maxHeight: 2048,\n maxWidth: 2048,\n direction: config()?.directionList || 'bottom',\n directionDistance: 2,\n template: !showListBellow() ? listViewEl : undefined,\n whiteTheme: true,\n ignoreArrow: true,\n classInclude: 'rounded-[4px] ' + classIncludePopover() + ((!listConfig()?.ignoreShowDataWhenNotSearch || keySearch()) ? ' libs-ui-border-general' : ''),\n position: { mode: 'start', distance: 0 }\n }\"\n (outFunctionsControl)=\"handlerPopoverFunctionControlEvent($event)\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outEventPopoverContent)=\"handlerPopoverContentEvent($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\">\n <div class=\"relative\"\n [class.cursor-pointer]=\"!disable() && !readonly()\">\n @if (config()?.uiLikeDropdown) {\n <i class=\"flex text-[16px] absolute right-[16px] top-[8px] libs-ui-icon-move-right rotate-90 z-[1]\"\n [class.text-[#6a7383]]=\"!readonly() && !readonly()\"\n [class.libs-ui-readonly]=\"readonly()\"\n [class.libs-ui-disable]=\"disable()\">\n </i>\n }\n <div #tagsEl\n [class]=\"'libs-ui-tags ' + (config()?.classInclude || '') + (readonly() ? (config()?.classCustomWhenReadOnly || ' libs-ui-readonly') : '')\"\n [class.libs-ui-tags-not-popup]=\"(!showList() && !showBorderActiveWhenFocusInput()) || (!focus() && showBorderActiveWhenFocusInput())\"\n [class.libs-ui-tags-error]=\"!!error() && !config()?.ignoreShowError\"\n [class.!pr-[32px]]=\"config()?.uiLikeDropdown\"\n [class.bg-[#f8f9fa]]=\"disable() || readonly()\"\n [class.libs-ui-border-primary-general]=\"focus() && showBorderActiveWhenFocusInput()\"\n LibsUiComponentsClickOutsideDirective\n (outOutside)=\"handlerClickOutside($event)\">\n @for (item of itemsSelected(); track item[fieldKey()]) {\n <div [ngStyle]=\"item?.bullet || item?.ngStyles\"\n [class]=\"classIncludeTagItem() || ''\"\n [class.libs-ui-tags-readonly]=\"item.disableItem\"\n [class.libs-ui-tags-item]=\"!item.disableItem\"\n [class.cursor-default]=\"disable() || readonly()\">\n @if (fieldGetImage(); as fieldGetImage) {\n <div class=\"flex items-center justify-center h-full\">\n <libs_ui-components-avatar [classInclude]=\"classAvatarInclude() || 'mr-[8px]'\"\n [size]=\"imageSize()\"\n [linkAvatar]=\"item[fieldGetImage]\"\n [linkAvatarError]=\"config()?.linkImageError\"\n [idGenColor]=\"item[fieldGetTextAvatar()]\"\n [textAvatar]=\"item[fieldGetTextAvatar()]\"\n [getLastTextAfterSpace]=\"getLastTextAfterSpace()\" />\n </div>\n }\n <span class=\"libs-ui-font-h6r\"\n [innerHtml]=\"(item.fieldLabel || ' ') | translate\">\n </span>\n @if (!disable() && !item.disableItem && !readonly()) {\n <div class=\"flex items-center justify-center ml-[8px]\">\n <i #iconCloseEl\n [attr.specificStyle]=\"!!(item?.bullet || item?.ngStyles)\"\n [class]=\"'flex text-[16px] ' + (classIconRemoveTagItem() || 'libs-ui-icon-close')\"\n [class.cursor-pointer]=\"!disable() && !loading() && !loadingDetail()\"\n [class.pointer-events-none]=\"disable() || loading() || loadingDetail()\"\n [ngStyle]=\"(item?.bullet || item?.ngStyles) | LibsUiComponentsTagsGetColorPipe:iconCloseEl\"\n (click)=\"handlerRemoveItemSelected($event,item)\"></i>\n </div>\n }\n </div>\n }\n @if (!singleSelected() || (singleSelected() && !itemsSelected().length)) {\n @if (!config()?.ignoreInput && !config()?.uiLikeDropdown && (!hiddenInputWhenReadonly() || (hiddenInputWhenReadonly() && !readonly()))) {\n <libs_ui-components-inputs-input class=\"grow\"\n [class.mb-[4px]]=\"itemsSelected().length\"\n [classInclude]=\"'w-full bg-transparent' + (config()?.classInputInclude || 'px-[4px] min-w-[30px]')\"\n [defaultHeight]=\"24\"\n [placeholder]=\"readonly() ? '' : (placeholder() || 'i18n_import_content')\"\n [noBorder]=\"true\"\n [(value)]=\"valueInput\"\n [disable]=\"disable() || loading() || loadingDetail() || disableWhenMaxItem()\"\n [readonly]=\"readonly()\"\n (outEnterEvent)=\"handlerEnterEvent()\"\n (valueChange)=\"handlerValueChangeSearch($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlurEvent($event)\"\n (outFunctionsControl)=\"handlerInputFunctionControl($event)\" />\n }\n @if (config()?.ignoreInput && config()?.uiLikeDropdown && !itemsSelected().length) {\n <div class=\"flex items-center pb-[4px] pt-[2px] ml-[11px] libs-ui-font-h5r\"\n [class.text-[#9ca2ad]]=\"disable()\">\n {{ (placeholder() || 'i18n_select_value') | translate }}\n </div>\n }\n }\n </div>\n @if (error() && !config()?.ignoreShowError) {\n <div class=\"text-[#ee2d41] libs-ui-font-h7r mt-[8px]\">{{ (error()?.message || ' ') | translate:(error()?.interpolateParams || {}) }}</div>\n }\n </div>\n </libs_ui-components-popover>\n</div>\n@if (showListBellow()) {\n <ng-container *ngTemplateOutlet=\"listViewEl\"></ng-container>\n}\n<ng-template #listViewEl>\n @if (listConfig(); as listConfig) {\n <libs_ui-components-list [searchConfig]=\"listSearchConfig() || {classInclude: 'hidden', iconLeftClass: 'hidden'}\"\n [isSearchOnline]=\"isSearchOnline()\"\n [zIndex]=\"zIndex()\"\n [keySearch]=\"keySearch()\"\n [config]=\"listConfig\"\n [disable]=\"disable() || loadingDetail() || disableWhenMaxItem()\"\n [searchPadding]=\"listSearchPadding()\"\n [maxItemShow]=\"listMaxItemShow() || 6\"\n [multiKeySelected]=\"keysSelected()\"\n [clickExactly]=\"false\"\n [keysHiddenItem]=\"keysHiddenItem()\"\n [keysDisableItem]=\"keysDisableItem()\"\n [dividerClassInclude]=\"listDividerClassInclude() ?? 'hidden'\"\n [buttonsOther]=\"listButtonsOther()\"\n [backgroundListCustom]=\"listBackgroundListCustom()\"\n [itemChangeUnSelect]=\"itemChangeUnSelect()\"\n [functionGetItemsAutoAddList]=\"functionGetItemAutoAddList()\"\n [hiddenInputSearch]=\"listHiddenInputSearchWhenHasSearchConfig()\"\n (outFunctionsControl)=\"handlerFunctionControlList($event)\"\n (outSelectKey)=\"handlerSelectedKey($event)\"\n (outSelectMultiKey)=\"handlerSelectMultiKey($event)\"\n (outChangeView)=\"handlerDataChange($event)\"\n (outClickButtonOther)=\"handlerClickButtonOther($event)\"\n (outChangStageFlagMousePopover)=\"handlerChangStageFlagMouse($event)\"\n (outLoading)=\"handlerLoading($event)\" />\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './tags.component';
2
+ export * from './interfaces/tags.interface';
@@ -0,0 +1,44 @@
1
+ import { TYPE_SIZE_AVATAR_CONFIG } from "@libs-ui/components-avatar";
2
+ import { TYPE_POPOVER_DIRECTION } from "@libs-ui/components-popover";
3
+ export interface ITagsConfig {
4
+ getValue?: (item: unknown) => string;
5
+ buildValue?: (item: unknown, value: string) => void;
6
+ getStyles?: (item: unknown) => Record<string, string>;
7
+ getDisableItem?: (item: unknown) => boolean;
8
+ getStylesTagSpecific?: (item: unknown) => 'specific_violet_color' | undefined | void;
9
+ imageSize?: TYPE_SIZE_AVATAR_CONFIG;
10
+ fieldGetImage?: string;
11
+ fieldGetTextAvatar?: string;
12
+ linkImageError?: string;
13
+ getLastTextAfterSpace?: boolean;
14
+ ignoreInput?: boolean;
15
+ classInputInclude?: string;
16
+ ignoreShowList?: boolean;
17
+ ignoreEnterCreateNewItem?: boolean;
18
+ isHiddenItemWhenSelected?: boolean;
19
+ uiLikeDropdown?: boolean;
20
+ ignoreShowError?: boolean;
21
+ classInclude?: string;
22
+ classCustomWhenReadOnly?: string;
23
+ animationConfig?: {
24
+ time?: number;
25
+ distance?: number;
26
+ };
27
+ directionList?: TYPE_POPOVER_DIRECTION;
28
+ }
29
+ export interface ITagsFunctionControlEvent {
30
+ valid: () => Promise<boolean>;
31
+ updateLabel: () => Promise<void>;
32
+ clearItemSelected: (ignoreValid?: boolean) => Promise<void>;
33
+ clearKeySearch: () => Promise<void>;
34
+ focusInput: () => Promise<void>;
35
+ removeList: () => Promise<void>;
36
+ getFakeId: () => Promise<string>;
37
+ createTag: () => Promise<void>;
38
+ resetError: () => Promise<void>;
39
+ removeItemSelected: (event: Event, item: unknown) => Promise<void>;
40
+ resetToDefaultDataSelected: (item?: Array<unknown>) => Promise<void>;
41
+ updateItemSelectedDisable: () => Promise<void>;
42
+ refreshListData: () => Promise<void>;
43
+ setError?: (message: string) => Promise<void>;
44
+ }
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@libs-ui/components-tags",
3
+ "version": "0.2.66",
4
+ "peerDependencies": {
5
+ "@angular/common": "^18.2.0",
6
+ "@angular/core": "^18.2.0"
7
+ },
8
+ "sideEffects": false,
9
+ "module": "fesm2022/libs-ui-components-tags.mjs",
10
+ "typings": "index.d.ts",
11
+ "exports": {
12
+ "./package.json": {
13
+ "default": "./package.json"
14
+ },
15
+ ".": {
16
+ "types": "./index.d.ts",
17
+ "esm2022": "./esm2022/libs-ui-components-tags.mjs",
18
+ "esm": "./esm2022/libs-ui-components-tags.mjs",
19
+ "default": "./fesm2022/libs-ui-components-tags.mjs"
20
+ }
21
+ },
22
+ "dependencies": {
23
+ "tslib": "^2.3.0"
24
+ }
25
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LibsUiComponentsTagsGetColorPipe implements PipeTransform {
4
+ transform(style: unknown, element: HTMLElement): {};
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsTagsGetColorPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<LibsUiComponentsTagsGetColorPipe, "LibsUiComponentsTagsGetColorPipe", true>;
7
+ }
@@ -0,0 +1,143 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { TYPE_SIZE_AVATAR_CONFIG } from '@libs-ui/components-avatar';
3
+ import { IButton } from '@libs-ui/components-buttons-button';
4
+ import { IValidMaxItemSelected } from '@libs-ui/components-dropdown';
5
+ import { IFocusAndBlurEvent, IInputFunctionControlEvent } from '@libs-ui/components-inputs-input';
6
+ import { IInputSearchConfig } from '@libs-ui/components-inputs-search';
7
+ import { IValid, IValidPattern } from '@libs-ui/components-inputs-valid';
8
+ import { ILabel } from '@libs-ui/components-label';
9
+ import { IListConfigItem, IListDataEmitKey, IListDataEmitMultiKey, IListFunctionControlEvent } from '@libs-ui/components-list';
10
+ import { IFlagMouse, IPopoverFunctionControlEvent, TYPE_POPOVER_DIRECTION, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';
11
+ import { IHttpRequestConfig } from '@libs-ui/services-http-request';
12
+ import { ITagsConfig, ITagsFunctionControlEvent } from './interfaces/tags.interface';
13
+ import * as i0 from "@angular/core";
14
+ export declare class LibsUiComponentsTagsComponent implements OnInit, OnDestroy {
15
+ protected flagMouse: import("@angular/core").WritableSignal<IFlagMouse>;
16
+ protected loading: import("@angular/core").WritableSignal<boolean>;
17
+ protected loadingDetail: import("@angular/core").WritableSignal<boolean>;
18
+ protected keySearch: import("@angular/core").WritableSignal<string>;
19
+ protected valueInput: import("@angular/core").WritableSignal<string>;
20
+ protected itemsSelected: import("@angular/core").WritableSignal<any[]>;
21
+ protected showList: import("@angular/core").WritableSignal<boolean>;
22
+ protected positionList: import("@angular/core").WritableSignal<TYPE_POPOVER_DIRECTION | undefined>;
23
+ protected keysSelected: import("@angular/core").WritableSignal<unknown[]>;
24
+ protected disableWhenMaxItem: import("@angular/core").WritableSignal<boolean>;
25
+ protected itemChangeUnSelect: import("@angular/core").WritableSignal<unknown>;
26
+ protected focus: import("@angular/core").WritableSignal<boolean>;
27
+ protected error: import("@angular/core").WritableSignal<IValid | undefined>;
28
+ protected fieldKey: import("@angular/core").WritableSignal<string>;
29
+ protected functionGetItemAutoAddList: import("@angular/core").Signal<(() => any[]) | undefined>;
30
+ private fakeId;
31
+ private timeOutFlag;
32
+ private timeOutChangeSearch;
33
+ private timeOutCheckViewChange;
34
+ private timeoutClickOutside;
35
+ private clientHeight;
36
+ private itemsOfList;
37
+ private keySearchChange;
38
+ private keySearchChangeSub;
39
+ private tempIgnoreEmit;
40
+ private popoverFunctionControl;
41
+ private inputFunctionControl;
42
+ private typePopover;
43
+ private listFunctionControl;
44
+ private defaultItemsSelectedCurrent;
45
+ private onDestroy;
46
+ readonly classIncludePopover: import("@angular/core").InputSignal<string | undefined>;
47
+ readonly enterAutoAddTagToList: import("@angular/core").InputSignal<boolean>;
48
+ readonly checkExitIsLabelInclude: import("@angular/core").InputSignal<boolean | undefined>;
49
+ readonly checkExitByFields: import("@angular/core").InputSignal<string[] | undefined>;
50
+ readonly parentBorderWidth: import("@angular/core").InputSignal<number | undefined>;
51
+ readonly functionCheckPermissionCreateTag: import("@angular/core").InputSignal<() => boolean>;
52
+ readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
53
+ readonly httpRequestDetailItemByIds: import("@angular/core").InputSignal<IHttpRequestConfig | undefined>;
54
+ readonly fieldLabel: import("@angular/core").InputSignal<string>;
55
+ readonly maxItemInput: import("@angular/core").InputSignal<number | undefined>;
56
+ readonly zIndex: import("@angular/core").InputSignal<number | undefined>;
57
+ readonly config: import("@angular/core").InputSignal<ITagsConfig | undefined>;
58
+ readonly disable: import("@angular/core").InputSignal<boolean | undefined>;
59
+ readonly readonly: import("@angular/core").InputSignal<boolean | undefined>;
60
+ readonly labelConfig: import("@angular/core").InputSignal<ILabel | undefined>;
61
+ readonly defaultItemsSelected: import("@angular/core").InputSignal<unknown[] | undefined>;
62
+ readonly defaultKeysSelected: import("@angular/core").InputSignal<unknown[] | undefined>;
63
+ readonly listSearchConfig: import("@angular/core").InputSignal<IInputSearchConfig | undefined>;
64
+ readonly isSearchOnline: import("@angular/core").InputSignal<boolean>;
65
+ readonly listSearchPadding: import("@angular/core").InputSignal<boolean | undefined>;
66
+ readonly listDividerClassInclude: import("@angular/core").InputSignal<string | undefined>;
67
+ readonly listConfig: import("@angular/core").InputSignal<IListConfigItem | undefined>;
68
+ readonly listButtonsOther: import("@angular/core").InputSignal<IButton[] | undefined>;
69
+ readonly listClickExactly: import("@angular/core").InputSignal<boolean | undefined>;
70
+ readonly listBackgroundListCustom: import("@angular/core").InputSignal<string | undefined>;
71
+ readonly listMaxItemShow: import("@angular/core").InputSignal<number | undefined>;
72
+ readonly listHiddenInputSearchWhenHasSearchConfig: import("@angular/core").InputSignal<boolean | undefined>;
73
+ readonly removeTextSearchWhenBlurInput: import("@angular/core").InputSignal<boolean>;
74
+ readonly keysHiddenItem: import("@angular/core").ModelSignal<unknown[] | undefined>;
75
+ readonly keysDisableItem: import("@angular/core").InputSignal<unknown[] | undefined>;
76
+ readonly ignoreEmitWhenSameDataSelected: import("@angular/core").InputSignal<boolean | undefined>;
77
+ readonly singleSelected: import("@angular/core").InputSignal<boolean | undefined>;
78
+ readonly classIncludeTagItem: import("@angular/core").InputSignal<string | undefined>;
79
+ readonly classIconRemoveTagItem: import("@angular/core").InputSignal<string | undefined>;
80
+ readonly showBorderActiveWhenFocusInput: import("@angular/core").InputSignal<boolean | undefined>;
81
+ readonly fieldGetImage: import("@angular/core").InputSignal<string | undefined>;
82
+ readonly imageSize: import("@angular/core").InputSignal<TYPE_SIZE_AVATAR_CONFIG>;
83
+ readonly fieldGetTextAvatar: import("@angular/core").InputSignal<string>;
84
+ readonly classAvatarInclude: import("@angular/core").InputSignal<string | undefined>;
85
+ readonly getLastTextAfterSpace: import("@angular/core").InputSignal<boolean | undefined>;
86
+ readonly validRequired: import("@angular/core").InputSignal<IValid | undefined>;
87
+ readonly validMaxItemSelected: import("@angular/core").InputSignal<IValidMaxItemSelected | undefined>;
88
+ readonly validPattern: import("@angular/core").InputSignal<IValidPattern[] | undefined>;
89
+ readonly showListBellow: import("@angular/core").InputSignal<boolean | undefined>;
90
+ readonly hiddenInputWhenReadonly: import("@angular/core").InputSignal<boolean | undefined>;
91
+ readonly outSelectMultiItem: import("@angular/core").OutputEmitterRef<unknown[]>;
92
+ readonly outValidEvent: import("@angular/core").OutputEmitterRef<boolean>;
93
+ readonly outFunctionsControl: import("@angular/core").OutputEmitterRef<ITagsFunctionControlEvent>;
94
+ readonly outClickButtonOther: import("@angular/core").OutputEmitterRef<IButton>;
95
+ readonly outShowListEvent: import("@angular/core").OutputEmitterRef<boolean>;
96
+ readonly outChangStageFlagMouse: import("@angular/core").OutputEmitterRef<IFlagMouse>;
97
+ readonly outLoadingGetDetailSelected: import("@angular/core").OutputEmitterRef<boolean>;
98
+ private readonly tagsEl;
99
+ private httpRequestService;
100
+ constructor();
101
+ ngOnInit(): void;
102
+ private setError;
103
+ protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent): void;
104
+ private updateLabel;
105
+ private updateFieldLabel;
106
+ private clearItemSelected;
107
+ private updateItemsSelected;
108
+ protected handlerPopoverEvent(type: TYPE_POPOVER_EVENT): void;
109
+ protected handlerPopoverContentEvent(position: TYPE_POPOVER_DIRECTION): void;
110
+ protected handlerRemoveItemSelected(event: Event, itemRemove: unknown, ignoreValid?: boolean): Promise<void>;
111
+ protected handlerInputFunctionControl(event: IInputFunctionControlEvent): void;
112
+ protected handlerFocusAndBlurEvent(event: IFocusAndBlurEvent): void;
113
+ protected handlerClickOutside(event: Event): void;
114
+ protected handlerEnterEvent(): Promise<void>;
115
+ protected handlerValueChangeSearch(value: string | number): Promise<void>;
116
+ private setEventKeySearch;
117
+ private processData;
118
+ protected handlerDataChange(items: Array<unknown>): void;
119
+ protected handlerLoading(event: boolean): void;
120
+ private checkViewChange;
121
+ private checkExits;
122
+ protected handlerSelectedKey(event: IListDataEmitKey | undefined): void;
123
+ private getFlagEmitSelectedItem;
124
+ protected handlerSelectMultiKey(event: IListDataEmitMultiKey | undefined): Promise<void>;
125
+ private getDetailByIds;
126
+ private checkValid;
127
+ private checkMaxItemSelectedValid;
128
+ private checkPattern;
129
+ protected handlerClickButtonOther(event: IButton): void;
130
+ private getItemSelected;
131
+ protected resetToDefaultDataSelected(itemSelected?: Array<unknown>): Promise<void>;
132
+ protected handlerFunctionControlList(event: IListFunctionControlEvent): void;
133
+ protected focusInput(): Promise<void>;
134
+ protected handlerChangeFlagMouse(event: IFlagMouse): void;
135
+ protected handlerChangStageFlagMouse(flag: IFlagMouse): void;
136
+ private resetError;
137
+ private updateLoadingDetail;
138
+ private updateItemSelectedDisable;
139
+ private refreshListData;
140
+ ngOnDestroy(): void;
141
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsTagsComponent, never>;
142
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsTagsComponent, "libs_ui-components-tags", never, { "classIncludePopover": { "alias": "classIncludePopover"; "required": false; "isSignal": true; }; "enterAutoAddTagToList": { "alias": "enterAutoAddTagToList"; "required": false; "isSignal": true; }; "checkExitIsLabelInclude": { "alias": "checkExitIsLabelInclude"; "required": false; "isSignal": true; }; "checkExitByFields": { "alias": "checkExitByFields"; "required": false; "isSignal": true; }; "parentBorderWidth": { "alias": "parentBorderWidth"; "required": false; "isSignal": true; }; "functionCheckPermissionCreateTag": { "alias": "functionCheckPermissionCreateTag"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "httpRequestDetailItemByIds": { "alias": "httpRequestDetailItemByIds"; "required": false; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": false; "isSignal": true; }; "maxItemInput": { "alias": "maxItemInput"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "labelConfig": { "alias": "labelConfig"; "required": false; "isSignal": true; }; "defaultItemsSelected": { "alias": "defaultItemsSelected"; "required": false; "isSignal": true; }; "defaultKeysSelected": { "alias": "defaultKeysSelected"; "required": false; "isSignal": true; }; "listSearchConfig": { "alias": "listSearchConfig"; "required": false; "isSignal": true; }; "isSearchOnline": { "alias": "isSearchOnline"; "required": false; "isSignal": true; }; "listSearchPadding": { "alias": "listSearchPadding"; "required": false; "isSignal": true; }; "listDividerClassInclude": { "alias": "listDividerClassInclude"; "required": false; "isSignal": true; }; "listConfig": { "alias": "listConfig"; "required": false; "isSignal": true; }; "listButtonsOther": { "alias": "listButtonsOther"; "required": false; "isSignal": true; }; "listClickExactly": { "alias": "listClickExactly"; "required": false; "isSignal": true; }; "listBackgroundListCustom": { "alias": "listBackgroundListCustom"; "required": false; "isSignal": true; }; "listMaxItemShow": { "alias": "listMaxItemShow"; "required": false; "isSignal": true; }; "listHiddenInputSearchWhenHasSearchConfig": { "alias": "listHiddenInputSearchWhenHasSearchConfig"; "required": false; "isSignal": true; }; "removeTextSearchWhenBlurInput": { "alias": "removeTextSearchWhenBlurInput"; "required": false; "isSignal": true; }; "keysHiddenItem": { "alias": "keysHiddenItem"; "required": false; "isSignal": true; }; "keysDisableItem": { "alias": "keysDisableItem"; "required": false; "isSignal": true; }; "ignoreEmitWhenSameDataSelected": { "alias": "ignoreEmitWhenSameDataSelected"; "required": false; "isSignal": true; }; "singleSelected": { "alias": "singleSelected"; "required": false; "isSignal": true; }; "classIncludeTagItem": { "alias": "classIncludeTagItem"; "required": false; "isSignal": true; }; "classIconRemoveTagItem": { "alias": "classIconRemoveTagItem"; "required": false; "isSignal": true; }; "showBorderActiveWhenFocusInput": { "alias": "showBorderActiveWhenFocusInput"; "required": false; "isSignal": true; }; "fieldGetImage": { "alias": "fieldGetImage"; "required": false; "isSignal": true; }; "imageSize": { "alias": "imageSize"; "required": false; "isSignal": true; }; "fieldGetTextAvatar": { "alias": "fieldGetTextAvatar"; "required": false; "isSignal": true; }; "classAvatarInclude": { "alias": "classAvatarInclude"; "required": false; "isSignal": true; }; "getLastTextAfterSpace": { "alias": "getLastTextAfterSpace"; "required": false; "isSignal": true; }; "validRequired": { "alias": "validRequired"; "required": false; "isSignal": true; }; "validMaxItemSelected": { "alias": "validMaxItemSelected"; "required": false; "isSignal": true; }; "validPattern": { "alias": "validPattern"; "required": false; "isSignal": true; }; "showListBellow": { "alias": "showListBellow"; "required": false; "isSignal": true; }; "hiddenInputWhenReadonly": { "alias": "hiddenInputWhenReadonly"; "required": false; "isSignal": true; }; }, { "keysHiddenItem": "keysHiddenItemChange"; "outSelectMultiItem": "outSelectMultiItem"; "outValidEvent": "outValidEvent"; "outFunctionsControl": "outFunctionsControl"; "outClickButtonOther": "outClickButtonOther"; "outShowListEvent": "outShowListEvent"; "outChangStageFlagMouse": "outChangStageFlagMouse"; "outLoadingGetDetailSelected": "outLoadingGetDetailSelected"; }, never, never, true, never>;
143
+ }