@libs-ui/components-tabs 0.2.43 → 0.2.44

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.
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-tabs.mjs","sources":["../../../../../libs-ui/components/tabs/src/item/item.component.ts","../../../../../libs-ui/components/tabs/src/item/item.component.html","../../../../../libs-ui/components/tabs/src/services/tab.service.ts","../../../../../libs-ui/components/tabs/src/utils/tabs.ts","../../../../../libs-ui/components/tabs/src/tabs.component.ts","../../../../../libs-ui/components/tabs/src/tabs.component.html","../../../../../libs-ui/components/tabs/src/libs-ui-components-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, OnDestroy, OnInit, output, signal, untracked } from '@angular/core';\nimport { LibsUiComponentsBadgeComponent } from '@libs-ui/components-badge';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { escapeHtml, uuid } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { ITabItem, ITabItemEvent, ITabs, TYPE_TAB_MODE } from '../interfaces/tab.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-tabs-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsBadgeComponent\n ]\n})\nexport class LibsUiComponentsTabsItemComponent implements OnInit, OnDestroy {\n\n protected labelComputed = computed(() => escapeHtml(this.translateService.instant(this.item()[this.fieldLabel()])));\n\n private mutationObserver = signal<MutationObserver | undefined>(undefined);\n private mutationObserverSubject = new Subject<void>();\n private onDestroy = new Subject<void>();\n\n // private dropdownFunctionControl: IDropdownFunctionControlEvent | undefined;\n\n readonly ignoreCalculatorTab = input.required<boolean>();\n readonly step = input.required<number>();\n readonly mode = input.required<TYPE_TAB_MODE>();\n readonly tabs = input.required<ITabs>();\n readonly item = model.required<ITabItem>();\n readonly keySelected = input.required<string>();\n readonly fieldLabel = input.required<string>();\n readonly fieldKey = input.required<string>();\n readonly cssDefault = input.required<string>();\n readonly size = input.required<'langer' | 'medium'>();\n readonly disable = input<boolean>();\n readonly disableLabel = input<boolean>();\n readonly zIndex = input<number>();\n readonly changeViewTab = input.required<Subject<void>>();\n\n readonly outSelectAction = output<ITabItemEvent>();\n\n private element = inject(ElementRef);\n private translateService = inject(TranslateService);\n\n constructor() {\n effect(() => {\n if (this.mode() !== 'left' || this.ignoreCalculatorTab()) {\n return;\n }\n untracked(() => {\n this.updateSpecificWidth();\n this.mutationObserver()?.disconnect();\n this.mutationObserverSubject.pipe(debounceTime(250)).subscribe(() => this.updateSpecificWidth());\n this.mutationObserver.set(new MutationObserver(() => this.mutationObserverSubject.next()));\n this.mutationObserver()?.observe(this.element.nativeElement, { attributes: true, childList: true, subtree: true });\n });\n });\n }\n\n ngOnInit() {\n if (!this.item().key) {\n this.item.update(item => ({ ...item, key: uuid() }));\n }\n }\n\n private updateSpecificWidth() {\n const preSpecificWidth = this.item().specificWidth;\n const width = this.element.nativeElement.offsetWidth;\n if (width && preSpecificWidth !== width) {\n this.item.update(item => ({ ...item, specificWidth: width }));\n this.changeViewTab().next();\n }\n }\n\n protected handlerImgError(event: Event) {\n event.stopPropagation();\n (event as IEvent).target.src = this.item().linkImageError\n }\n\n protected handlerSelectAction(event: { key: string, item: any }) {\n // if (this.tab?.modeSaveView) {\n // this.moSelectAction.emit({ item: this.item, action: event.key as string });\n // this.dropdownFunctionControl && this.dropdownFunctionControl.resetDropdown();\n // }\n }\n\n // protected handlerDropdownFunctionControl(event: IDropdownFunctionControlEvent) {\n // this.dropdownFunctionControl = event;\n // }\n\n protected handlerClickButton(event: Event, type: 'configButtonLeft' | 'configButtonRight') {\n event.stopPropagation();\n const action = this.item()[type]?.action;\n if (action) {\n action(this.item());\n }\n }\n\n ngOnDestroy(): void {\n this.mutationObserver()?.disconnect();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}\n"," @if (item(); as item) {\n <div #itemEl\n [attr.key]=\"item[fieldKey()]\"\n [attr.active]=\"item[fieldKey()] === keySelected() && !tabs().ignoreShowLineBottomInTab\"\n class=\"libs-ui-tab-header-center-item {{ cssDefault() }} {{ item.classInclude || '' }}\"\n [class.libs-ui-tab-header-center-item-style-hover]=\"!tabs().ignoreShowLineBottomInTab\"\n [class.cursor-pointer]=\"!item.disable && !disable()\">\n @if (tabs().hasImage) {\n <img LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverImage\"\n [config]=\"item.popoverImage\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-tab-header-center-item-image {{ item.classImageInclude || '' }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [src]=\"item.linkImage\"\n [attr.key]=\"item[fieldKey()]\"\n (error)=\"handlerImgError($event)\" />\n }\n @if (item.iconLeft) {\n <i LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverIconLeft\"\n [config]=\"item.popoverIconLeft\"\n [ignoreStopPropagationEvent]=\"true\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon mo-lib-mr-8px {{ item.iconLeft }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (item.is_pin) {\n <i [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon mr-[8px] {{ item[fieldKey()] === keySelected() ? 'libs-ui-icon-pin-solid' : 'libs-ui-icon-pin-outline' }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (tabs().hasStep) {\n @if (tabs().hasBackGroundTab) {\n <div class=\"libs-ui-tab-header-center-item-step border-none libs-ui-font-h6m\"\n [class.cursor-default]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [class.bg-[#f8f9fa]]=\"item.disable || disable()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"item[fieldKey()] === keySelected() && !tabs().ignoreSelectedBackgroundStep\"\n [class.text-[#ffffff]]=\"item[fieldKey()] === keySelected() && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"item[fieldKey()] === keySelected() && tabs().ignoreSelectedBackgroundStep\"\n [class.text[var(--libs-ui-color-default)]]=\"item[fieldKey()] === keySelected() && tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[#00bc62]]=\"step() <= (tabs().stepCompleted || -1) && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"step() > (tabs().stepCompleted || 0) && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[#f8ff9a]]=\"step() > (tabs().stepCompleted || 0) && tabs().ignoreSelectedBackgroundStep\">\n @if ((step() <= (tabs().stepCompleted || -1))) {\n <i class=\"libs-ui-icon-check text-[#ffffff]\"></i>\n } @else {\n <span [class.text-[#cdd0d6]]=\"item.disable || disable()\">{{ step() }}</span>\n }\n </div>\n } @else {\n <div [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n class=\"libs-ui-tab-header-center-item-step\">\n <span>{{ step() }}</span>\n </div>\n }\n }\n @if (item.configButtonLeft) {\n <libs_ui-components-buttons-button [type]=\"item.configButtonLeft.type || 'button-link-third'\"\n [classInclude]=\"item.configButtonLeft.classInclude || ''\"\n [classIconLeft]=\"item.configButtonLeft.classIconLeft ||''\"\n [classLabel]=\"item.configButtonLeft.classLabel || ''\"\n [classIconRight]=\"item.configButtonLeft.classIconRight ||''\"\n [label]=\"item.configButtonLeft.label ||''\"\n [popover]=\"item.configButtonLeft.popover || {}\"\n (outClick)=\"handlerClickButton($event, 'configButtonLeft')\" />\n }\n @if (item[fieldLabel()]) {\n <div class=\"relative flex\"\n [style.maxWidth.px]=\"tabs().maxWidthTextLabelItem || 160\">\n <span LibsUiComponentsPopoverDirective\n [type]=\"'text'\"\n [config]=\"{position: {mode: step() === 1 ? 'start' : 'center', distance: 0}, zIndex: zIndex()}\"\n [attr.size]=\"size()\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [ignoreStopPropagationEvent]=\"true\"\n [classInclude]=\"'w-full libs-ui-tab-header-center-item-label '+ (item.classLabel || 'libs-ui-font-h6m') + \n (disableLabel() && (item.disable || disable()) ? ' libs-ui-disable' : '') \n + (tabs().hasBackGroundTab && (item.disable || disable()) ? ' text-[#cdd0d6] cursor-default' : '')\"\n [innerHTML]=\"labelComputed()\"></span>\n @if (item.hasRedDot) {\n <div class=\"absolute right-[-6px] top-[-2px] w-[6px] h-[6px] bg-[#ee2d41] mo-lib-border-radius-50em\">\n </div>\n }\n </div>\n }\n @if (item.popover) {\n <i LibsUiComponentsPopoverDirective\n [config]=\"item.popover\"\n class=\"ml-[8px]\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon libs-ui-icon-tooltip-outline\">\n </i>\n }\n @if (item.iconRight) {\n <i LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverIconRight\"\n [config]=\"item.popoverIconRight\"\n [ignoreStopPropagationEvent]=\"true\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon {{ item.iconRight }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (item.count) {\n <libs_ui-components-badge [mode]=\"item.modeCount || 'x+'\"\n [count]=\"item.count\"\n [maxCount]=\"item.maxCount || 99\"\n [classCircle]=\"item.classCircle || 'libs-ui-font-h5r'\"\n [active]=\"item[fieldKey()] === keySelected()\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\" />\n }\n @if (item.configButtonRight) {\n <libs_ui-components-buttons-button [type]=\"item.configButtonRight.type || 'button-link-third'\"\n [classInclude]=\"item.configButtonRight.classInclude || ''\"\n [classIconLeft]=\"item.configButtonRight.classIconLeft ||''\"\n [classLabel]=\"item.configButtonRight.classLabel || ''\"\n [classIconRight]=\"item.configButtonRight.classIconRight ||''\"\n [popover]=\"item.configButtonRight.popover || {}\"\n [label]=\"item.configButtonRight.label ||''\"\n (outClick)=\"handlerClickButton($event, 'configButtonRight')\" />\n }\n <!-- <mo-libs-shared-components-dropdown *ngIf=\"item.specificDisplay && tab.dropdownRightConfig as config\"\n [class.mo-lib-ml-8px]=\"!config.getView\"\n [class.mo-lib-tab-header-center-item-dropdown]=\"config.hiddenShowDropdown\"\n [attr.active]=\"item[fieldKey] === keySelected\"\n [attr.completed]=\"step <= (tab.stepCompleted || -1)\"\n [class.mo-lib-pointer-events-none]=\"item.disable || disable || item[fieldKey] !== keySelected\"\n [isNgContent]=\"true\"\n [customPopupConfig]=\"{\n widthByParent: false,\n ignoreArrow: true,\n paddingLeftItem:config.paddingLeftItem ?? true,\n classInclude:config.classIncludePopup || 'mo-lib-w-250px',\n position:{\n mode: 'start',\n distance: 0\n }\n }\"\n [tooltipElementRefCustom]=\"config.hiddenShowDropdown !== undefined ? undefined : itemEl\"\n [classWidthDropDown]=\"'d-flex'\"\n [listViewData]=\"config.getData ? (item[fieldKey] | MoLibsSharedPipesCallFunctionInTemplate:config.getData:item:lang) : undefined\"\n [listViewConfig]=\"config.listViewConfig\"\n [listViewBackgroundListCustom]=\"config.listViewBackgroundListCustom\"\n [listViewMaxItemShow]=\"config.listViewMaxItemShow || 5\"\n [ignoreStopPropagationEvent]=\"true\"\n (moSelectKey)=\"handlerSelectAction($event)\"\n (moFunctionsControl)=\"handlerDropdownFunctionControl($event)\">\n <div *ngIf=\"config.getView\"\n [innerHtml]=\"item[fieldKey] | MoLibsSharedPipesCallFunctionInTemplate:config.getView:item:lang \">\n </div>\n <i *ngIf=\"!config.getView\"\n [attr.active]=\"item[fieldKey] === keySelected\"\n [attr.completed]=\"step <= (tab.stepCompleted || -1)\"\n class=\" {{ config.hiddenShowDropdown ? 'mo-svg-font-more-horizontal mo-lib-color-6a7383 mo-lib-color-global-hover' : 'mo-svg-font-chevron-down mo-lib-tab-header-center-item-icon' }} \">\n </i>\n </mo-libs-shared-components-dropdown> -->\n\n </div>\n }\n","import { Injectable } from \"@angular/core\";\nimport { ITabItem } from \"../interfaces/tab.interface\";\nimport { of } from \"rxjs\";\n\n@Injectable()\nexport class LibsUiTabsService {\n\n listTabItemsMore(items: Array<ITabItem>) {\n return of({\n code: 200,\n data: items\n })\n }\n\n}\n","import { IListViewConfigItem } from \"@libs-ui/components-list\";\nimport { escapeHtml, isNil } from \"@libs-ui/utils\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ITabItem, ITabs } from \"../interfaces/tab.interface\";\nimport { LibsUiTabsService } from \"../services/tab.service\";\nimport { of } from \"rxjs\";\n\nexport const tabMoreListConfig = (tabsService: LibsUiTabsService, translate: TranslateService, fieldKey: string, fieldLabel: string, tabs: ITabs): IListViewConfigItem => {\n return {\n type: 'text',\n httpRequestData: {\n serviceOther: tabsService,\n functionName: 'listTabItemsMore',\n argumentsValue: [tabs.items().filter(item => !item().specificDisplay).map(item => item())]\n },\n configTemplateText: {\n fieldKey: fieldKey || 'key',\n getClassItem: () => '!pl-[16px] !py-[4px]',\n classRows: 'w-full',\n rows: [{\n classCols: 'flex items-center py-[8px]',\n cols: [\n {\n getPopover: (item: ITabItem) => item.iconLeft ? { classInclude: 'flex', dataView: `<i class=\"${item.iconLeft} text-[16px] mr-[8px]\"></i>` } : undefined\n },\n {\n getValue: (item: ITabItem) => of(escapeHtml(translate.instant(item[fieldLabel] || ' ')))\n },\n {\n getPopover: (item: ITabItem) => item.popover ? { config: item.popover } : undefined\n },\n {\n getPopover: (item: ITabItem) => item.iconRight ? { dataView: `<i class=\"${item.iconRight} text-[16px] mr-[8px]\"></i>` } : undefined\n },\n {\n getConfigBadge: (item: ITabItem) => {\n if (isNil(item.count)) {\n return undefined;\n }\n return {\n mode: item.modeCount || 'x+',\n count: item.count,\n maxCount: item.maxCount || 99,\n classCircle: item.classCircle || 'libs-ui-font-h5r'\n };\n }\n }\n ]\n }]\n }\n };\n}","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, OnDestroy, OnInit, output, signal, viewChild, WritableSignal } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IDrop, LibsUiComponentsDragContainerDirective, LibsUiDragItemDirective } from '@libs-ui/components-drag-drop';\nimport { IListDataEmitKey, IListViewConfigItem, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { IPopover, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { convertObjectToSignal, isNil, uuid } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ITabCssConfig, ITabFunctionControlEvent, ITabItem, ITabItemEvent, ITabs, TYPE_TAB_MODE } from './interfaces/tab.interface';\nimport { LibsUiComponentsTabsItemComponent } from './item/item.component';\nimport { LibsUiTabsService } from './services/tab.service';\nimport { tabMoreListConfig } from './utils/tabs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsDragContainerDirective,\n LibsUiDragItemDirective,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsTabsItemComponent,\n LibsUiComponentsListComponent\n ],\n providers: [LibsUiTabsService]\n})\nexport class LibsUiComponentsTabsComponent implements OnInit, OnDestroy {\n\n protected itemsDisplay = signal<Array<WritableSignal<ITabItem>>>([]);\n protected displayMoreItem = signal<boolean>(false);\n protected tabMoreListConfig = signal<IListViewConfigItem | undefined>(undefined);\n protected changeViewTab = new Subject<void>();\n protected groupName = signal<string>(uuid());\n protected stylesDragDropOverrideComputed = computed(() => this.updateStylesDragDropOverride());\n\n private popoverFunctionControlEvent = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private onDestroy = new Subject<void>();\n\n readonly mode = input<TYPE_TAB_MODE>('left');\n readonly fieldKey = input<string>('key');\n readonly fieldLabel = input<string>('label');\n readonly keySelected = model.required<string>();\n readonly disable = input<boolean>();\n readonly tabs = input.required<ITabs>();\n readonly heightTabItem = input<number>(40);\n readonly ignoreCalculatorTab = input<boolean>(false);\n readonly size = input<'langer' | 'medium'>('medium');\n readonly disableLabel = input<boolean>();\n readonly hasAnimation = input<boolean>(true);\n readonly zIndex = input<number>();\n readonly configCss = model<ITabCssConfig>();\n readonly popoverShowMoreTabItem = input<IPopover>();\n readonly checkCanChangeTabSelected = input<() => boolean | Promise<boolean>>();\n\n readonly outKeySelected = output<string>();\n readonly outFunctionsControl = output<ITabFunctionControlEvent>();\n readonly outDragTabChange = output<void>();\n readonly outDisplayMoreItem = output<boolean>();\n\n private readonly headerEl = viewChild.required<ElementRef>('headerEl');\n private readonly headerLeftEl = viewChild.required<ElementRef>('headerLeftEl');\n private readonly headerRightEl = viewChild.required<ElementRef>('headerRightEl');\n\n private tabsService = inject(LibsUiTabsService);\n private translate = inject(TranslateService);\n\n constructor() {\n effect(() => this.tabMoreListConfig.set(tabMoreListConfig(this.tabsService, this.translate, this.fieldKey(), this.fieldLabel(), this.tabs())), { allowSignalWrites: true })\n effect(() => this.itemsDisplay.set(this.tabs().items().filter(item => item().specificDisplay)), { allowSignalWrites: true })\n }\n\n ngOnInit() {\n this.updateTabsCssConfig();\n if (this.ignoreCalculatorTab()) {\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n }\n this.outFunctionsControl.emit({\n addTabItem: this.addTabItem.bind(this),\n calculatorTabItemsDisplay: this.calculatorTabsItemDisplay.bind(this),\n selectedTabItem: this.handlerSelectedTabItem.bind(this)\n });\n if (this.mode() !== 'left' || this.ignoreCalculatorTab()) {\n return;\n }\n fromEvent(window, 'resize').pipe(debounceTime(250), takeUntil(this.onDestroy)).subscribe(() => {\n if (!this.tabs().items().length) {\n return;\n }\n this.displayMoreItem.set(false);\n this.calculatorTabsItemDisplay();\n });\n this.changeViewTab.pipe(debounceTime(300), takeUntil(this.onDestroy)).subscribe(() => this.calculatorTabsItemDisplay());\n }\n\n private updateTabsCssConfig() {\n if (this.configCss()) {\n return;\n }\n switch (this.mode()) {\n case 'left':\n this.configCss.set({\n first: 'ml-[20px] mr-[16px]',\n other: 'ml-[20px] mr-[16px]'\n });\n break;\n case 'center':\n this.configCss.set({\n first: 'px-[12px] ml-[18px] mr-[18px]',\n other: 'px-[12px] mx-[18px]',\n header: 'flex justify-center'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n case 'center-has-line':\n this.configCss.set({\n first: 'px-[16px]',\n other: 'px-[16px]',\n headerCenter: 'items-center'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n case 'space-between':\n this.configCss.set({\n first: 'mx-auto',\n other: 'mx-auto',\n headerCenter: 'w-full'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n }\n }\n\n private updateStylesDragDropOverride() {\n if (this.hasAnimation()) {\n return [\n {\n className: 'libs-ui-drag-drop-item-placeholder',\n styles: ''\n },\n {\n className: 'libs-ui-drag-drop-item',\n styles: 'cursor: move;'\n },\n {\n className: 'libs-ui-drag-drop-item-dragging',\n styles: 'cursor: move; background: #dddddd;'\n }\n ];\n }\n return [\n {\n className: 'libs-ui-drag-drop-item',\n styles: ''\n },\n {\n className: 'libs-ui-drag-drop-item-disable',\n styles: ''\n }\n ]\n }\n\n protected handlerDropContainer(event: IDrop) {\n const { itemDragInfo } = event;\n if (!itemDragInfo) {\n return;\n }\n const items = this.tabs().items;\n const { indexDrag, indexDrop } = itemDragInfo;\n if (isNil(indexDrag) || isNil(indexDrop) || indexDrop === indexDrag) {\n return;\n }\n const itemDrag = items()[indexDrag as number];\n items.update(items => {\n items.splice(indexDrag as number, 1);\n items.splice(indexDrop as number, 0, itemDrag);\n return [...items];\n });\n this.outDragTabChange.emit();\n }\n\n protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControlEvent.set(event);\n }\n\n private async handlerSelectedTabItem(key: string, resetDisable = true) {\n const itemSelected = this.tabs().items().find(item => item()[this.fieldKey()] === key);\n if (!itemSelected) {\n return;\n }\n if (resetDisable) {\n itemSelected.update(item => ({ ...item, disable: false }));\n }\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, itemSelected);\n }\n\n protected handlerSelectedKey(event: IListDataEmitKey | undefined) {\n if (!event) {\n return;\n }\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, convertObjectToSignal(event.item));\n this.outDragTabChange.emit();\n }\n\n protected async handlerClickItem(event: Event, item: WritableSignal<ITabItem>) {\n event.stopPropagation();\n if (item().disable || this.disable()) {\n return;\n }\n const checkCanChangeTabSelected = this.checkCanChangeTabSelected();\n if (checkCanChangeTabSelected) {\n const state = await checkCanChangeTabSelected();\n if (state) {\n this.changeItemSelected(item);\n }\n return;\n }\n this.changeItemSelected(item);\n }\n\n private changeItemSelected(item: WritableSignal<ITabItem>) {\n this.keySelected.set(item()[this.fieldKey()]);\n this.outKeySelected.emit(this.keySelected());\n this.popoverFunctionControlEvent()?.removePopoverOverlay();\n this.calculatorTabsItemDisplay();\n }\n\n protected async handlerSelectAction(event: ITabItemEvent) {\n // switch (event.action) {\n // case 'pin':\n // await this.handlerPin(event.item);\n // break;\n\n // case 'unpin':\n // await this.handlerUnpin(event.item);\n // break;\n\n // case 'edit':\n // this.handlerEditTabItem(event.item);\n // break;\n\n // case 'delete':\n // this.handlerRemoveTabItem(event.item);\n // break;\n // }\n }\n\n private async addTabItem(item: WritableSignal<ITabItem>, selected = true, addFirst?: boolean) {\n const items = this.tabs().items;\n items.update(items => {\n if (addFirst) {\n return [item, ...items];\n }\n return [...items, item];\n });\n if (selected) {\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, item);\n }\n }\n\n protected async calculatorTabsItemDisplay() {\n let items = this.tabs().items();\n const indexItemSelected = items.findIndex(item => item()[this.fieldKey()] === this.keySelected());\n if (indexItemSelected < 0) {\n return;\n }\n this.displayMoreItem.set(false);\n let displayMoreItem = false;\n const headerWidth = this.headerEl().nativeElement.clientWidth || 0;\n const itemSelected = items[indexItemSelected];\n const itemSelectedWidth = itemSelected().specificWidth;\n let totalWidthItemsDisplay = (this.headerLeftEl().nativeElement.clientWidth || 0) + (this.headerRightEl().nativeElement.clientWidth || 0) + 32;\n items.forEach((item, index) => {\n if (!item().specificWidth) {\n return;\n }\n item.update(data => ({ ...data, specificDisplay: false }));\n const itemWidth = item().specificWidth || 0;\n const width = totalWidthItemsDisplay + itemWidth + (index < indexItemSelected ? itemSelectedWidth : 0);\n totalWidthItemsDisplay += itemWidth;\n if (width > headerWidth) {\n displayMoreItem = true;\n return;\n }\n item.update(data => ({ ...data, specificDisplay: true }));\n });\n itemSelected.update(data => ({ ...data, specificDisplay: true }));\n const display = items.filter(item => item().specificDisplay === true);\n const notDisplay = items.filter(item => item().specificDisplay === false);\n items = display.concat(notDisplay);\n items.forEach((item, index) => item.update(data => ({ ...data, order: index })));\n this.tabs().items.update(items => items.sort((prev, next) => (prev().order || 0) - (next().order || 0)));\n this.displayMoreItem.set(displayMoreItem);\n this.outDisplayMoreItem.emit(this.displayMoreItem());\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","<div class=\"libs-ui-tab\">\n <div #headerEl\n class=\"libs-ui-tab-header z-[1] {{ configCss()?.header || '' }} {{ tabs().classIncludeHeader || '' }}\"\n [style.minHeight.px]=\"heightTabItem()\">\n <div #headerLeftEl\n class='libs-ui-tab-header-left'>\n <ng-content select=\"div.libs-ui-tab-header-left\"></ng-content>\n </div>\n <div class=\"libs-ui-tab-header-center {{ configCss()?.headerCenter || '' }} {{ tabs().classIncludeHeaderCenter || '' }}\">\n <div class=\"!flex w-full\"\n #elementContainerEl\n LibsUiComponentsDragContainerDirective\n [stylesOverride]=\"stylesDragDropOverrideComputed()\"\n [groupName]=\"groupName()\"\n [(items)]=\"itemsDisplay\"\n [directionDrag]=\"'horizontal'\"\n [disableDragContainer]=\"!hasAnimation()\"\n [acceptDragSameGroup]=\"hasAnimation()\"\n (outDroppedContainer)=\"handlerDropContainer($event)\">\n @for (item of itemsDisplay(); track item) {\n <div LibsUiDragItemDirective\n [disable]=\"disable() || !hasAnimation()\"\n [groupName]=\"groupName()\"\n [elementContainer]=\"elementContainerEl\"\n [dragBoundary]=\"true\"\n [dragBoundaryAcceptMouseLeaveContainer]=\"true\"\n class=\"relative libs-ui-tab-item-container\"\n [style.width.px]=\"mode() === 'space-between' ? (elementContainerEl.clientWidth/(itemsDisplay().length || 1)) : undefined\"\n [class.flex]=\"mode() === 'center-has-line'\"\n [class.items-center]=\"mode() === 'center-has-line'\">\n @if (hasAnimation() && !disable()) {\n <span class=\"libs-ui-icon-arrange text-[#9ca2ad] absolute top-[12px] left-[4px]\"></span>\n }\n <libs_ui-components-tabs-item class=\"h-full w-full {{ tabs().classIncludeItem || '' }}\"\n [tabs]=\"tabs()\"\n [size]=\"size()\"\n [(item)]=\"item\"\n [step]=\"$index+1\"\n [disable]=\"disable()\"\n [disableLabel]=\"disableLabel()\"\n [keySelected]=\"keySelected()\"\n [fieldLabel]=\"fieldLabel()\"\n [fieldKey]=\"fieldKey()\"\n [cssDefault]=\"($first ? configCss()?.first : configCss()?.other) || ''\"\n [zIndex]=\"zIndex()\"\n [mode]=\"mode()\"\n [ignoreCalculatorTab]=\"true\"\n [changeViewTab]=\"changeViewTab\"\n (click)=\"handlerClickItem($event, item)\" />\n @if (mode() === 'center-has-line' && !$last) {\n <div class=\"w-[40px] h-[1px] bg-[#e6e7ea]\"></div>\n }\n </div>\n }\n </div>\n </div>\n <div class=\"flex items-center\"\n [class.ml-auto]=\"displayMoreItem() && !tabs().viewMoreIgnoreMarginLeft\">\n @if (displayMoreItem()) {\n <libs_ui-components-popover class=\"w-full h-full flex items-center\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n zIndex: popoverShowMoreTabItem()?.config?.zIndex || 1000,\n maxHeight: popoverShowMoreTabItem()?.config?.maxHeight || 287,\n maxWidth: popoverShowMoreTabItem()?.config?.maxWidth || 2048,\n width: popoverShowMoreTabItem()?.config?.width || 277, \n direction: popoverShowMoreTabItem()?.config?.direction || 'bottom',\n template: popoverShowMoreTabItem()?.config?.template || menuEl,\n whiteTheme: true,\n ignoreArrow: true,\n position: popoverShowMoreTabItem()?.config?.position || { mode: 'end', distance: 0 }\n }\"\n (outFunctionsControl)=\"handlerPopoverFunctionControlEvent($event)\">\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classInclude]=\"'p-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical rotate-90 text-[16px] mr-0'\"\n [popover]=\"{config: {content: popoverShowMoreTabItem()?.config?.content}}\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-popover>\n }\n </div>\n <div #headerRightEl\n class=\"libs-ui-tab-header-right {{ tabs().classIncludeHeaderRight || '' }}\">\n <ng-content select=\"div.libs-ui-tab-header-right\"></ng-content>\n </div>\n </div>\n <div class=\"absolute top-0 z-0 w-full\">\n <div class=\"libs-ui-tab-header {{ configCss()?.header || '' }} {{ tabs().classIncludeHeader || '' }}\"\n [style.minHeight.px]=\"heightTabItem()\">\n <div class=\"libs-ui-tab-header-center {{ configCss()?.headerCenter || '' }} {{ tabs().classIncludeHeaderCenter || '' }}\">\n @for (item of tabs().items(); track item) {\n <libs_ui-components-tabs-item class=\"h-full w-full {{ tabs().classIncludeItem || '' }}\"\n [tabs]=\"tabs()\"\n [size]=\"size()\"\n [(item)]=\"item\"\n [step]=\"$index+1\"\n [disable]=\"disable()\"\n [disableLabel]=\"disableLabel()\"\n [keySelected]=\"keySelected()\"\n [fieldLabel]=\"fieldLabel()\"\n [fieldKey]=\"fieldKey()\"\n [cssDefault]=\"($first ? configCss()?.first : configCss()?.other) || ''\"\n [zIndex]=\"zIndex()\"\n [mode]=\"mode()\"\n [changeViewTab]=\"changeViewTab\"\n [ignoreCalculatorTab]=\"ignoreCalculatorTab()\"\n (click)=\"handlerClickItem($event, item)\" />\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #menuEl>\n <libs_ui-components-list [config]=\"tabMoreListConfig()\"\n [maxItemShow]=\"5\"\n [hiddenInputSearch]=\"true\"\n [paddingLeftItem]=\"true\"\n (outSelectKey)=\"handlerSelectedKey($event)\" />\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["debounceTime"],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-tabs.mjs","sources":["../../../../../libs-ui/components/tabs/src/item/item.component.ts","../../../../../libs-ui/components/tabs/src/item/item.component.html","../../../../../libs-ui/components/tabs/src/utils/tabs.ts","../../../../../libs-ui/components/tabs/src/tabs.component.ts","../../../../../libs-ui/components/tabs/src/tabs.component.html","../../../../../libs-ui/components/tabs/src/libs-ui-components-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, OnDestroy, OnInit, output, signal, untracked } from '@angular/core';\nimport { LibsUiComponentsBadgeComponent } from '@libs-ui/components-badge';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { escapeHtml, uuid } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { ITabItem, ITabItemEvent, ITabs, TYPE_TAB_MODE } from '../interfaces/tab.interface';\nimport { IListDataEmitKey, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { LibsUiPipesCallFunctionInTemplatePipe } from '@libs-ui/pipes-call-function-in-template';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-tabs-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsBadgeComponent,\n LibsUiComponentsListComponent,\n LibsUiPipesCallFunctionInTemplatePipe\n ]\n})\nexport class LibsUiComponentsTabsItemComponent implements OnInit, OnDestroy {\n\n protected labelComputed = computed(() => escapeHtml(this.translateService.instant(this.item()[this.fieldLabel()])));\n protected actionShowing = signal<boolean>(false);\n\n private mutationObserver = signal<MutationObserver | undefined>(undefined);\n private mutationObserverSubject = new Subject<void>();\n private onDestroy = new Subject<void>();\n\n private popoverFunctionControlEvent = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n\n readonly ignoreCalculatorTab = input.required<boolean>();\n readonly step = input.required<number>();\n readonly mode = input.required<TYPE_TAB_MODE>();\n readonly tabs = input.required<ITabs>();\n readonly item = model.required<ITabItem>();\n readonly keySelected = input.required<string>();\n readonly fieldLabel = input.required<string>();\n readonly fieldKey = input.required<string>();\n readonly cssDefault = input.required<string>();\n readonly size = input.required<'langer' | 'medium'>();\n readonly disable = input<boolean>();\n readonly disableLabel = input<boolean>();\n readonly zIndex = input<number>();\n readonly changeViewTab = input.required<Subject<void>>();\n\n readonly outActionSelected = output<ITabItemEvent>();\n\n private element = inject(ElementRef);\n private translateService = inject(TranslateService);\n\n constructor() {\n effect(() => {\n if (this.mode() !== 'left' || this.ignoreCalculatorTab()) {\n return;\n }\n untracked(() => {\n this.updateSpecificWidth();\n this.mutationObserver()?.disconnect();\n this.mutationObserverSubject.pipe(debounceTime(10)).subscribe(() => this.updateSpecificWidth());\n this.mutationObserver.set(new MutationObserver(() => this.mutationObserverSubject.next()));\n this.mutationObserver()?.observe(this.element.nativeElement, { attributes: true, childList: true, subtree: true });\n });\n });\n }\n\n ngOnInit() {\n if (!this.item().key) {\n this.item.update(item => ({ ...item, key: uuid() }));\n }\n }\n\n private updateSpecificWidth() {\n const preSpecificWidth = this.item().specificWidth;\n const width = this.element.nativeElement.offsetWidth;\n if (width && preSpecificWidth !== width) {\n this.item.update(item => ({ ...item, specificWidth: width }));\n this.changeViewTab().next();\n }\n }\n\n protected handlerImgError(event: Event) {\n event.stopPropagation();\n (event as IEvent).target.src = this.item().linkImageError\n }\n\n protected handlerSelectedKey(event: IListDataEmitKey | undefined) {\n if (!event) {\n return;\n }\n this.outActionSelected.emit({ item: this.item(), key: event.key as string });\n this.popoverFunctionControlEvent()?.removePopoverOverlay();\n }\n\n protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControlEvent.set(event);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event === 'show' || event === 'remove') {\n this.actionShowing.set(event === 'show');\n }\n }\n\n protected handlerClickButton(event: Event, type: 'configButtonLeft' | 'configButtonRight') {\n event.stopPropagation();\n const action = this.item()[type]?.action;\n if (action) {\n action(this.item());\n }\n }\n\n ngOnDestroy(): void {\n this.mutationObserver()?.disconnect();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}\n"," @if (item(); as item) {\n <div #itemEl\n [attr.key]=\"item[fieldKey()]\"\n [attr.active]=\"item[fieldKey()] === keySelected() && !tabs().ignoreShowLineBottomInTab\"\n class=\"libs-ui-tab-header-center-item {{ cssDefault() }} {{ item.classInclude || '' }}\"\n [class.libs-ui-tab-header-center-item-hover]=\"!tabs().ignoreShowLineBottomInTab\"\n [class.libs-ui-tab-header-center-item-action-show]=\"actionShowing()\"\n [class.cursor-pointer]=\"!item.disable && !disable()\">\n @if (tabs().hasImage) {\n <img LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverImage\"\n [config]=\"item.popoverImage\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-tab-header-center-item-image {{ item.classImageInclude || '' }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [src]=\"item.linkImage\"\n [attr.key]=\"item[fieldKey()]\"\n (error)=\"handlerImgError($event)\" />\n }\n @if (item.iconLeft) {\n <i LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverIconLeft\"\n [config]=\"item.popoverIconLeft\"\n [ignoreStopPropagationEvent]=\"true\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon mo-lib-mr-8px {{ item.iconLeft }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (item.is_pin) {\n <i [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon mr-[8px] {{ item[fieldKey()] === keySelected() ? 'libs-ui-icon-pin-solid' : 'libs-ui-icon-pin-outline' }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (tabs().hasStep) {\n @if (tabs().hasBackGroundTab) {\n <div class=\"libs-ui-tab-header-center-item-step border-none libs-ui-font-h6m\"\n [class.cursor-default]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [class.bg-[#f8f9fa]]=\"item.disable || disable()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"item[fieldKey()] === keySelected() && !tabs().ignoreSelectedBackgroundStep\"\n [class.text-[#ffffff]]=\"item[fieldKey()] === keySelected() && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"item[fieldKey()] === keySelected() && tabs().ignoreSelectedBackgroundStep\"\n [class.text[var(--libs-ui-color-default)]]=\"item[fieldKey()] === keySelected() && tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[#00bc62]]=\"step() <= (tabs().stepCompleted || -1) && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"step() > (tabs().stepCompleted || 0) && !tabs().ignoreSelectedBackgroundStep\"\n [class.bg-[#f8ff9a]]=\"step() > (tabs().stepCompleted || 0) && tabs().ignoreSelectedBackgroundStep\">\n @if ((step() <= (tabs().stepCompleted || -1))) {\n <i class=\"libs-ui-icon-check text-[#ffffff]\"></i>\n } @else {\n <span [class.text-[#cdd0d6]]=\"item.disable || disable()\">{{ step() }}</span>\n }\n </div>\n } @else {\n <div [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n class=\"libs-ui-tab-header-center-item-step\">\n <span>{{ step() }}</span>\n </div>\n }\n }\n @if (item.configButtonLeft) {\n <libs_ui-components-buttons-button [type]=\"item.configButtonLeft.type || 'button-link-third'\"\n [classInclude]=\"item.configButtonLeft.classInclude || ''\"\n [classIconLeft]=\"item.configButtonLeft.classIconLeft ||''\"\n [classLabel]=\"item.configButtonLeft.classLabel || ''\"\n [classIconRight]=\"item.configButtonLeft.classIconRight ||''\"\n [label]=\"item.configButtonLeft.label ||''\"\n [popover]=\"item.configButtonLeft.popover || {}\"\n (outClick)=\"handlerClickButton($event, 'configButtonLeft')\" />\n }\n @if (item[fieldLabel()]) {\n <div class=\"relative flex\"\n [style.maxWidth.px]=\"tabs().maxWidthTextLabelItem || 160\">\n <span LibsUiComponentsPopoverDirective\n [type]=\"'text'\"\n [config]=\"{position: {mode: step() === 1 ? 'start' : 'center', distance: 0}, zIndex: zIndex()}\"\n [attr.size]=\"size()\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [ignoreStopPropagationEvent]=\"true\"\n [classInclude]=\"'w-full libs-ui-tab-header-center-item-label '+ (item.classLabel || 'libs-ui-font-h6m') + \n (disableLabel() && (item.disable || disable()) ? ' libs-ui-disable' : '') \n + (tabs().hasBackGroundTab && (item.disable || disable()) ? ' text-[#cdd0d6] cursor-default' : '')\"\n [innerHTML]=\"labelComputed()\"></span>\n @if (item.hasRedDot) {\n <div class=\"absolute right-[-6px] top-[-2px] w-[6px] h-[6px] bg-[#ee2d41] mo-lib-border-radius-50em\">\n </div>\n }\n </div>\n }\n @if (item.popover) {\n <i LibsUiComponentsPopoverDirective\n [config]=\"item.popover\"\n class=\"ml-[8px]\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon libs-ui-icon-tooltip-outline\">\n </i>\n }\n @if (item.iconRight) {\n <i LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"!item.popoverIconRight\"\n [config]=\"item.popoverIconRight\"\n [ignoreStopPropagationEvent]=\"true\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n class=\"libs-ui-tab-header-center-item-icon {{ item.iconRight }}\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\">\n </i>\n }\n @if (item.count) {\n <libs_ui-components-badge [mode]=\"item.modeCount || 'x+'\"\n [count]=\"item.count\"\n [maxCount]=\"item.maxCount || 99\"\n [classCircle]=\"item.classCircle || 'libs-ui-font-h5r'\"\n [active]=\"item[fieldKey()] === keySelected()\"\n [class.libs-ui-disable]=\"item.disable || disable()\"\n [class.pointer-events-none]=\"item.disable || disable()\" />\n }\n @if (item.configButtonRight) {\n <libs_ui-components-buttons-button [type]=\"item.configButtonRight.type || 'button-link-third'\"\n [classInclude]=\"item.configButtonRight.classInclude || ''\"\n [classIconLeft]=\"item.configButtonRight.classIconLeft ||''\"\n [classLabel]=\"item.configButtonRight.classLabel || ''\"\n [classIconRight]=\"item.configButtonRight.classIconRight ||''\"\n [popover]=\"item.configButtonRight.popover || {}\"\n [label]=\"item.configButtonRight.label ||''\"\n (outClick)=\"handlerClickButton($event, 'configButtonRight')\" />\n }\n @if (item.specificDisplay && tabs().actionRightConfig?.(); as right) {\n <libs_ui-components-popover [class]=\"right.classInclude || 'ml-[8px]'\"\n [class.libs-ui-tab-header-center-item-action]=\"right.onlyShowWhenHoverItemActive\"\n [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [class.pointer-events-none]=\"item.disable || disable() || item[fieldKey()] !== keySelected()\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [elementRefCustom]=\"right.onlyShowWhenHoverItemActive ? undefined : itemEl\"\n [config]=\"{\n zIndex: right.config?.()?.zIndex || 1000,\n maxHeight: right.config?.()?.maxHeight || 287,\n maxWidth: right.config?.()?.maxWidth || 2048,\n width: right.config?.()?.width || 220, \n direction: right.config?.()?.direction || 'bottom',\n template: right.config?.()?.template || actionEl,\n whiteTheme: true,\n ignoreArrow: true,\n position: right.config?.()?.position || { mode: 'start', distance: 0 }\n }\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerPopoverFunctionControlEvent($event)\">\n @if (right.customView) {\n <div [innerHtml]=\"item[fieldKey()] | LibsUiPipesCallFunctionInTemplatePipe:right.customView:item\"></div>\n } @else {\n <i [attr.active]=\"item[fieldKey()] === keySelected()\"\n [attr.completed]=\"step() <= (tabs().stepCompleted || -1)\"\n [class]=\"right.onlyShowWhenHoverItemActive ? 'libs-ui-icon-more-vertical rotate-90 libs-ui-tab-header-center-item-icon' : 'libs-ui-icon-chevron-right rotate-90 libs-ui-tab-header-center-item-icon'\">\n </i>\n }\n </libs_ui-components-popover>\n <ng-template #actionEl>\n <libs_ui-components-list [config]=\"right.listViewConfig()\"\n [maxItemShow]=\"5\"\n [hiddenInputSearch]=\"true\"\n [paddingLeftItem]=\"true\"\n (outSelectKey)=\"handlerSelectedKey($event)\" />\n </ng-template>\n }\n </div>\n }\n","import { IDataFunctionCallInConfig, IListViewConfigItem } from \"@libs-ui/components-list\";\nimport { returnListObject } from \"@libs-ui/services-http-request\";\nimport { escapeHtml, isNil } from \"@libs-ui/utils\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { of } from \"rxjs\";\nimport { ITabItem, ITabs } from \"../interfaces/tab.interface\";\n\nexport const tabMoreListConfig = (translate: TranslateService, fieldKey: string, fieldLabel: string, tabs: ITabs): IListViewConfigItem => {\n return {\n type: 'text',\n httpRequestData: {\n serviceOther: returnListObject(tabs.items().filter(item => !item().specificDisplay).map(item => item())),\n functionName: 'listObservable',\n argumentsValue: []\n },\n configTemplateText: {\n fieldKey: fieldKey || 'key',\n getClassItem: () => '!pl-[16px] !py-[12px]',\n classRows: 'w-full',\n rows: [{\n classCols: 'flex items-center',\n cols: [\n {\n getPopover: (item: ITabItem) => item.iconLeft ? { classInclude: 'flex', dataView: `<i class=\"${item.iconLeft} text-[16px] mr-[8px]\"></i>` } : undefined\n },\n {\n classCol: 'libs-ui-font-h6m text-[#6a7383]',\n getValue: (data: IDataFunctionCallInConfig) => of(escapeHtml(translate.instant(data.item[fieldLabel] || ' ')))\n },\n {\n getPopover: (item: ITabItem) => item.popover ? { config: item.popover } : undefined\n },\n {\n getPopover: (item: ITabItem) => item.iconRight ? { classInclude: 'flex', dataView: `<i class=\"${item.iconRight} text-[16px] ml-[8px]\"></i>` } : undefined\n },\n {\n getConfigBadge: (item: ITabItem) => {\n if (isNil(item.count)) {\n return undefined;\n }\n return {\n mode: item.modeCount || 'x+',\n count: item.count,\n maxCount: item.maxCount || 99,\n classCircle: item.classCircle || 'libs-ui-font-h5r'\n };\n }\n }\n ]\n }]\n }\n };\n}","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, model, OnDestroy, OnInit, output, signal, viewChild, WritableSignal } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IDrop, LibsUiComponentsDragContainerDirective, LibsUiDragItemDirective } from '@libs-ui/components-drag-drop';\nimport { IListDataEmitKey, IListViewConfigItem, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { IPopover, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { convertObjectToSignal, isNil, uuid } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ITabCssConfig, ITabFunctionControlEvent, ITabItem, ITabItemEvent, ITabs, TYPE_TAB_MODE } from './interfaces/tab.interface';\nimport { LibsUiComponentsTabsItemComponent } from './item/item.component';\nimport { tabMoreListConfig } from './utils/tabs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsDragContainerDirective,\n LibsUiDragItemDirective,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsTabsItemComponent,\n LibsUiComponentsListComponent\n ]\n})\nexport class LibsUiComponentsTabsComponent implements OnInit, OnDestroy {\n\n protected itemsDisplay = signal<Array<WritableSignal<ITabItem>>>([]);\n protected displayMoreItem = signal<boolean>(false);\n protected tabMoreListConfig = signal<IListViewConfigItem | undefined>(undefined);\n protected changeViewTab = new Subject<void>();\n protected groupName = signal<string>(uuid());\n protected stylesDragDropOverrideComputed = computed(() => this.updateStylesDragDropOverride());\n\n private popoverFunctionControlEvent = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private onDestroy = new Subject<void>();\n\n readonly mode = input<TYPE_TAB_MODE>('left');\n readonly fieldKey = input<string>('key');\n readonly fieldLabel = input<string>('label');\n readonly keySelected = model.required<string>();\n readonly disable = input<boolean>();\n readonly tabs = input.required<ITabs>();\n readonly heightTabItem = input<number>(40);\n readonly ignoreCalculatorTab = input<boolean>(false);\n readonly size = input<'langer' | 'medium'>('medium');\n readonly disableLabel = input<boolean>();\n readonly allowDragDropPosition = input<boolean>();\n readonly zIndex = input<number>();\n readonly configCss = model<ITabCssConfig>();\n readonly popoverShowMoreTabItem = input<IPopover>();\n readonly checkCanChangeTabSelected = input<() => boolean | Promise<boolean>>();\n\n readonly outKeySelected = output<string>();\n readonly outFunctionsControl = output<ITabFunctionControlEvent>();\n readonly outDragTabChange = output<void>();\n readonly outDisplayMoreItem = output<boolean>();\n readonly outActionSelected = output<ITabItemEvent>();\n\n private readonly headerEl = viewChild.required<ElementRef>('headerEl');\n private readonly headerLeftEl = viewChild.required<ElementRef>('headerLeftEl');\n private readonly headerRightEl = viewChild.required<ElementRef>('headerRightEl');\n\n private translate = inject(TranslateService);\n\n ngOnInit() {\n this.updateTabsCssConfig();\n if (this.ignoreCalculatorTab()) {\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n }\n this.outFunctionsControl.emit({\n addTabItem: this.addTabItem.bind(this),\n calculatorTabItemsDisplay: this.calculatorTabsItemDisplay.bind(this),\n selectedTabItem: this.handlerSelectedTabItem.bind(this)\n });\n if (this.mode() !== 'left' || this.ignoreCalculatorTab()) {\n return;\n }\n fromEvent(window, 'resize').pipe(debounceTime(250), takeUntil(this.onDestroy)).subscribe(() => {\n if (!this.tabs().items().length) {\n return;\n }\n this.displayMoreItem.set(false);\n this.calculatorTabsItemDisplay();\n });\n this.changeViewTab.pipe(debounceTime(20), takeUntil(this.onDestroy)).subscribe(() => this.calculatorTabsItemDisplay());\n }\n\n private updateTabsCssConfig() {\n if (this.configCss()) {\n return;\n }\n switch (this.mode()) {\n case 'left':\n this.configCss.set({\n first: 'ml-[20px] mr-[16px]',\n other: 'ml-[20px] mr-[16px]'\n });\n break;\n case 'center':\n this.configCss.set({\n first: 'px-[12px] ml-[18px] mr-[18px]',\n other: 'px-[12px] mx-[18px]',\n header: 'flex justify-center'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n case 'center-has-line':\n this.configCss.set({\n first: 'px-[16px]',\n other: 'px-[16px]',\n headerCenter: 'items-center'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n case 'space-between':\n this.configCss.set({\n first: 'mx-auto',\n other: 'mx-auto',\n headerCenter: 'w-full'\n });\n this.tabs().items().map(item => item.update(data => ({ ...data, specificDisplay: true })));\n break;\n }\n }\n\n private updateStylesDragDropOverride() {\n if (this.allowDragDropPosition()) {\n return [\n {\n className: 'libs-ui-drag-drop-item-placeholder',\n styles: ''\n },\n {\n className: 'libs-ui-drag-drop-item',\n styles: 'cursor: move;'\n },\n {\n className: 'libs-ui-drag-drop-item-dragging',\n styles: 'cursor: move; background: #dddddd;'\n }\n ];\n }\n return [\n {\n className: 'libs-ui-drag-drop-item',\n styles: ''\n },\n {\n className: 'libs-ui-drag-drop-item-disable',\n styles: ''\n }\n ]\n }\n\n protected handlerDropContainer(event: IDrop) {\n const { itemDragInfo } = event;\n if (!itemDragInfo) {\n return;\n }\n const items = this.tabs().items;\n const { indexDrag, indexDrop } = itemDragInfo;\n if (isNil(indexDrag) || isNil(indexDrop) || indexDrop === indexDrag) {\n return;\n }\n const itemDrag = items()[indexDrag as number];\n items.update(items => {\n items.splice(indexDrag as number, 1);\n items.splice(indexDrop as number, 0, itemDrag);\n return [...items];\n });\n this.outDragTabChange.emit();\n }\n\n protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControlEvent.set(event);\n }\n\n private async handlerSelectedTabItem(key: string, resetDisable = true) {\n const itemSelected = this.tabs().items().find(item => item()[this.fieldKey()] === key);\n if (!itemSelected) {\n return;\n }\n if (resetDisable) {\n itemSelected.update(item => ({ ...item, disable: false }));\n }\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, itemSelected);\n }\n\n protected handlerSelectedKey(event: IListDataEmitKey | undefined) {\n if (!event) {\n return;\n }\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, convertObjectToSignal(event.item));\n this.outDragTabChange.emit();\n }\n\n protected async handlerClickItem(event: Event, item: WritableSignal<ITabItem>) {\n event.stopPropagation();\n if (item().disable || this.disable()) {\n return;\n }\n const checkCanChangeTabSelected = this.checkCanChangeTabSelected();\n if (checkCanChangeTabSelected) {\n const state = await checkCanChangeTabSelected();\n if (state) {\n this.changeItemSelected(item);\n }\n return;\n }\n this.changeItemSelected(item);\n }\n\n private changeItemSelected(item: WritableSignal<ITabItem>) {\n this.keySelected.set(item()[this.fieldKey()]);\n this.outKeySelected.emit(this.keySelected());\n this.popoverFunctionControlEvent()?.removePopoverOverlay();\n this.calculatorTabsItemDisplay();\n }\n\n protected async handlerActionSelected(event: ITabItemEvent) {\n this.outActionSelected.emit(event);\n }\n\n private async addTabItem(item: WritableSignal<ITabItem>, selected = true, addFirst?: boolean) {\n const items = this.tabs().items;\n items.update(items => {\n if (addFirst) {\n return [item, ...items];\n }\n return [...items, item];\n });\n if (selected) {\n this.handlerClickItem({ stopPropagation: () => { return } } as Event, item);\n }\n }\n\n protected async calculatorTabsItemDisplay() {\n let items = this.tabs().items();\n const indexItemSelected = items.findIndex(item => item()[this.fieldKey()] === this.keySelected());\n if (indexItemSelected < 0) {\n return;\n }\n this.displayMoreItem.set(false);\n let displayMoreItem = false;\n const headerWidth = this.headerEl().nativeElement.clientWidth || 0;\n const itemSelected = items[indexItemSelected];\n const itemSelectedWidth = itemSelected().specificWidth;\n let totalWidthItemsDisplay = (this.headerLeftEl().nativeElement.clientWidth || 0) + (this.headerRightEl().nativeElement.clientWidth || 0) + 32;\n items.forEach((item, index) => {\n if (!item().specificWidth) {\n return;\n }\n item.update(data => ({ ...data, specificDisplay: false }));\n const itemWidth = item().specificWidth || 0;\n const width = totalWidthItemsDisplay + itemWidth + (index < indexItemSelected ? itemSelectedWidth : 0);\n totalWidthItemsDisplay += itemWidth;\n if (width > headerWidth) {\n displayMoreItem = true;\n return;\n }\n item.update(data => ({ ...data, specificDisplay: true }));\n });\n itemSelected.update(data => ({ ...data, specificDisplay: true }));\n const display = items.filter(item => item().specificDisplay === true);\n const notDisplay = items.filter(item => item().specificDisplay === false);\n items = display.concat(notDisplay);\n items.forEach((item, index) => item.update(data => ({ ...data, order: index })));\n this.tabs().items.update(items => items.sort((prev, next) => (prev().order || 0) - (next().order || 0)));\n this.displayMoreItem.set(displayMoreItem);\n this.outDisplayMoreItem.emit(this.displayMoreItem());\n this.itemsDisplay.set(this.tabs().items().filter(item => item().specificDisplay));\n this.tabMoreListConfig.set(tabMoreListConfig(this.translate, this.fieldKey(), this.fieldLabel(), this.tabs()));\n }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","<div class=\"libs-ui-tab\">\n <div #headerEl\n class=\"libs-ui-tab-header z-[1] {{ configCss()?.header || '' }} {{ tabs().classIncludeHeader || '' }}\"\n [style.minHeight.px]=\"heightTabItem()\">\n <div #headerLeftEl\n class='libs-ui-tab-header-left'>\n <ng-content select=\"div.libs-ui-tab-header-left\"></ng-content>\n </div>\n <div class=\"libs-ui-tab-header-center {{ configCss()?.headerCenter || '' }} {{ tabs().classIncludeHeaderCenter || '' }}\">\n <div class=\"!flex w-full\"\n #elementContainerEl\n LibsUiComponentsDragContainerDirective\n [stylesOverride]=\"stylesDragDropOverrideComputed()\"\n [groupName]=\"groupName()\"\n [(items)]=\"itemsDisplay\"\n [directionDrag]=\"'horizontal'\"\n [disableDragContainer]=\"!allowDragDropPosition()\"\n [acceptDragSameGroup]=\"allowDragDropPosition()\"\n (outDroppedContainer)=\"handlerDropContainer($event)\">\n @for (item of itemsDisplay(); track item) {\n <div LibsUiDragItemDirective\n [disable]=\"disable() || !allowDragDropPosition()\"\n [groupName]=\"groupName()\"\n [elementContainer]=\"elementContainerEl\"\n [dragBoundary]=\"true\"\n [dragBoundaryAcceptMouseLeaveContainer]=\"true\"\n class=\"relative libs-ui-tab-item-container\"\n [style.width.px]=\"mode() === 'space-between' ? (elementContainerEl.clientWidth/(itemsDisplay().length || 1)) : undefined\"\n [class.flex]=\"mode() === 'center-has-line'\"\n [class.items-center]=\"mode() === 'center-has-line'\">\n @if (allowDragDropPosition() && !disable()) {\n <span class=\"libs-ui-icon-arrange text-[#9ca2ad] absolute top-[14px] left-[4px]\"></span>\n }\n <libs_ui-components-tabs-item class=\"h-full w-full {{ tabs().classIncludeItem || '' }}\"\n [tabs]=\"tabs()\"\n [size]=\"size()\"\n [(item)]=\"item\"\n [step]=\"$index+1\"\n [disable]=\"disable()\"\n [disableLabel]=\"disableLabel()\"\n [keySelected]=\"keySelected()\"\n [fieldLabel]=\"fieldLabel()\"\n [fieldKey]=\"fieldKey()\"\n [cssDefault]=\"($first ? configCss()?.first : configCss()?.other) || ''\"\n [zIndex]=\"zIndex()\"\n [mode]=\"mode()\"\n [ignoreCalculatorTab]=\"true\"\n [changeViewTab]=\"changeViewTab\"\n (click)=\"handlerClickItem($event, item)\"\n (outActionSelected)=\"handlerActionSelected($event)\" />\n @if (mode() === 'center-has-line' && !$last) {\n <div class=\"w-[40px] h-[1px] bg-[#e6e7ea]\"></div>\n }\n </div>\n }\n </div>\n </div>\n <div class=\"flex items-center\"\n [class.ml-auto]=\"displayMoreItem() && !tabs().viewMoreIgnoreMarginLeft\">\n @if (displayMoreItem()) {\n <libs_ui-components-popover class=\"w-full h-full flex items-center\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n zIndex: popoverShowMoreTabItem()?.config?.zIndex || 1000,\n maxHeight: popoverShowMoreTabItem()?.config?.maxHeight || 287,\n maxWidth: popoverShowMoreTabItem()?.config?.maxWidth || 2048,\n width: popoverShowMoreTabItem()?.config?.width || 277, \n direction: popoverShowMoreTabItem()?.config?.direction || 'bottom',\n template: popoverShowMoreTabItem()?.config?.template || menuEl,\n whiteTheme: true,\n ignoreArrow: true,\n position: popoverShowMoreTabItem()?.config?.position || { mode: 'end', distance: 0 }\n }\"\n (outFunctionsControl)=\"handlerPopoverFunctionControlEvent($event)\">\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [classInclude]=\"'!p-[8px]'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical rotate-90 text-[16px] mr-0'\"\n [popover]=\"{config: {content: popoverShowMoreTabItem()?.config?.content || 'i18n_view_more'}}\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-popover>\n }\n </div>\n <div #headerRightEl\n class=\"libs-ui-tab-header-right {{ tabs().classIncludeHeaderRight || '' }}\">\n <ng-content select=\"div.libs-ui-tab-header-right\"></ng-content>\n </div>\n </div>\n <div class=\"absolute top-0 z-0 w-full\">\n <div class=\"libs-ui-tab-header {{ configCss()?.header || '' }} {{ tabs().classIncludeHeader || '' }}\"\n [style.minHeight.px]=\"heightTabItem()\">\n <div class=\"libs-ui-tab-header-center {{ configCss()?.headerCenter || '' }} {{ tabs().classIncludeHeaderCenter || '' }}\">\n @for (item of tabs().items(); track item) {\n <libs_ui-components-tabs-item class=\"h-full w-full {{ tabs().classIncludeItem || '' }}\"\n [tabs]=\"tabs()\"\n [size]=\"size()\"\n [(item)]=\"item\"\n [step]=\"$index+1\"\n [disable]=\"disable()\"\n [disableLabel]=\"disableLabel()\"\n [keySelected]=\"keySelected()\"\n [fieldLabel]=\"fieldLabel()\"\n [fieldKey]=\"fieldKey()\"\n [cssDefault]=\"($first ? configCss()?.first : configCss()?.other) || ''\"\n [zIndex]=\"zIndex()\"\n [mode]=\"mode()\"\n [changeViewTab]=\"changeViewTab\"\n [ignoreCalculatorTab]=\"ignoreCalculatorTab()\"\n (click)=\"handlerClickItem($event, item)\" />\n }\n </div>\n </div>\n </div>\n</div>\n<ng-template #menuEl>\n <libs_ui-components-list [config]=\"tabMoreListConfig()\"\n [maxItemShow]=\"5\"\n [hiddenInputSearch]=\"true\"\n [paddingLeftItem]=\"true\"\n (outSelectKey)=\"handlerSelectedKey($event)\" />\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["debounceTime"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { WritableSignal } from "@angular/core";
2
2
  import { TYPE_BADGE_MODE } from "@libs-ui/components-badge";
3
3
  import { IButton } from "@libs-ui/components-buttons-button";
4
+ import { IListViewConfigItem } from "@libs-ui/components-list";
4
5
  import { IPopoverOverlay } from "@libs-ui/components-popover";
6
+ import { Observable } from "rxjs";
5
7
  export interface ITabs {
6
8
  hasImage?: boolean;
7
9
  hasCount?: boolean;
@@ -15,6 +17,13 @@ export interface ITabs {
15
17
  classIncludeHeaderRight?: string;
16
18
  classIncludeItem?: string;
17
19
  maxWidthTextLabelItem?: number;
20
+ actionRightConfig?: WritableSignal<{
21
+ listViewConfig: WritableSignal<IListViewConfigItem>;
22
+ config?: WritableSignal<IPopoverOverlay>;
23
+ onlyShowWhenHoverItemActive?: boolean;
24
+ classInclude?: string;
25
+ customView?: () => Observable<string>;
26
+ }>;
18
27
  viewMoreIgnoreMarginLeft?: boolean;
19
28
  items: WritableSignal<Array<WritableSignal<ITabItem>>>;
20
29
  }
@@ -1,12 +1,16 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
+ import { IPopoverFunctionControlEvent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';
2
3
  import { Subject } from 'rxjs';
3
4
  import { ITabItem, ITabItemEvent, ITabs, TYPE_TAB_MODE } from '../interfaces/tab.interface';
5
+ import { IListDataEmitKey } from '@libs-ui/components-list';
4
6
  import * as i0 from "@angular/core";
5
7
  export declare class LibsUiComponentsTabsItemComponent implements OnInit, OnDestroy {
6
8
  protected labelComputed: import("@angular/core").Signal<string>;
9
+ protected actionShowing: import("@angular/core").WritableSignal<boolean>;
7
10
  private mutationObserver;
8
11
  private mutationObserverSubject;
9
12
  private onDestroy;
13
+ private popoverFunctionControlEvent;
10
14
  readonly ignoreCalculatorTab: import("@angular/core").InputSignal<boolean>;
11
15
  readonly step: import("@angular/core").InputSignal<number>;
12
16
  readonly mode: import("@angular/core").InputSignal<TYPE_TAB_MODE>;
@@ -21,19 +25,18 @@ export declare class LibsUiComponentsTabsItemComponent implements OnInit, OnDest
21
25
  readonly disableLabel: import("@angular/core").InputSignal<boolean | undefined>;
22
26
  readonly zIndex: import("@angular/core").InputSignal<number | undefined>;
23
27
  readonly changeViewTab: import("@angular/core").InputSignal<Subject<void>>;
24
- readonly outSelectAction: import("@angular/core").OutputEmitterRef<ITabItemEvent>;
28
+ readonly outActionSelected: import("@angular/core").OutputEmitterRef<ITabItemEvent>;
25
29
  private element;
26
30
  private translateService;
27
31
  constructor();
28
32
  ngOnInit(): void;
29
33
  private updateSpecificWidth;
30
34
  protected handlerImgError(event: Event): void;
31
- protected handlerSelectAction(event: {
32
- key: string;
33
- item: any;
34
- }): void;
35
+ protected handlerSelectedKey(event: IListDataEmitKey | undefined): void;
36
+ protected handlerPopoverFunctionControlEvent(event: IPopoverFunctionControlEvent): void;
37
+ protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT): void;
35
38
  protected handlerClickButton(event: Event, type: 'configButtonLeft' | 'configButtonRight'): void;
36
39
  ngOnDestroy(): void;
37
40
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsTabsItemComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsTabsItemComponent, "libs_ui-components-tabs-item", never, { "ignoreCalculatorTab": { "alias": "ignoreCalculatorTab"; "required": true; "isSignal": true; }; "step": { "alias": "step"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "item": { "alias": "item"; "required": true; "isSignal": true; }; "keySelected": { "alias": "keySelected"; "required": true; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": true; "isSignal": true; }; "fieldKey": { "alias": "fieldKey"; "required": true; "isSignal": true; }; "cssDefault": { "alias": "cssDefault"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "disableLabel": { "alias": "disableLabel"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "changeViewTab": { "alias": "changeViewTab"; "required": true; "isSignal": true; }; }, { "item": "itemChange"; "outSelectAction": "outSelectAction"; }, never, never, true, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsTabsItemComponent, "libs_ui-components-tabs-item", never, { "ignoreCalculatorTab": { "alias": "ignoreCalculatorTab"; "required": true; "isSignal": true; }; "step": { "alias": "step"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "item": { "alias": "item"; "required": true; "isSignal": true; }; "keySelected": { "alias": "keySelected"; "required": true; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": true; "isSignal": true; }; "fieldKey": { "alias": "fieldKey"; "required": true; "isSignal": true; }; "cssDefault": { "alias": "cssDefault"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "disableLabel": { "alias": "disableLabel"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "changeViewTab": { "alias": "changeViewTab"; "required": true; "isSignal": true; }; }, { "item": "itemChange"; "outActionSelected": "outActionSelected"; }, never, never, true, never>;
39
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-ui/components-tabs",
3
- "version": "0.2.43",
3
+ "version": "0.2.44",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"
@@ -27,7 +27,7 @@ export declare class LibsUiComponentsTabsComponent implements OnInit, OnDestroy
27
27
  readonly ignoreCalculatorTab: import("@angular/core").InputSignal<boolean>;
28
28
  readonly size: import("@angular/core").InputSignal<"langer" | "medium">;
29
29
  readonly disableLabel: import("@angular/core").InputSignal<boolean | undefined>;
30
- readonly hasAnimation: import("@angular/core").InputSignal<boolean>;
30
+ readonly allowDragDropPosition: import("@angular/core").InputSignal<boolean | undefined>;
31
31
  readonly zIndex: import("@angular/core").InputSignal<number | undefined>;
32
32
  readonly configCss: import("@angular/core").ModelSignal<ITabCssConfig | undefined>;
33
33
  readonly popoverShowMoreTabItem: import("@angular/core").InputSignal<IPopover | undefined>;
@@ -36,12 +36,11 @@ export declare class LibsUiComponentsTabsComponent implements OnInit, OnDestroy
36
36
  readonly outFunctionsControl: import("@angular/core").OutputEmitterRef<ITabFunctionControlEvent>;
37
37
  readonly outDragTabChange: import("@angular/core").OutputEmitterRef<void>;
38
38
  readonly outDisplayMoreItem: import("@angular/core").OutputEmitterRef<boolean>;
39
+ readonly outActionSelected: import("@angular/core").OutputEmitterRef<ITabItemEvent>;
39
40
  private readonly headerEl;
40
41
  private readonly headerLeftEl;
41
42
  private readonly headerRightEl;
42
- private tabsService;
43
43
  private translate;
44
- constructor();
45
44
  ngOnInit(): void;
46
45
  private updateTabsCssConfig;
47
46
  private updateStylesDragDropOverride;
@@ -51,10 +50,10 @@ export declare class LibsUiComponentsTabsComponent implements OnInit, OnDestroy
51
50
  protected handlerSelectedKey(event: IListDataEmitKey | undefined): void;
52
51
  protected handlerClickItem(event: Event, item: WritableSignal<ITabItem>): Promise<void>;
53
52
  private changeItemSelected;
54
- protected handlerSelectAction(event: ITabItemEvent): Promise<void>;
53
+ protected handlerActionSelected(event: ITabItemEvent): Promise<void>;
55
54
  private addTabItem;
56
55
  protected calculatorTabsItemDisplay(): Promise<void>;
57
56
  ngOnDestroy(): void;
58
57
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsTabsComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsTabsComponent, "libs_ui-components-tabs", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "fieldKey": { "alias": "fieldKey"; "required": false; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": false; "isSignal": true; }; "keySelected": { "alias": "keySelected"; "required": true; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "heightTabItem": { "alias": "heightTabItem"; "required": false; "isSignal": true; }; "ignoreCalculatorTab": { "alias": "ignoreCalculatorTab"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableLabel": { "alias": "disableLabel"; "required": false; "isSignal": true; }; "hasAnimation": { "alias": "hasAnimation"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "configCss": { "alias": "configCss"; "required": false; "isSignal": true; }; "popoverShowMoreTabItem": { "alias": "popoverShowMoreTabItem"; "required": false; "isSignal": true; }; "checkCanChangeTabSelected": { "alias": "checkCanChangeTabSelected"; "required": false; "isSignal": true; }; }, { "keySelected": "keySelectedChange"; "configCss": "configCssChange"; "outKeySelected": "outKeySelected"; "outFunctionsControl": "outFunctionsControl"; "outDragTabChange": "outDragTabChange"; "outDisplayMoreItem": "outDisplayMoreItem"; }, never, ["div.libs-ui-tab-header-left", "div.libs-ui-tab-header-right"], true, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsTabsComponent, "libs_ui-components-tabs", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "fieldKey": { "alias": "fieldKey"; "required": false; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": false; "isSignal": true; }; "keySelected": { "alias": "keySelected"; "required": true; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "heightTabItem": { "alias": "heightTabItem"; "required": false; "isSignal": true; }; "ignoreCalculatorTab": { "alias": "ignoreCalculatorTab"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableLabel": { "alias": "disableLabel"; "required": false; "isSignal": true; }; "allowDragDropPosition": { "alias": "allowDragDropPosition"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "configCss": { "alias": "configCss"; "required": false; "isSignal": true; }; "popoverShowMoreTabItem": { "alias": "popoverShowMoreTabItem"; "required": false; "isSignal": true; }; "checkCanChangeTabSelected": { "alias": "checkCanChangeTabSelected"; "required": false; "isSignal": true; }; }, { "keySelected": "keySelectedChange"; "configCss": "configCssChange"; "outKeySelected": "outKeySelected"; "outFunctionsControl": "outFunctionsControl"; "outDragTabChange": "outDragTabChange"; "outDisplayMoreItem": "outDisplayMoreItem"; "outActionSelected": "outActionSelected"; }, never, ["div.libs-ui-tab-header-left", "div.libs-ui-tab-header-right"], true, never>;
60
59
  }
package/utils/tabs.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { IListViewConfigItem } from "@libs-ui/components-list";
2
2
  import { TranslateService } from "@ngx-translate/core";
3
3
  import { ITabs } from "../interfaces/tab.interface";
4
- import { LibsUiTabsService } from "../services/tab.service";
5
- export declare const tabMoreListConfig: (tabsService: LibsUiTabsService, translate: TranslateService, fieldKey: string, fieldLabel: string, tabs: ITabs) => IListViewConfigItem;
4
+ export declare const tabMoreListConfig: (translate: TranslateService, fieldKey: string, fieldLabel: string, tabs: ITabs) => IListViewConfigItem;
@@ -1,17 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { of } from "rxjs";
3
- import * as i0 from "@angular/core";
4
- export class LibsUiTabsService {
5
- listTabItemsMore(items) {
6
- return of({
7
- code: 200,
8
- data: items
9
- });
10
- }
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTabsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTabsService });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTabsService, decorators: [{
15
- type: Injectable
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFicy9zcmMvc2VydmljZXMvdGFiLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxQixNQUFNLE9BQU8saUJBQWlCO0lBRTVCLGdCQUFnQixDQUFDLEtBQXNCO1FBQ3JDLE9BQU8sRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLEdBQUc7WUFDVCxJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBUFUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElUYWJJdGVtIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvdGFiLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgb2YgfSBmcm9tIFwicnhqc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlic1VpVGFic1NlcnZpY2Uge1xuXG4gIGxpc3RUYWJJdGVtc01vcmUoaXRlbXM6IEFycmF5PElUYWJJdGVtPikge1xuICAgIHJldHVybiBvZih7XG4gICAgICBjb2RlOiAyMDAsXG4gICAgICBkYXRhOiBpdGVtc1xuICAgIH0pXG4gIH1cblxufVxuIl19
@@ -1,10 +0,0 @@
1
- import { ITabItem } from "../interfaces/tab.interface";
2
- import * as i0 from "@angular/core";
3
- export declare class LibsUiTabsService {
4
- listTabItemsMore(items: Array<ITabItem>): import("rxjs").Observable<{
5
- code: number;
6
- data: ITabItem[];
7
- }>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiTabsService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<LibsUiTabsService>;
10
- }