@libs-ui/components-buttons-dropdown 0.2.150 → 0.2.152
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,6 +1,6 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { computed, input, model, output,
|
|
3
|
+
import { computed, input, model, output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
5
5
|
import { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';
|
|
6
6
|
import { escapeHtml } from '@libs-ui/utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-buttons-dropdown.mjs","sources":["../../../../../../libs-ui/components/buttons/dropdown/src/dropdown.component.ts","../../../../../../libs-ui/components/buttons/dropdown/src/dropdown.component.html","../../../../../../libs-ui/components/buttons/dropdown/src/libs-ui-components-buttons-dropdown.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent, TYPE_BUTTON, TYPE_SIZE_BUTTON } from '@libs-ui/components-buttons-button';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT, TYPE_POPOVER_MODE } from '@libs-ui/components-popover';\nimport { escapeHtml } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPopupConfigButtonDropdown } from './dropdown.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n standalone: true,\n imports: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsButtonsDropdownComponent {\n\n // #region PROPERTY\n protected labelDisplay = computed(this.labelComputed.bind(this))\n\n // #region INPUT\n readonly label = input<string>();\n readonly fieldClass = input<string>('class'); // change color label item of items\n readonly fieldClassIconLeft = input<string>('classIconLeft'); // iconclass item of items\n readonly items = input.required<Array<any>, Array<any>>({ transform: data => data.map(item => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried\n readonly fieldDisplay = input<string, string | undefined>('label', { transform: value => value ?? 'label' });\n readonly keyField = input<string, string | undefined>('key', { transform: value => value ?? 'id' });\n readonly keySelected = model<string>();\n readonly applyNow = input<boolean>(false); // if not applyNow: keyField is requried\n readonly showBorderBottom = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly sizeButton = input<TYPE_SIZE_BUTTON>('medium');\n readonly classLabel = input<string>('');\n readonly iconOnlyType = input<boolean>(false);\n readonly classIconRight = input<string>('libs-ui-icon-move-right rotate-[90deg]');\n readonly classIconLeft = input<string>('');\n readonly typeButton = input<TYPE_BUTTON>('button-primary');\n readonly popupConfig = input<IPopupConfigButtonDropdown>({ width: 205, maxWidth: 250, maxHeight: 140, zIndex: 1200, direction: 'top' });\n readonly ignoreHiddenPopoverContentWhenMouseLeave = input<boolean>(true);\n readonly classInclude = input<string>('');\n readonly modePopover = input<TYPE_POPOVER_MODE>('click-toggle');\n readonly classIncludeContainer = input<string>();\n\n // #region OUTPUT\n readonly outSelectItem = output<any>();\n readonly outHover = output<boolean>();\n readonly outApply = output<any>(); // sử dụng cho bấm button left chế độ applyNow = false;\n readonly outPopoverEvent = output<TYPE_POPOVER_EVENT>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n readonly outIconEvent = output<MouseEvent>();\n\n /* FUNCTIONS */\n protected async handlerApply() {\n if (!this.applyNow()) {\n this.outApply.emit(this.items().find(item => item[this.keyField()] === this.keySelected()));\n }\n }\n\n protected async handlerSelectItem(event: Event, data: any) {\n event.stopPropagation();\n if (data.subTemplate) {\n return;\n }\n if (!this.applyNow()) {\n this.keySelected.set(data[this.keyField()]);\n }\n this.outSelectItem.emit(data);\n this.outHover.emit(false);\n }\n\n protected async handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n this.outPopoverEvent.emit(event);\n }\n\n protected async handlerPopoverControlEvent(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n }\n\n protected async handlerClickButtonTemplate(event: Event, data: any, items: Array<any>) {\n event.stopPropagation();\n data.buttonTemplateConfig.action(data, items);\n }\n\n private labelComputed() {\n if (!this.keySelected() || !this.items() || !this.items().length || !this.keyField() || this.applyNow()) {\n return this.label();\n }\n for (const item of this.items()) {\n if (item[this.keyField()] === this.keySelected()) {\n return item[this.fieldDisplay()];\n }\n }\n\n return this.label();\n }\n\n}","<div #buttonDropdownEl\n class=\"libs-ui-buttons-dropdown flex {{ classIncludeContainer() || '' }}\"\n [class.libs-ui-buttons-dropdown-un-apply-now]=\"!applyNow()\"\n [class.libs-ui-buttons-dropdown-apply-now-button-primary]=\"applyNow() && typeButton() === 'button-primary'\"\n [class.libs-ui-buttons-dropdown-apply-now-button-secondary]=\"applyNow() && typeButton() === 'button-secondary'\">\n <libs_ui-components-buttons-button [disable]=\"disable()\"\n [iconOnlyType]=\"iconOnlyType()\"\n [classIconLeft]=\"classIconLeft()\"\n [classIconRight]=\"!applyNow() ? '' : classIconRight()\"\n [type]=\"typeButton()\"\n [classLabel]=\"classLabel()\"\n [classInclude]=\"classInclude()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n elementRefCustom: buttonDropdownEl,\n mode: modePopover(),\n ignoreShowPopover: !applyNow(),\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n animationConfig: {\n time: .5\n },\n template: templateContentEl,\n whiteTheme: true,\n ignoreArrow: true,\n width: popupConfig().width,\n widthByParent: popupConfig().widthByParent ?? false,\n maxWidth: popupConfig().maxWidth,\n maxHeight: popupConfig().maxHeight,\n zIndex: popupConfig().zIndex,\n classInclude: 'rounded-[4px] ' + popupConfig().classInclude,\n direction: popupConfig().direction,\n timerDestroy: popupConfig().timeDestroy,\n directionDistance: 2,\n position: {\n mode: popupConfig().position?.mode || 'start',\n distance: popupConfig().position?.distance ?? 0\n }\n }\n }\"\n [label]=\"labelDisplay()\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outPopoverEvent)=\"handlerPopoverEvent($event)\"\n (outClick)=\"handlerApply()\" />\n @if (!applyNow()) {\n <div class=\"h-full w-[1px] bg-white\"></div>\n <libs_ui-components-buttons-button [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n elementRefCustom: buttonDropdownEl,\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config:{\n animationConfig: {\n time:.5\n },\n template: templateContentEl,\n whiteTheme: true,\n ignoreArrow: true,\n width: popupConfig().width,\n maxWidth: popupConfig().maxWidth,\n widthByParent: popupConfig().widthByParent ?? false,\n maxHeight: popupConfig().maxHeight,\n zIndex: popupConfig().zIndex,\n direction: popupConfig().direction,\n classInclude: popupConfig().classInclude,\n directionDistance:2,\n position: {\n mode: 'start',\n distance: 0\n }\n }\n }\"\n [iconOnlyType]=\"true\"\n [classIconRight]=\"classIconRight()\"\n [classInclude]=\"classInclude() || '!py-[9px]'\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outPopoverEvent)=\"handlerPopoverEvent($event)\" />\n }\n</div>\n<ng-template #templateContentEl>\n <div>\n @if (items() && items().length) {\n <div class=\"m-0 p-0\">\n @for (item of items(); track item) {\n <div class=\"{{ item.classRow || '' }}\">\n <div LibsUiComponentsPopoverDirective\n [config]=\"{content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2}\"\n [ignoreShowPopover]=\"!item.showPopover\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[8px] {{ item.classInclude || '' }} {{ showBorderBottom() ? 'libs-ui-border-bottom-general' : '' }}\"\n [class.flex]=\"!item.ignoreFlex\"\n [class.px-[16px]]=\"applyNow()\"\n [class.pl-[16px]]=\"!applyNow()\"\n [class.pr-[40px]]=\"!applyNow()\"\n [class.libs-ui-disable]=\"item.disable\"\n [class.pointer-events-none]=\"item.disable\"\n (click)=\"handlerSelectItem($event,item)\">\n @if (item[fieldClassIconLeft()]) {\n <i [class]=\"item[fieldClassIconLeft()]\"></i>\n }\n <span [class]=\"item[fieldClass()]\"\n [innerHtml]=\"item[fieldDisplay()] | translate\">\n </span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button [classIconLeft]=\"item.buttonTemplateConfig.iconLeft\"\n [classIconRight]=\"item.buttonTemplateConfig.icon\"\n [label]=\"item.buttonTemplateConfig.label\"\n [classLabel]=\"item.buttonTemplateConfig.label\"\n (outClick)=\"handlerClickButtonTemplate($event, item, items())\"\n [type]=\"item.buttonTemplateConfig.type\" />\n }\n <ng-container *ngTemplateOutlet=\"item?.subTemplate || null;context:{item:item}\"></ng-container>\n @if (item[keyField()] === keySelected() && !applyNow()) {\n <i class=\"libs-ui-icon-check absolute right-[16px] top-[8px]\"></i>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\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-buttons-dropdown.mjs","sources":["../../../../../../libs-ui/components/buttons/dropdown/src/dropdown.component.ts","../../../../../../libs-ui/components/buttons/dropdown/src/dropdown.component.html","../../../../../../libs-ui/components/buttons/dropdown/src/libs-ui-components-buttons-dropdown.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent, TYPE_BUTTON, TYPE_SIZE_BUTTON } from '@libs-ui/components-buttons-button';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT, TYPE_POPOVER_MODE } from '@libs-ui/components-popover';\nimport { escapeHtml } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IPopupConfigButtonDropdown } from './dropdown.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n standalone: true,\n imports: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsPopoverComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsButtonsDropdownComponent {\n\n // #region PROPERTY\n protected labelDisplay = computed(this.labelComputed.bind(this))\n\n // #region INPUT\n readonly label = input<string>();\n readonly fieldClass = input<string>('class'); // change color label item of items\n readonly fieldClassIconLeft = input<string>('classIconLeft'); // iconclass item of items\n readonly items = input.required<Array<any>, Array<any>>({ transform: data => data.map(item => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried\n readonly fieldDisplay = input<string, string | undefined>('label', { transform: value => value ?? 'label' });\n readonly keyField = input<string, string | undefined>('key', { transform: value => value ?? 'id' });\n readonly keySelected = model<string>();\n readonly applyNow = input<boolean>(false); // if not applyNow: keyField is requried\n readonly showBorderBottom = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly sizeButton = input<TYPE_SIZE_BUTTON>('medium');\n readonly classLabel = input<string>('');\n readonly iconOnlyType = input<boolean>(false);\n readonly classIconRight = input<string>('libs-ui-icon-move-right rotate-[90deg]');\n readonly classIconLeft = input<string>('');\n readonly typeButton = input<TYPE_BUTTON>('button-primary');\n readonly popupConfig = input<IPopupConfigButtonDropdown>({ width: 205, maxWidth: 250, maxHeight: 140, zIndex: 1200, direction: 'top' });\n readonly ignoreHiddenPopoverContentWhenMouseLeave = input<boolean>(true);\n readonly classInclude = input<string>('');\n readonly modePopover = input<TYPE_POPOVER_MODE>('click-toggle');\n readonly classIncludeContainer = input<string>();\n\n // #region OUTPUT\n readonly outSelectItem = output<any>();\n readonly outHover = output<boolean>();\n readonly outApply = output<any>(); // sử dụng cho bấm button left chế độ applyNow = false;\n readonly outPopoverEvent = output<TYPE_POPOVER_EVENT>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n readonly outIconEvent = output<MouseEvent>();\n\n /* FUNCTIONS */\n protected async handlerApply() {\n if (!this.applyNow()) {\n this.outApply.emit(this.items().find(item => item[this.keyField()] === this.keySelected()));\n }\n }\n\n protected async handlerSelectItem(event: Event, data: any) {\n event.stopPropagation();\n if (data.subTemplate) {\n return;\n }\n if (!this.applyNow()) {\n this.keySelected.set(data[this.keyField()]);\n }\n this.outSelectItem.emit(data);\n this.outHover.emit(false);\n }\n\n protected async handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n this.outPopoverEvent.emit(event);\n }\n\n protected async handlerPopoverControlEvent(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n }\n\n protected async handlerClickButtonTemplate(event: Event, data: any, items: Array<any>) {\n event.stopPropagation();\n data.buttonTemplateConfig.action(data, items);\n }\n\n private labelComputed() {\n if (!this.keySelected() || !this.items() || !this.items().length || !this.keyField() || this.applyNow()) {\n return this.label();\n }\n for (const item of this.items()) {\n if (item[this.keyField()] === this.keySelected()) {\n return item[this.fieldDisplay()];\n }\n }\n\n return this.label();\n }\n\n}","<div #buttonDropdownEl\n class=\"libs-ui-buttons-dropdown flex {{ classIncludeContainer() || '' }}\"\n [class.libs-ui-buttons-dropdown-un-apply-now]=\"!applyNow()\"\n [class.libs-ui-buttons-dropdown-apply-now-button-primary]=\"applyNow() && typeButton() === 'button-primary'\"\n [class.libs-ui-buttons-dropdown-apply-now-button-secondary]=\"applyNow() && typeButton() === 'button-secondary'\">\n <libs_ui-components-buttons-button [disable]=\"disable()\"\n [iconOnlyType]=\"iconOnlyType()\"\n [classIconLeft]=\"classIconLeft()\"\n [classIconRight]=\"!applyNow() ? '' : classIconRight()\"\n [type]=\"typeButton()\"\n [classLabel]=\"classLabel()\"\n [classInclude]=\"classInclude()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n elementRefCustom: buttonDropdownEl,\n mode: modePopover(),\n ignoreShowPopover: !applyNow(),\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n animationConfig: {\n time: .5\n },\n template: templateContentEl,\n whiteTheme: true,\n ignoreArrow: true,\n width: popupConfig().width,\n widthByParent: popupConfig().widthByParent ?? false,\n maxWidth: popupConfig().maxWidth,\n maxHeight: popupConfig().maxHeight,\n zIndex: popupConfig().zIndex,\n classInclude: 'rounded-[4px] ' + popupConfig().classInclude,\n direction: popupConfig().direction,\n timerDestroy: popupConfig().timeDestroy,\n directionDistance: 2,\n position: {\n mode: popupConfig().position?.mode || 'start',\n distance: popupConfig().position?.distance ?? 0\n }\n }\n }\"\n [label]=\"labelDisplay()\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outPopoverEvent)=\"handlerPopoverEvent($event)\"\n (outClick)=\"handlerApply()\" />\n @if (!applyNow()) {\n <div class=\"h-full w-[1px] bg-white\"></div>\n <libs_ui-components-buttons-button [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n elementRefCustom: buttonDropdownEl,\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config:{\n animationConfig: {\n time:.5\n },\n template: templateContentEl,\n whiteTheme: true,\n ignoreArrow: true,\n width: popupConfig().width,\n maxWidth: popupConfig().maxWidth,\n widthByParent: popupConfig().widthByParent ?? false,\n maxHeight: popupConfig().maxHeight,\n zIndex: popupConfig().zIndex,\n direction: popupConfig().direction,\n classInclude: popupConfig().classInclude,\n directionDistance:2,\n position: {\n mode: 'start',\n distance: 0\n }\n }\n }\"\n [iconOnlyType]=\"true\"\n [classIconRight]=\"classIconRight()\"\n [classInclude]=\"classInclude() || '!py-[9px]'\"\n (outFunctionsControl)=\"handlerPopoverControlEvent($event)\"\n (outPopoverEvent)=\"handlerPopoverEvent($event)\" />\n }\n</div>\n<ng-template #templateContentEl>\n <div>\n @if (items() && items().length) {\n <div class=\"m-0 p-0\">\n @for (item of items(); track item) {\n <div class=\"{{ item.classRow || '' }}\">\n <div LibsUiComponentsPopoverDirective\n [config]=\"{content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2}\"\n [ignoreShowPopover]=\"!item.showPopover\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[8px] {{ item.classInclude || '' }} {{ showBorderBottom() ? 'libs-ui-border-bottom-general' : '' }}\"\n [class.flex]=\"!item.ignoreFlex\"\n [class.px-[16px]]=\"applyNow()\"\n [class.pl-[16px]]=\"!applyNow()\"\n [class.pr-[40px]]=\"!applyNow()\"\n [class.libs-ui-disable]=\"item.disable\"\n [class.pointer-events-none]=\"item.disable\"\n (click)=\"handlerSelectItem($event,item)\">\n @if (item[fieldClassIconLeft()]) {\n <i [class]=\"item[fieldClassIconLeft()]\"></i>\n }\n <span [class]=\"item[fieldClass()]\"\n [innerHtml]=\"item[fieldDisplay()] | translate\">\n </span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button [classIconLeft]=\"item.buttonTemplateConfig.iconLeft\"\n [classIconRight]=\"item.buttonTemplateConfig.icon\"\n [label]=\"item.buttonTemplateConfig.label\"\n [classLabel]=\"item.buttonTemplateConfig.label\"\n (outClick)=\"handlerClickButtonTemplate($event, item, items())\"\n [type]=\"item.buttonTemplateConfig.type\" />\n }\n <ng-container *ngTemplateOutlet=\"item?.subTemplate || null;context:{item:item}\"></ng-container>\n @if (item[keyField()] === keySelected() && !applyNow()) {\n <i class=\"libs-ui-icon-check absolute right-[16px] top-[8px]\"></i>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|