@libs-ui/components-pages-template-detail 0.2.356-9 → 0.2.357-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-pages-template-detail.mjs","sources":["../../../../../../libs-ui/components/pages-template/detail/src/detail-v2/detail-v2.component.ts","../../../../../../libs-ui/components/pages-template/detail/src/detail-v2/detail-v2.component.html","../../../../../../libs-ui/components/pages-template/detail/src/detail.component.ts","../../../../../../libs-ui/components/pages-template/detail/src/detail.component.html","../../../../../../libs-ui/components/pages-template/detail/src/libs-ui-components-pages-template-detail.ts"],"sourcesContent":["import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, Signal, computed, input, model, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-buttons-dropdown';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioGroupComponent } from '@libs-ui/components-radio-group';\nimport { IRadioEvent } from '@libs-ui/components-radio-single';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { ISkeletonConfig, LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { ISwitch, ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { LibsUiPipesCallFunctionInTemplatePipe } from '@libs-ui/pipes-call-function-in-template';\nimport { LibsUiPipesEscapeHtmlPipe } from '@libs-ui/pipes-escape-html';\nimport { escapeHtml, get } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPagesTemplateDetailConfigCenter, IPagesTemplateDetailConfigRight, IPagesTemplateDetailConfigTitle } from '../interfaces/config.interface';\nimport { IPageDetailFunctionControl } from '../interfaces/function-control.interface';\nimport { IPageDetailV2BodyConfig, IPageDetailV2SectionData } from './interfaces/detail-v2.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pages_template-detail_v2',\n templateUrl: './detail-v2.component.html',\n styleUrls: ['./detail-v2.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n NgComponentOutlet,\n NgTemplateOutlet,\n TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsRadioGroupComponent,\n LibsUiComponentsSwitchComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsButtonsDropdownComponent,\n LibsUiComponentsSkeletonComponent,\n LibsUiPipesCallFunctionInTemplatePipe,\n LibsUiPipesEscapeHtmlPipe,\n ],\n})\nexport class LibsUiComponentsPagesTemplateDetailV2Component implements OnInit {\n // #region --- INPUTS (kế thừa từ V1) ---\n readonly zIndex = input<number, number | undefined>(1000, { transform: (val) => val ?? 1000 });\n readonly configRight = input<Array<IPagesTemplateDetailConfigRight>>();\n readonly configTitle = input<IPagesTemplateDetailConfigTitle>();\n readonly configCenter = input<IPagesTemplateDetailConfigCenter>();\n readonly classIncludeHeader = input<string>();\n readonly isSplitHeaderRatio = input<boolean>();\n // #endregion\n\n // #region --- INPUTS (mới trong V2) ---\n /** Config để lazy load component vào vùng body */\n readonly bodyConfig = input<IPageDetailV2BodyConfig, IPageDetailV2BodyConfig | undefined>({}, { transform: (v) => v || {} });\n // #endregion\n\n // #region --- MODELS ---\n readonly disable = model<boolean>(false);\n // #endregion\n\n // #region --- OUTPUTS ---\n readonly outScroll = output<Event>();\n readonly outClose = output<boolean>();\n readonly outSelectedMenuDropdown = output<IEmitSelectKey | undefined>();\n readonly outSelectedButtonDropdown = output<IEmitSelectKey>();\n readonly outFunctionControl = output<IPageDetailFunctionControl>();\n readonly outSelectedRadio = output<IRadioEvent>();\n readonly outStateDisable = output<boolean>();\n readonly outTooltipButtonFunctionControl = output<IPopoverFunctionControlEvent>();\n // #endregion\n\n // #region --- INTERNAL STATE ---\n private dropdownFunctionControl!: IDropdownFunctionControlEvent;\n // #endregion\n\n // #region --- COMPUTED ---\n protected readonly configTitleComputed = computed(() => {\n const config = this.configTitle()?.config;\n if (!config) {\n return { content: 'i18n_back_to_list' };\n }\n if (!config.content) {\n config.content = 'i18n_back_to_list';\n return config;\n }\n return { ...config, content: escapeHtml(config.content) };\n });\n\n /** Dữ liệu state truyền vào Component Outlet body */\n protected readonly sectionData = computed<IPageDetailV2SectionData>(() => ({\n disable: this.disable(),\n }));\n\n /** Skeleton config cho Body (Dùng computed để resolve default logic) */\n protected readonly resolvedSkeletonBody: Signal<ISkeletonConfig> = computed(() => {\n return (\n get(this.bodyConfig, 'skeletonConfig') ?? {\n repeat: 3,\n styleMarginBottom: 16,\n rows: [{ item: { classInclude: 'w-full h-[100px] rounded-[8px]' } }],\n }\n );\n });\n // #endregion\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n // #region --- PUBLIC METHODS ---\n public get FunctionsControl(): IPageDetailFunctionControl {\n return {\n setStateDisable: this.setStateDisable.bind(this),\n };\n }\n // #endregion\n\n // #region --- EVENT HANDLERS ---\n protected handlerClickAction(event: IButton) {\n if (event && event.action) {\n event.action();\n }\n }\n\n protected async handlerSwitch(event: ISwitch, swicthEvent: ISwitchEvent) {\n if (event && event.action) {\n await event.action(swicthEvent);\n }\n }\n\n protected handlerClose(e: Event) {\n e.stopPropagation();\n this.outClose.emit(true);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event !== 'click') {\n return;\n }\n this.outClose.emit(true);\n }\n\n protected handlerSelectedKey(event?: IEmitSelectKey) {\n this.outSelectedMenuDropdown.emit(event);\n this.dropdownFunctionControl?.reset();\n this.dropdownFunctionControl?.removeList();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected handlerSelectedButtonDropdownItem(event: any) {\n this.outSelectedButtonDropdown.emit(event);\n }\n\n protected handlerDropdownFunctionControl(event: IDropdownFunctionControlEvent) {\n this.dropdownFunctionControl = event;\n }\n\n protected handlerChangeRadio(event: IRadioEvent) {\n this.outSelectedRadio.emit(event);\n }\n\n protected handlerFunctionControlTooltipButton(event: IPopoverFunctionControlEvent) {\n this.outTooltipButtonFunctionControl.emit(event);\n }\n\n protected handlerScroll(event: Event) {\n this.outScroll.emit(event);\n }\n // #endregion\n\n // #region --- PRIVATE LOGIC ---\n private async setStateDisable(stateDisable: boolean) {\n this.disable.set(stateDisable);\n this.outStateDisable.emit(this.disable());\n }\n // #endregion\n}\n","<div\n class=\"libs-ui-components-page_detail\"\n [style.zIndex]=\"zIndex()\">\n <!-- ===================== HEADER ===================== -->\n <!-- Giữ nguyên hoàn toàn từ V1 -->\n @if (configTitle()?.header?.content; as headerContent) {\n <div class=\"libs-ui-font-h3s py-[10px] pl-[24px] libs-ui-border-bottom-general bg-white {{ configTitle()?.header?.classInclude || '' }}\">{{ headerContent | translate }}</div>\n }\n <div\n [class.row]=\"!isSplitHeaderRatio()\"\n class=\"flex items-center px-[16px] py-[8px] justify-between bg-white libs-ui-border-top-general {{ classIncludeHeader() || '' }}\">\n <div\n [class.columns-8]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n <div class=\"flex items-center\">\n @if (!configTitle()?.ignoreButtonBack) {\n <i\n class=\"libs-ui-icon-chevron-right rotate-[180deg] before:text-[16px] mr-[8px] cursor-pointer text-[var(--libs-ui-color-default)]\"\n (click)=\"handlerClose($event)\"></i>\n }\n <div class=\"flex w-full items-center\">\n @if (configTitle()?.isShowBackToListLabel) {\n <libs_ui-components-buttons-button\n [label]=\"'i18n_back_to_list'\"\n [classLabel]=\"'lib-ui-font-h6m'\"\n [type]=\"'button-link-primary'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerClose($event)\" />\n }\n @if (configTitle()?.config; as config) {\n <libs_ui-components-popover\n [config]=\"configTitleComputed()\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"'cursor-pointer ' + (config.classInclude || 'text-[var(--libs-ui-color-default)] libs-ui-font-h6m')\"\n [innerHtml]=\"config.content ? (!configTitle()?.ignoreEscapeHtml ? (config.content | LibsUiPipesEscapeHtmlPipe | translate) : (config.content | translate)) : '&mdash;'\"\n (outEvent)=\"handlerPopoverEvent($event)\" />\n }\n @if (configTitle()?.configDescription; as configDescription) {\n <libs_ui-components-popover\n [config]=\"configDescription.config\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"configDescription.config.classInclude || 'libs-ui-font-h6r text-[#6a7383]'\"\n [innerHtml]=\"configDescription.innerView | LibsUiPipesEscapeHtmlPipe | translate\" />\n }\n </div>\n </div>\n </div>\n @if (isSplitHeaderRatio() && configCenter(); as configCenter) {\n <div class=\"w-[52%] flex items-center justify-center px-[48px]\">\n @if (!configCenter.template) {\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{\n maxWidth: 250,\n zIndex: zIndex() + 1,\n }\"\n [classInclude]=\"configCenter.classIncludeTitle ?? 'uppercase libs-ui-font-h4s'\"\n [innerHtml]=\"configCenter.title ? (configCenter.title | translate | LibsUiPipesEscapeHtmlPipe) : '&mdash'\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"configCenter.template\" />\n }\n </div>\n }\n <div\n class=\"flex justify-end items-center\"\n [class.columns-4]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n @for (item of configRight(); track $index; let last = $last) {\n <div [class.mr-[12px]]=\"!last\">\n @if (item.key === 'button' && item.configButton; as configButton) {\n <libs_ui-components-buttons-button\n [label]=\"configButton.label || ''\"\n [classLabel]=\"configButton.classLabel || ''\"\n [type]=\"configButton.type || 'button-primary'\"\n [classInclude]=\"configButton.classInclude || ''\"\n [classIconLeft]=\"configButton.classIconLeft || ''\"\n [iconOnlyType]=\"configButton.iconOnlyType || false\"\n [classIconRight]=\"configButton.classIconRight || ''\"\n [popover]=\"configButton.popover || {}\"\n [disable]=\"configButton.disable || disable()\"\n [isPending]=\"configButton.isPending || false\"\n (outClick)=\"handlerClickAction(configButton)\" />\n }\n @if (item.key === 'swicth' && !item.ignoreShowButton && item.configSwicth; as configSwicth) {\n <libs_ui-components-switch\n [active]=\"configSwicth.active || false\"\n [disable]=\"configSwicth.disable || disable()\"\n (outSwitch)=\"handlerSwitch(configSwicth, $event)\" />\n }\n @if (item.key === 'menu-dropdown' && item.configDropdown; as configDropdown) {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [zIndex]=\"2004\"\n [listConfig]=\"configDropdown.listConfig\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"configDropdown.popoverCustomConfig\"\n (outSelectKey)=\"handlerSelectedKey($event)\"\n (outFunctionsControl)=\"handlerDropdownFunctionControl($event)\">\n <libs_ui-components-buttons-button\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical text-[#333333] text-[12px] {{ configDropdown.classInclude }}'\"\n [classInclude]=\"'p-[7px] libs-ui-border-general'\"\n [type]=\"'button-third'\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-dropdown>\n }\n @if (item.key === 'button-dropdown' && item.configButtonDropdown; as configDropdown) {\n <libs_ui-components-buttons-dropdown\n [applyNow]=\"true\"\n [label]=\"item.configButtonDropdown.label || ' '\"\n [classIconRight]=\"item.configButtonDropdown.classIconRight || ' '\"\n [classIconLeft]=\"item.configButtonDropdown.classIconLeft || ' '\"\n [typeButton]=\"item.configButtonDropdown.type || 'button-secondary'\"\n [items]=\"item.configButtonDropdown.items || []\"\n [fieldDisplay]=\"item.configButtonDropdown.fieldDisplay\"\n [popupConfig]=\"item.configButtonDropdown.popupConfig || { width: 205, maxWidth: 408, maxHeight: 48, zIndex: 100, direction: 'bottom' }\"\n (outSelectItem)=\"handlerSelectedButtonDropdownItem($event)\" />\n }\n @if (item.key === 'radio-group' && item.configRadioGroup; as configRadioGroup) {\n <libs_ui-components-radio-group\n [groups]=\"configRadioGroup\"\n [horizontal]=\"true\"\n [typeRadio]=\"'medium'\"\n [ignoreClassMarginLastItem]=\"true\"\n (outChange)=\"handlerChangeRadio($event)\" />\n }\n @if (item.key === 'tooltip-button' && item.configTooltipButton; as configTooltipButton) {\n <libs_ui-components-popover\n [type]=\"configTooltipButton.configTooltip?.type || 'other'\"\n [config]=\"configTooltipButton.configTooltip?.config\">\n <libs_ui-components-buttons-button\n [type]=\"configTooltipButton.configButton?.type || 'button-third'\"\n [classIconLeft]=\"configTooltipButton.configButton?.classIconLeft || 'libs-ui-icon-more-vertical rotate-[90deg] mr-0'\"\n [label]=\"configTooltipButton.configButton?.label || ''\"\n [iconOnlyType]=\"configTooltipButton.configButton?.iconOnlyType ?? false\"\n [popover]=\"configTooltipButton.configButton?.popover || {}\"\n (outFunctionsControl)=\"handlerFunctionControlTooltipButton($event)\"\n [ignoreStopPropagationEvent]=\"true\"\n [disable]=\"configTooltipButton.configButton?.disable ?? false\" />\n </libs_ui-components-popover>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- ===================== BODY ===================== -->\n @if (bodyConfig().getComponentOutlet; as getBodyComponentOutlet) {\n <!-- Lazy load mode: Hiển thị skeleton khi đang load, sau đó render component -->\n <div\n class=\"libs-ui-components-page_detail-body {{ bodyConfig().classInclude || '' }}\"\n LibsUiComponentsScrollOverlayDirective\n (outScroll)=\"handlerScroll($event)\">\n @let constHtmlCompBody = undefined | LibsUiPipesCallFunctionInTemplatePipe: getBodyComponentOutlet : sectionData() : null : { valueIsEmpty: null } | async;\n @let constHtmlInputsBody = undefined | LibsUiPipesCallFunctionInTemplatePipe: bodyConfig().getDataComponentOutlet : sectionData() : null : { valueIsEmpty: null } | async;\n @if (constHtmlCompBody) {\n @defer {\n <ng-container *ngComponentOutlet=\"constHtmlCompBody; inputs: constHtmlInputsBody\" />\n } @loading {\n <libs_ui-components-skeleton [config]=\"resolvedSkeletonBody()\" />\n }\n } @else {\n <!-- Skeleton hiển thị khi Observable chưa emit (đang chờ delay/http) -->\n <libs_ui-components-skeleton [config]=\"resolvedSkeletonBody()\" />\n }\n </div>\n }\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, input, model, OnInit, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-buttons-dropdown';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioGroupComponent } from '@libs-ui/components-radio-group';\nimport { IRadioEvent } from '@libs-ui/components-radio-single';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { ISwitch, ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { LibsUiPipesEscapeHtmlPipe } from '@libs-ui/pipes-escape-html';\nimport { escapeHtml } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPagesTemplateDetailConfigCenter, IPagesTemplateDetailConfigRight, IPagesTemplateDetailConfigTitle } from './interfaces/config.interface';\nimport { IPageDetailFunctionControl } from './interfaces/function-control.interface';\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pages_template-detail',\n templateUrl: './detail.component.html',\n styleUrls: ['./detail.component.scss'],\n standalone: true,\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsRadioGroupComponent,\n LibsUiComponentsSwitchComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsButtonsDropdownComponent,\n LibsUiPipesEscapeHtmlPipe,\n ],\n})\nexport class LibsUiComponentsPagesTemplateDetailComponent implements OnInit {\n private dropdownFunctionControl!: IDropdownFunctionControlEvent;\n protected configTitleComputed = computed(() => {\n const config = this.configTitle()?.config;\n if (!config) {\n return { content: 'i18n_back_to_list' };\n }\n\n if (!config.content) {\n config.content = 'i18n_back_to_list';\n return config;\n }\n\n return { ...config, content: escapeHtml(config.content) };\n });\n\n readonly zIndex = input<number, number | undefined>(1000, { transform: (val) => val ?? 1000 });\n readonly configRight = input<Array<IPagesTemplateDetailConfigRight>>();\n readonly configTitle = input<IPagesTemplateDetailConfigTitle>();\n readonly configCenter = input<IPagesTemplateDetailConfigCenter>();\n readonly classIncludeHeader = input<string>();\n readonly classIncludeBody = input<string>();\n readonly disable = model<boolean>(false);\n readonly isSplitHeaderRatio = input<boolean>(); // dùng khi muốn chia header làm 3 phần theo tỉ lệ 24 52 24\n\n readonly outScroll = output<Event>();\n readonly outClose = output<boolean>();\n readonly outSelectedMenuDropdown = output<IEmitSelectKey | undefined>();\n readonly outSelectedButtonDropdown = output<IEmitSelectKey>();\n readonly outFunctionControl = output<IPageDetailFunctionControl>();\n readonly outSelectedRadio = output<IRadioEvent>();\n readonly outStateDisable = output<boolean>();\n readonly outTooltipButtonFunctionControl = output<IPopoverFunctionControlEvent>();\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IPageDetailFunctionControl {\n return {\n setStateDisable: this.setStateDisable.bind(this),\n };\n }\n\n protected handlerClickAction(event: IButton) {\n if (event && event.action) {\n event.action();\n }\n }\n\n protected async handlerSwitch(event: ISwitch, swicthEvent: ISwitchEvent) {\n if (event && event.action) {\n await event.action(swicthEvent);\n }\n }\n\n protected handlerClose(e: Event) {\n e.stopPropagation();\n this.outClose.emit(true);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event !== 'click') {\n return;\n }\n this.outClose.emit(true);\n }\n\n protected handlerSelectedKey(event?: IEmitSelectKey) {\n this.outSelectedMenuDropdown.emit(event);\n this.dropdownFunctionControl?.reset(); //lỗi chọn lần 2 (chưa reset thì keySelected chưa reset nên không chọn tiếp vào lựa chọn cũ)\n this.dropdownFunctionControl?.removeList();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected handlerSelectedButtonDropdownItem(event: any) {\n this.outSelectedButtonDropdown.emit(event);\n }\n\n protected handlerDropdownFunctionControl(event: IDropdownFunctionControlEvent) {\n this.dropdownFunctionControl = event;\n }\n\n private async setStateDisable(stateDisable: boolean) {\n this.disable.set(stateDisable);\n this.outStateDisable.emit(this.disable());\n }\n\n protected handlerChangeRadio(event: IRadioEvent) {\n this.outSelectedRadio.emit(event);\n }\n\n protected handlerFunctionControlTooltipButton(event: IPopoverFunctionControlEvent) {\n this.outTooltipButtonFunctionControl.emit(event);\n }\n\n protected handlerScroll(event: Event) {\n this.outScroll.emit(event);\n }\n}\n","<div\n class=\"libs-ui-components-page_detail\"\n [style.zIndex]=\"zIndex()\">\n <div\n [class.row]=\"!isSplitHeaderRatio()\"\n class=\"flex items-center px-[16px] py-[8px] justify-between bg-white libs-ui-border-top-general {{ classIncludeHeader() || '' }}\">\n <div\n [class.columns-8]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n <div class=\"flex items-center\">\n @if (!configTitle()?.ignoreButtonBack) {\n <i\n class=\"libs-ui-icon-chevron-right rotate-[180deg] before:text-[16px] mr-[8px] cursor-pointer text-[var(--libs-ui-color-default)]\"\n (click)=\"handlerClose($event)\"></i>\n }\n <div class=\"flex w-full items-center\">\n @if (configTitle()?.isShowBackToListLabel) {\n <libs_ui-components-buttons-button\n [label]=\"'i18n_back_to_list'\"\n [classLabel]=\"'lib-ui-font-h6m'\"\n [type]=\"'button-link-primary'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerClose($event)\" />\n }\n @if (configTitle()?.config; as config) {\n <libs_ui-components-popover\n [config]=\"configTitleComputed()\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"'cursor-pointer ' + (config.classInclude || 'text-[var(--libs-ui-color-default)] libs-ui-font-h6m')\"\n [innerHtml]=\"config.content ? (!configTitle()?.ignoreEscapeHtml ? (config.content | LibsUiPipesEscapeHtmlPipe | translate) : (config.content | translate)) : '&mdash;'\"\n (outEvent)=\"handlerPopoverEvent($event)\" />\n }\n @if (configTitle()?.configDescription; as configDescription) {\n <libs_ui-components-popover\n [config]=\"configDescription.config\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"configDescription.config.classInclude || 'libs-ui-font-h6r text-[#6a7383]'\"\n [innerHtml]=\"configDescription.innerView | LibsUiPipesEscapeHtmlPipe | translate\" />\n }\n </div>\n </div>\n </div>\n @if (isSplitHeaderRatio() && configCenter(); as configCenter) {\n <div class=\"w-[52%] flex items-center justify-center px-[48px]\">\n @if (!configCenter.template) {\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{\n maxWidth: 250,\n zIndex: zIndex() + 1,\n }\"\n [classInclude]=\"configCenter.classIncludeTitle ?? 'uppercase libs-ui-font-h4s'\"\n [innerHtml]=\"configCenter.title ? (configCenter.title | translate | LibsUiPipesEscapeHtmlPipe) : '&mdash'\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"configCenter.template\" />\n }\n </div>\n }\n <div\n class=\"flex justify-end items-center\"\n [class.columns-4]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n @for (item of configRight(); track $index; let last = $last) {\n <div [class.mr-[12px]]=\"!last\">\n @if (item.key === 'button' && item.configButton; as configButton) {\n <libs_ui-components-buttons-button\n [label]=\"configButton.label || ''\"\n [classLabel]=\"configButton.classLabel || ''\"\n [type]=\"configButton.type || 'button-primary'\"\n [classInclude]=\"configButton.classInclude || ''\"\n [classIconLeft]=\"configButton.classIconLeft || ''\"\n [iconOnlyType]=\"configButton.iconOnlyType || false\"\n [classIconRight]=\"configButton.classIconRight || ''\"\n [popover]=\"configButton.popover || {}\"\n [disable]=\"configButton.disable || disable()\"\n [isPending]=\"configButton.isPending || false\"\n (outClick)=\"handlerClickAction(configButton)\" />\n }\n @if (item.key === 'swicth' && !item.ignoreShowButton && item.configSwicth; as configSwicth) {\n <libs_ui-components-switch\n [active]=\"configSwicth.active || false\"\n [disable]=\"configSwicth.disable || disable()\"\n (outSwitch)=\"handlerSwitch(configSwicth, $event)\" />\n }\n @if (item.key === 'menu-dropdown' && item.configDropdown; as configDropdown) {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [zIndex]=\"2004\"\n [listConfig]=\"configDropdown.listConfig\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"configDropdown.popoverCustomConfig\"\n (outSelectKey)=\"handlerSelectedKey($event)\"\n (outFunctionsControl)=\"handlerDropdownFunctionControl($event)\">\n <libs_ui-components-buttons-button\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical text-[#333333] text-[12px] {{ configDropdown.classInclude }}'\"\n [classInclude]=\"'p-[7px] libs-ui-border-general'\"\n [type]=\"'button-third'\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-dropdown>\n }\n @if (item.key === 'button-dropdown' && item.configButtonDropdown; as configDropdown) {\n <libs_ui-components-buttons-dropdown\n [applyNow]=\"true\"\n [label]=\"item.configButtonDropdown.label || ' '\"\n [classIconRight]=\"item.configButtonDropdown.classIconRight || ' '\"\n [classIconLeft]=\"item.configButtonDropdown.classIconLeft || ' '\"\n [typeButton]=\"item.configButtonDropdown.type || 'button-secondary'\"\n [items]=\"item.configButtonDropdown.items || []\"\n [fieldDisplay]=\"item.configButtonDropdown.fieldDisplay\"\n [popupConfig]=\"item.configButtonDropdown.popupConfig || { width: 205, maxWidth: 408, maxHeight: 48, zIndex: 100, direction: 'bottom' }\"\n (outSelectItem)=\"handlerSelectedButtonDropdownItem($event)\" />\n }\n\n @if (item.key === 'radio-group' && item.configRadioGroup; as configRadioGroup) {\n <libs_ui-components-radio-group\n [groups]=\"configRadioGroup\"\n [horizontal]=\"true\"\n [typeRadio]=\"'medium'\"\n [ignoreClassMarginLastItem]=\"true\"\n (outChange)=\"handlerChangeRadio($event)\" />\n }\n\n @if (item.key === 'tooltip-button' && item.configTooltipButton; as configTooltipButton) {\n <libs_ui-components-popover\n [type]=\"configTooltipButton.configTooltip?.type || 'other'\"\n [config]=\"configTooltipButton.configTooltip?.config\">\n <libs_ui-components-buttons-button\n [type]=\"configTooltipButton.configButton?.type || 'button-third'\"\n [classIconLeft]=\"configTooltipButton.configButton?.classIconLeft || 'libs-ui-icon-more-vertical rotate-[90deg] mr-0'\"\n [label]=\"configTooltipButton.configButton?.label || ''\"\n [iconOnlyType]=\"configTooltipButton.configButton?.iconOnlyType ?? false\"\n [popover]=\"configTooltipButton.configButton?.popover || {}\"\n (outFunctionsControl)=\"handlerFunctionControlTooltipButton($event)\"\n [ignoreStopPropagationEvent]=\"true\"\n [disable]=\"configTooltipButton.configButton?.disable ?? false\" />\n </libs_ui-components-popover>\n }\n </div>\n }\n </div>\n </div>\n\n <div\n class=\"libs-ui-components-page_detail-body {{ classIncludeBody() }}\"\n LibsUiComponentsScrollOverlayDirective\n (outScroll)=\"handlerScroll($event)\">\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-pages-template-detail.mjs","sources":["../../../../../../libs-ui/components/pages-template/detail/src/detail-v2/detail-v2.component.ts","../../../../../../libs-ui/components/pages-template/detail/src/detail-v2/detail-v2.component.html","../../../../../../libs-ui/components/pages-template/detail/src/detail.component.ts","../../../../../../libs-ui/components/pages-template/detail/src/detail.component.html","../../../../../../libs-ui/components/pages-template/detail/src/libs-ui-components-pages-template-detail.ts"],"sourcesContent":["import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, Signal, computed, input, model, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-buttons-dropdown';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioGroupComponent } from '@libs-ui/components-radio-group';\nimport { IRadioEvent } from '@libs-ui/components-radio-single';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { ISkeletonConfig, LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { ISwitch, ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { LibsUiPipesCallFunctionInTemplatePipe } from '@libs-ui/pipes-call-function-in-template';\nimport { LibsUiPipesEscapeHtmlPipe } from '@libs-ui/pipes-escape-html';\nimport { escapeHtml, get } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPagesTemplateDetailConfigCenter, IPagesTemplateDetailConfigRight, IPagesTemplateDetailConfigTitle } from '../interfaces/config.interface';\nimport { IPageDetailFunctionControl } from '../interfaces/function-control.interface';\nimport { IPageDetailV2BodyConfig, IPageDetailV2SectionData } from './interfaces/detail-v2.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pages_template-detail_v2',\n templateUrl: './detail-v2.component.html',\n styleUrls: ['./detail-v2.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n NgComponentOutlet,\n NgTemplateOutlet,\n TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsRadioGroupComponent,\n LibsUiComponentsSwitchComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsButtonsDropdownComponent,\n LibsUiComponentsSkeletonComponent,\n LibsUiPipesCallFunctionInTemplatePipe,\n LibsUiPipesEscapeHtmlPipe,\n ],\n})\nexport class LibsUiComponentsPagesTemplateDetailV2Component implements OnInit {\n // #region --- INPUTS (kế thừa từ V1) ---\n readonly zIndex = input<number, number | undefined>(1000, { transform: (val) => val ?? 1000 });\n readonly configRight = input<Array<IPagesTemplateDetailConfigRight>>();\n readonly configTitle = input<IPagesTemplateDetailConfigTitle>();\n readonly configCenter = input<IPagesTemplateDetailConfigCenter>();\n readonly classIncludeHeader = input<string>();\n readonly isSplitHeaderRatio = input<boolean>();\n // #endregion\n\n // #region --- INPUTS (mới trong V2) ---\n /** Config để lazy load component vào vùng body */\n readonly bodyConfig = input<IPageDetailV2BodyConfig, IPageDetailV2BodyConfig | undefined>({}, { transform: (v) => v || {} });\n // #endregion\n\n // #region --- MODELS ---\n readonly disable = model<boolean>(false);\n // #endregion\n\n // #region --- OUTPUTS ---\n readonly outScroll = output<Event>();\n readonly outClose = output<boolean>();\n readonly outSelectedMenuDropdown = output<IEmitSelectKey | undefined>();\n readonly outSelectedButtonDropdown = output<IEmitSelectKey>();\n readonly outFunctionControl = output<IPageDetailFunctionControl>();\n readonly outSelectedRadio = output<IRadioEvent>();\n readonly outStateDisable = output<boolean>();\n readonly outTooltipButtonFunctionControl = output<IPopoverFunctionControlEvent>();\n // #endregion\n\n // #region --- INTERNAL STATE ---\n private dropdownFunctionControl!: IDropdownFunctionControlEvent;\n protected readonly pipeEmptyConfig = { valueIsEmpty: null } as const;\n // #endregion\n\n // #region --- COMPUTED ---\n protected readonly configTitleComputed = computed(() => {\n const config = this.configTitle()?.config;\n if (!config) {\n return { content: 'i18n_back_to_list' };\n }\n if (!config.content) {\n config.content = 'i18n_back_to_list';\n return config;\n }\n return { ...config, content: escapeHtml(config.content) };\n });\n\n /** Dữ liệu state truyền vào Component Outlet body */\n protected readonly sectionData = computed<IPageDetailV2SectionData>(() => ({\n disable: this.disable(),\n }));\n\n /** Skeleton config cho Body (Dùng computed để resolve default logic) */\n protected readonly resolvedSkeletonBody: Signal<ISkeletonConfig> = computed(() => {\n return (\n get(this.bodyConfig, 'skeletonConfig') ?? {\n repeat: 3,\n styleMarginBottom: 16,\n rows: [{ item: { classInclude: 'w-full h-[100px] rounded-[8px]' } }],\n }\n );\n });\n // #endregion\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n // #region --- PUBLIC METHODS ---\n public get FunctionsControl(): IPageDetailFunctionControl {\n return {\n setStateDisable: this.setStateDisable.bind(this),\n };\n }\n // #endregion\n\n // #region --- EVENT HANDLERS ---\n protected handlerClickAction(event: IButton) {\n if (event?.action) {\n event.action();\n }\n }\n\n protected async handlerSwitch(event: ISwitch, swicthEvent: ISwitchEvent) {\n if (event?.action) {\n await event.action(swicthEvent);\n }\n }\n\n protected handlerClose(e: Event) {\n e.stopPropagation();\n this.outClose.emit(true);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event !== 'click') {\n return;\n }\n this.outClose.emit(true);\n }\n\n protected handlerSelectedKey(event?: IEmitSelectKey) {\n this.outSelectedMenuDropdown.emit(event);\n this.dropdownFunctionControl?.reset();\n this.dropdownFunctionControl?.removeList();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected handlerSelectedButtonDropdownItem(event: any) {\n this.outSelectedButtonDropdown.emit(event);\n }\n\n protected handlerDropdownFunctionControl(event: IDropdownFunctionControlEvent) {\n this.dropdownFunctionControl = event;\n }\n\n protected handlerChangeRadio(event: IRadioEvent) {\n this.outSelectedRadio.emit(event);\n }\n\n protected handlerFunctionControlTooltipButton(event: IPopoverFunctionControlEvent) {\n this.outTooltipButtonFunctionControl.emit(event);\n }\n\n protected handlerScroll(event: Event) {\n this.outScroll.emit(event);\n }\n // #endregion\n\n // #region --- PRIVATE LOGIC ---\n private async setStateDisable(stateDisable: boolean) {\n this.disable.set(stateDisable);\n this.outStateDisable.emit(this.disable());\n }\n // #endregion\n}\n","<div\n class=\"libs-ui-components-page_detail\"\n [style.zIndex]=\"zIndex()\">\n <!-- ===================== HEADER ===================== -->\n <!-- Giữ nguyên hoàn toàn từ V1 -->\n @if (configTitle()?.header?.content; as headerContent) {\n <div class=\"libs-ui-font-h3s py-[10px] pl-[24px] libs-ui-border-bottom-general bg-white {{ configTitle()?.header?.classInclude || '' }}\">{{ headerContent | translate }}</div>\n }\n <div\n [class.row]=\"!isSplitHeaderRatio()\"\n class=\"flex items-center px-[16px] py-[8px] justify-between bg-white libs-ui-border-top-general {{ classIncludeHeader() || '' }}\">\n <div\n [class.columns-8]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n <div class=\"flex items-center\">\n @if (!configTitle()?.ignoreButtonBack) {\n <i\n class=\"libs-ui-icon-chevron-right rotate-[180deg] before:text-[16px] mr-[8px] cursor-pointer text-[var(--libs-ui-color-default)]\"\n (click)=\"handlerClose($event)\"\n (keydown.enter)=\"handlerClose($event)\"></i>\n }\n <div class=\"flex w-full items-center\">\n @if (configTitle()?.isShowBackToListLabel) {\n <libs_ui-components-buttons-button\n [label]=\"'i18n_back_to_list'\"\n [classLabel]=\"'lib-ui-font-h6m'\"\n [type]=\"'button-link-primary'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerClose($event)\" />\n }\n @if (configTitle()?.config; as config) {\n <libs_ui-components-popover\n [config]=\"configTitleComputed()\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"'cursor-pointer ' + (config.classInclude || 'text-[var(--libs-ui-color-default)] libs-ui-font-h6m')\"\n [innerHtml]=\"config.content ? (!configTitle()?.ignoreEscapeHtml ? (config.content | LibsUiPipesEscapeHtmlPipe | translate) : (config.content | translate)) : '&mdash;'\"\n (outEvent)=\"handlerPopoverEvent($event)\" />\n }\n @if (configTitle()?.configDescription; as configDescription) {\n <libs_ui-components-popover\n [config]=\"configDescription.config\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"configDescription.config.classInclude || 'libs-ui-font-h6r text-[#6a7383]'\"\n [innerHtml]=\"configDescription.innerView | LibsUiPipesEscapeHtmlPipe | translate\" />\n }\n </div>\n </div>\n </div>\n @if (isSplitHeaderRatio() && configCenter(); as configCenter) {\n <div class=\"w-[52%] flex items-center justify-center px-[48px]\">\n @if (!configCenter.template) {\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{\n maxWidth: 250,\n zIndex: zIndex() + 1,\n }\"\n [classInclude]=\"configCenter.classIncludeTitle ?? 'uppercase libs-ui-font-h4s'\"\n [innerHtml]=\"configCenter.title ? (configCenter.title | translate | LibsUiPipesEscapeHtmlPipe) : '&mdash'\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"configCenter.template\" />\n }\n </div>\n }\n <div\n class=\"flex justify-end items-center\"\n [class.columns-4]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n @for (item of configRight(); track $index; let last = $last) {\n <div [class.mr-[12px]]=\"!last\">\n @if (item.key === 'button' && item.configButton; as configButton) {\n <libs_ui-components-buttons-button\n [label]=\"configButton.label || ''\"\n [classLabel]=\"configButton.classLabel || ''\"\n [type]=\"configButton.type || 'button-primary'\"\n [classInclude]=\"configButton.classInclude || ''\"\n [classIconLeft]=\"configButton.classIconLeft || ''\"\n [iconOnlyType]=\"configButton.iconOnlyType || false\"\n [classIconRight]=\"configButton.classIconRight || ''\"\n [popover]=\"configButton.popover || {}\"\n [disable]=\"configButton.disable || disable()\"\n [isPending]=\"configButton.isPending || false\"\n (outClick)=\"handlerClickAction(configButton)\" />\n }\n @if (item.key === 'swicth' && !item.ignoreShowButton && item.configSwicth; as configSwicth) {\n <libs_ui-components-switch\n [active]=\"configSwicth.active || false\"\n [disable]=\"configSwicth.disable || disable()\"\n (outSwitch)=\"handlerSwitch(configSwicth, $event)\" />\n }\n @if (item.key === 'menu-dropdown' && item.configDropdown; as configDropdown) {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [zIndex]=\"2004\"\n [listConfig]=\"configDropdown.listConfig\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"configDropdown.popoverCustomConfig\"\n (outSelectKey)=\"handlerSelectedKey($event)\"\n (outFunctionsControl)=\"handlerDropdownFunctionControl($event)\">\n <libs_ui-components-buttons-button\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical text-[#333333] text-[12px] {{ configDropdown.classInclude }}'\"\n [classInclude]=\"'p-[7px] libs-ui-border-general'\"\n [type]=\"'button-third'\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-dropdown>\n }\n @if (item.key === 'button-dropdown' && item.configButtonDropdown; as configDropdown) {\n <libs_ui-components-buttons-dropdown\n [applyNow]=\"true\"\n [label]=\"item.configButtonDropdown.label || ' '\"\n [classIconRight]=\"item.configButtonDropdown.classIconRight || ' '\"\n [classIconLeft]=\"item.configButtonDropdown.classIconLeft || ' '\"\n [typeButton]=\"item.configButtonDropdown.type || 'button-secondary'\"\n [items]=\"item.configButtonDropdown.items || []\"\n [fieldDisplay]=\"item.configButtonDropdown.fieldDisplay\"\n [popupConfig]=\"item.configButtonDropdown.popupConfig || { width: 205, maxWidth: 408, maxHeight: 48, zIndex: 100, direction: 'bottom' }\"\n (outSelectItem)=\"handlerSelectedButtonDropdownItem($event)\" />\n }\n @if (item.key === 'radio-group' && item.configRadioGroup; as configRadioGroup) {\n <libs_ui-components-radio-group\n [groups]=\"configRadioGroup\"\n [horizontal]=\"true\"\n [typeRadio]=\"'medium'\"\n [ignoreClassMarginLastItem]=\"true\"\n (outChange)=\"handlerChangeRadio($event)\" />\n }\n @if (item.key === 'tooltip-button' && item.configTooltipButton; as configTooltipButton) {\n <libs_ui-components-popover\n [type]=\"configTooltipButton.configTooltip?.type || 'other'\"\n [config]=\"configTooltipButton.configTooltip?.config\">\n <libs_ui-components-buttons-button\n [type]=\"configTooltipButton.configButton?.type || 'button-third'\"\n [classIconLeft]=\"configTooltipButton.configButton?.classIconLeft || 'libs-ui-icon-more-vertical rotate-[90deg] mr-0'\"\n [label]=\"configTooltipButton.configButton?.label || ''\"\n [iconOnlyType]=\"configTooltipButton.configButton?.iconOnlyType ?? false\"\n [popover]=\"configTooltipButton.configButton?.popover || {}\"\n (outFunctionsControl)=\"handlerFunctionControlTooltipButton($event)\"\n [ignoreStopPropagationEvent]=\"true\"\n [disable]=\"configTooltipButton.configButton?.disable ?? false\" />\n </libs_ui-components-popover>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- ===================== BODY ===================== -->\n @if (bodyConfig().getComponentOutlet; as getBodyComponentOutlet) {\n <!-- Lazy load mode: Hiển thị skeleton khi đang load, sau đó render component -->\n <div\n class=\"libs-ui-components-page_detail-body {{ bodyConfig().classInclude || '' }}\"\n LibsUiComponentsScrollOverlayDirective\n (outScroll)=\"handlerScroll($event)\">\n @let constHtmlCompBody = undefined | LibsUiPipesCallFunctionInTemplatePipe: getBodyComponentOutlet : sectionData() : null : pipeEmptyConfig | async;\n @let constHtmlInputsBody = undefined | LibsUiPipesCallFunctionInTemplatePipe: bodyConfig().getDataComponentOutlet : sectionData() : null : pipeEmptyConfig | async;\n @if (constHtmlCompBody) {\n <ng-container *ngComponentOutlet=\"constHtmlCompBody; inputs: constHtmlInputsBody\" />\n } @else {\n <libs_ui-components-skeleton [config]=\"resolvedSkeletonBody()\" />\n }\n </div>\n }\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, input, model, OnInit, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-buttons-dropdown';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioGroupComponent } from '@libs-ui/components-radio-group';\nimport { IRadioEvent } from '@libs-ui/components-radio-single';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { ISwitch, ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { LibsUiPipesEscapeHtmlPipe } from '@libs-ui/pipes-escape-html';\nimport { escapeHtml } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPagesTemplateDetailConfigCenter, IPagesTemplateDetailConfigRight, IPagesTemplateDetailConfigTitle } from './interfaces/config.interface';\nimport { IPageDetailFunctionControl } from './interfaces/function-control.interface';\n/**\n * @deprecated Use {@link LibsUiComponentsPagesTemplateDetailV2Component} instead.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pages_template-detail',\n templateUrl: './detail.component.html',\n styleUrls: ['./detail.component.scss'],\n standalone: true,\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsRadioGroupComponent,\n LibsUiComponentsSwitchComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsButtonsDropdownComponent,\n LibsUiPipesEscapeHtmlPipe,\n ],\n})\nexport class LibsUiComponentsPagesTemplateDetailComponent implements OnInit {\n private dropdownFunctionControl!: IDropdownFunctionControlEvent;\n protected configTitleComputed = computed(() => {\n const config = this.configTitle()?.config;\n if (!config) {\n return { content: 'i18n_back_to_list' };\n }\n\n if (!config.content) {\n config.content = 'i18n_back_to_list';\n return config;\n }\n\n return { ...config, content: escapeHtml(config.content) };\n });\n\n readonly zIndex = input<number, number | undefined>(1000, { transform: (val) => val ?? 1000 });\n readonly configRight = input<Array<IPagesTemplateDetailConfigRight>>();\n readonly configTitle = input<IPagesTemplateDetailConfigTitle>();\n readonly configCenter = input<IPagesTemplateDetailConfigCenter>();\n readonly classIncludeHeader = input<string>();\n readonly classIncludeBody = input<string>();\n readonly disable = model<boolean>(false);\n readonly isSplitHeaderRatio = input<boolean>(); // dùng khi muốn chia header làm 3 phần theo tỉ lệ 24 52 24\n\n readonly outScroll = output<Event>();\n readonly outClose = output<boolean>();\n readonly outSelectedMenuDropdown = output<IEmitSelectKey | undefined>();\n readonly outSelectedButtonDropdown = output<IEmitSelectKey>();\n readonly outFunctionControl = output<IPageDetailFunctionControl>();\n readonly outSelectedRadio = output<IRadioEvent>();\n readonly outStateDisable = output<boolean>();\n readonly outTooltipButtonFunctionControl = output<IPopoverFunctionControlEvent>();\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IPageDetailFunctionControl {\n return {\n setStateDisable: this.setStateDisable.bind(this),\n };\n }\n\n protected handlerClickAction(event: IButton) {\n if (event?.action) {\n event.action();\n }\n }\n\n protected async handlerSwitch(event: ISwitch, swicthEvent: ISwitchEvent) {\n if (event?.action) {\n await event.action(swicthEvent);\n }\n }\n\n protected handlerClose(e: Event) {\n e.stopPropagation();\n this.outClose.emit(true);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event !== 'click') {\n return;\n }\n this.outClose.emit(true);\n }\n\n protected handlerSelectedKey(event?: IEmitSelectKey) {\n this.outSelectedMenuDropdown.emit(event);\n this.dropdownFunctionControl?.reset(); //lỗi chọn lần 2 (chưa reset thì keySelected chưa reset nên không chọn tiếp vào lựa chọn cũ)\n this.dropdownFunctionControl?.removeList();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected handlerSelectedButtonDropdownItem(event: any) {\n this.outSelectedButtonDropdown.emit(event);\n }\n\n protected handlerDropdownFunctionControl(event: IDropdownFunctionControlEvent) {\n this.dropdownFunctionControl = event;\n }\n\n private async setStateDisable(stateDisable: boolean) {\n this.disable.set(stateDisable);\n this.outStateDisable.emit(this.disable());\n }\n\n protected handlerChangeRadio(event: IRadioEvent) {\n this.outSelectedRadio.emit(event);\n }\n\n protected handlerFunctionControlTooltipButton(event: IPopoverFunctionControlEvent) {\n this.outTooltipButtonFunctionControl.emit(event);\n }\n\n protected handlerScroll(event: Event) {\n this.outScroll.emit(event);\n }\n}\n","<div\n class=\"libs-ui-components-page_detail\"\n [style.zIndex]=\"zIndex()\">\n <div\n [class.row]=\"!isSplitHeaderRatio()\"\n class=\"flex items-center px-[16px] py-[8px] justify-between bg-white libs-ui-border-top-general {{ classIncludeHeader() || '' }}\">\n <div\n [class.columns-8]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n <div class=\"flex items-center\">\n @if (!configTitle()?.ignoreButtonBack) {\n <i\n class=\"libs-ui-icon-chevron-right rotate-[180deg] before:text-[16px] mr-[8px] cursor-pointer text-[var(--libs-ui-color-default)]\"\n (click)=\"handlerClose($event)\"\n (keydown.enter)=\"handlerClose($event)\"></i>\n }\n <div class=\"flex w-full items-center\">\n @if (configTitle()?.isShowBackToListLabel) {\n <libs_ui-components-buttons-button\n [label]=\"'i18n_back_to_list'\"\n [classLabel]=\"'lib-ui-font-h6m'\"\n [type]=\"'button-link-primary'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerClose($event)\" />\n }\n @if (configTitle()?.config; as config) {\n <libs_ui-components-popover\n [config]=\"configTitleComputed()\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"'cursor-pointer ' + (config.classInclude || 'text-[var(--libs-ui-color-default)] libs-ui-font-h6m')\"\n [innerHtml]=\"config.content ? (!configTitle()?.ignoreEscapeHtml ? (config.content | LibsUiPipesEscapeHtmlPipe | translate) : (config.content | translate)) : '&mdash;'\"\n (outEvent)=\"handlerPopoverEvent($event)\" />\n }\n @if (configTitle()?.configDescription; as configDescription) {\n <libs_ui-components-popover\n [config]=\"configDescription.config\"\n [type]=\"'text'\"\n [mode]=\"'hover'\"\n [classInclude]=\"configDescription.config.classInclude || 'libs-ui-font-h6r text-[#6a7383]'\"\n [innerHtml]=\"configDescription.innerView | LibsUiPipesEscapeHtmlPipe | translate\" />\n }\n </div>\n </div>\n </div>\n @if (isSplitHeaderRatio() && configCenter(); as configCenter) {\n <div class=\"w-[52%] flex items-center justify-center px-[48px]\">\n @if (!configCenter.template) {\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{\n maxWidth: 250,\n zIndex: zIndex() + 1,\n }\"\n [classInclude]=\"configCenter.classIncludeTitle ?? 'uppercase libs-ui-font-h4s'\"\n [innerHtml]=\"configCenter.title ? (configCenter.title | translate | LibsUiPipesEscapeHtmlPipe) : '&mdash'\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"configCenter.template\" />\n }\n </div>\n }\n <div\n class=\"flex justify-end items-center\"\n [class.columns-4]=\"!isSplitHeaderRatio()\"\n [class.w-[24%]]=\"isSplitHeaderRatio()\">\n @for (item of configRight(); track $index; let last = $last) {\n <div [class.mr-[12px]]=\"!last\">\n @if (item.key === 'button' && item.configButton; as configButton) {\n <libs_ui-components-buttons-button\n [label]=\"configButton.label || ''\"\n [classLabel]=\"configButton.classLabel || ''\"\n [type]=\"configButton.type || 'button-primary'\"\n [classInclude]=\"configButton.classInclude || ''\"\n [classIconLeft]=\"configButton.classIconLeft || ''\"\n [iconOnlyType]=\"configButton.iconOnlyType || false\"\n [classIconRight]=\"configButton.classIconRight || ''\"\n [popover]=\"configButton.popover || {}\"\n [disable]=\"configButton.disable || disable()\"\n [isPending]=\"configButton.isPending || false\"\n (outClick)=\"handlerClickAction(configButton)\" />\n }\n @if (item.key === 'swicth' && !item.ignoreShowButton && item.configSwicth; as configSwicth) {\n <libs_ui-components-switch\n [active]=\"configSwicth.active || false\"\n [disable]=\"configSwicth.disable || disable()\"\n (outSwitch)=\"handlerSwitch(configSwicth, $event)\" />\n }\n @if (item.key === 'menu-dropdown' && item.configDropdown; as configDropdown) {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [zIndex]=\"2004\"\n [listConfig]=\"configDropdown.listConfig\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"configDropdown.popoverCustomConfig\"\n (outSelectKey)=\"handlerSelectedKey($event)\"\n (outFunctionsControl)=\"handlerDropdownFunctionControl($event)\">\n <libs_ui-components-buttons-button\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-more-vertical text-[#333333] text-[12px] {{ configDropdown.classInclude }}'\"\n [classInclude]=\"'p-[7px] libs-ui-border-general'\"\n [type]=\"'button-third'\"\n [ignoreStopPropagationEvent]=\"true\" />\n </libs_ui-components-dropdown>\n }\n @if (item.key === 'button-dropdown' && item.configButtonDropdown; as configDropdown) {\n <libs_ui-components-buttons-dropdown\n [applyNow]=\"true\"\n [label]=\"item.configButtonDropdown.label || ' '\"\n [classIconRight]=\"item.configButtonDropdown.classIconRight || ' '\"\n [classIconLeft]=\"item.configButtonDropdown.classIconLeft || ' '\"\n [typeButton]=\"item.configButtonDropdown.type || 'button-secondary'\"\n [items]=\"item.configButtonDropdown.items || []\"\n [fieldDisplay]=\"item.configButtonDropdown.fieldDisplay\"\n [popupConfig]=\"item.configButtonDropdown.popupConfig || { width: 205, maxWidth: 408, maxHeight: 48, zIndex: 100, direction: 'bottom' }\"\n (outSelectItem)=\"handlerSelectedButtonDropdownItem($event)\" />\n }\n\n @if (item.key === 'radio-group' && item.configRadioGroup; as configRadioGroup) {\n <libs_ui-components-radio-group\n [groups]=\"configRadioGroup\"\n [horizontal]=\"true\"\n [typeRadio]=\"'medium'\"\n [ignoreClassMarginLastItem]=\"true\"\n (outChange)=\"handlerChangeRadio($event)\" />\n }\n\n @if (item.key === 'tooltip-button' && item.configTooltipButton; as configTooltipButton) {\n <libs_ui-components-popover\n [type]=\"configTooltipButton.configTooltip?.type || 'other'\"\n [config]=\"configTooltipButton.configTooltip?.config\">\n <libs_ui-components-buttons-button\n [type]=\"configTooltipButton.configButton?.type || 'button-third'\"\n [classIconLeft]=\"configTooltipButton.configButton?.classIconLeft || 'libs-ui-icon-more-vertical rotate-[90deg] mr-0'\"\n [label]=\"configTooltipButton.configButton?.label || ''\"\n [iconOnlyType]=\"configTooltipButton.configButton?.iconOnlyType ?? false\"\n [popover]=\"configTooltipButton.configButton?.popover || {}\"\n (outFunctionsControl)=\"handlerFunctionControlTooltipButton($event)\"\n [ignoreStopPropagationEvent]=\"true\"\n [disable]=\"configTooltipButton.configButton?.disable ?? false\" />\n </libs_ui-components-popover>\n }\n </div>\n }\n </div>\n </div>\n\n <div\n class=\"libs-ui-components-page_detail-body {{ classIncludeBody() }}\"\n LibsUiComponentsScrollOverlayDirective\n (outScroll)=\"handlerScroll($event)\">\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -40,5 +40,5 @@ export interface IPagesTemplateDetailConfigTitle extends IPopover {
40
40
  export interface IPagesTemplateDetailConfigCenter {
41
41
  title?: string;
42
42
  classIncludeTitle?: string;
43
- template?: TemplateRef<TYPE_TEMPLATE_REF> | undefined;
43
+ template?: TemplateRef<TYPE_TEMPLATE_REF>;
44
44
  }
package/package.json CHANGED
@@ -1,21 +1,23 @@
1
1
  {
2
2
  "name": "@libs-ui/components-pages-template-detail",
3
- "version": "0.2.356-9",
3
+ "version": "0.2.357-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
7
- "@libs-ui/components-buttons-button": "0.2.356-9",
8
- "@libs-ui/components-buttons-dropdown": "0.2.356-9",
9
- "@libs-ui/components-dropdown": "0.2.356-9",
10
- "@libs-ui/components-popover": "0.2.356-9",
11
- "@libs-ui/components-radio-group": "0.2.356-9",
12
- "@libs-ui/components-radio-single": "0.2.356-9",
13
- "@libs-ui/components-scroll-overlay": "0.2.356-9",
14
- "@libs-ui/components-switch": "0.2.356-9",
15
- "@libs-ui/pipes-escape-html": "0.2.356-9",
16
- "@libs-ui/utils": "0.2.356-9",
7
+ "@libs-ui/components-buttons-button": "0.2.357-0",
8
+ "@libs-ui/components-buttons-dropdown": "0.2.357-0",
9
+ "@libs-ui/components-dropdown": "0.2.357-0",
10
+ "@libs-ui/components-popover": "0.2.357-0",
11
+ "@libs-ui/components-radio-group": "0.2.357-0",
12
+ "@libs-ui/components-radio-single": "0.2.357-0",
13
+ "@libs-ui/components-scroll-overlay": "0.2.357-0",
14
+ "@libs-ui/components-switch": "0.2.357-0",
15
+ "@libs-ui/pipes-escape-html": "0.2.357-0",
16
+ "@libs-ui/utils": "0.2.357-0",
17
17
  "@ngx-translate/core": "^15.0.0",
18
- "@libs-ui/interfaces-types": "0.2.356-9"
18
+ "@libs-ui/interfaces-types": "0.2.357-0",
19
+ "@libs-ui/components-skeleton": "0.2.357-0",
20
+ "@libs-ui/pipes-call-function-in-template": "0.2.357-0"
19
21
  },
20
22
  "sideEffects": false,
21
23
  "module": "fesm2022/libs-ui-components-pages-template-detail.mjs",