@libs-ui/components-buttons-group 0.2.357-3 → 0.2.357-31
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.
package/README.md
CHANGED
|
@@ -330,11 +330,3 @@ export interface IPopoverFunctionControlEvent {
|
|
|
330
330
|
⚠️ **Click button đang active không emit event**: Khi người dùng click vào button có index trùng `indexActive()`, component bỏ qua và không emit `outChange`. Đây là behavior có chủ đích để tránh re-render không cần thiết.
|
|
331
331
|
|
|
332
332
|
⚠️ **`outChange` không truyền DOM Event**: Handler của `(outChange)` nhận `IButton` trực tiếp, không phải `Event` DOM — không cần và không thể gọi `event.stopPropagation()` trong handler này.
|
|
333
|
-
|
|
334
|
-
## Demo
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
npx nx serve core-ui
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
Truy cập: http://localhost:4500/components/buttons/group
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, input, model, output, signal } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output, signal } from '@angular/core';
|
|
2
2
|
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
3
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class LibsUiComponentsButtonsGroupComponent {
|
|
6
|
+
// Bằng default zIndex của button — caller không khai IButton.zIndex thì giữ nguyên hành vi cũ.
|
|
7
|
+
zIndexDefault = 10;
|
|
6
8
|
functionsControlPopover = signal(undefined);
|
|
7
9
|
// #region INPUT
|
|
8
10
|
buttons = input.required();
|
|
9
11
|
indexActive = model(0);
|
|
10
12
|
disable = input(false);
|
|
13
|
+
// #region COMPUTED
|
|
14
|
+
// zIndex từng nút, khớp theo index với buttons(). Cần forward xuống button vì tooltip nhãn bị cắt "..."
|
|
15
|
+
// render bằng popover overlay gắn vào body — để mặc định 10 thì tooltip chìm dưới modal/dialog của caller.
|
|
16
|
+
zIndexButtons = computed(() => this.buttons().map((button) => button.zIndex ?? this.zIndexDefault));
|
|
11
17
|
// #region OUTPUT
|
|
12
18
|
outChange = output();
|
|
13
19
|
outFunctionsControl = output();
|
|
@@ -27,10 +33,10 @@ export class LibsUiComponentsButtonsGroupComponent {
|
|
|
27
33
|
return this.functionsControlPopover();
|
|
28
34
|
}
|
|
29
35
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsButtonsGroupComponent, isStandalone: true, selector: "libs_ui-components-buttons-group", inputs: { buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: true, transformFunction: null }, indexActive: { classPropertyName: "indexActive", publicName: "indexActive", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexActive: "indexActiveChange", outChange: "outChange", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsButtonsGroupComponent, isStandalone: true, selector: "libs_ui-components-buttons-group", inputs: { buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: true, transformFunction: null }, indexActive: { classPropertyName: "indexActive", publicName: "indexActive", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexActive: "indexActiveChange", outChange: "outChange", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [zIndex]=\"zIndexButtons()[$index]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
37
|
}
|
|
32
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsGroupComponent, decorators: [{
|
|
33
39
|
type: Component,
|
|
34
|
-
args: [{ selector: 'libs_ui-components-buttons-group', standalone: true, imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"] }]
|
|
40
|
+
args: [{ selector: 'libs_ui-components-buttons-group', standalone: true, imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [zIndex]=\"zIndexButtons()[$index]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"] }]
|
|
35
41
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvZ3JvdXAvc3JjL2dyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9idXR0b25zL2dyb3VwL3NyYy9ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFXLHNDQUFzQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVd0RCxNQUFNLE9BQU8scUNBQXFDO0lBQ2hELCtGQUErRjtJQUM5RSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRW5CLHVCQUF1QixHQUFHLE1BQU0sQ0FBMkMsU0FBUyxDQUFDLENBQUM7SUFFdkcsZ0JBQWdCO0lBQ1AsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7SUFDM0MsV0FBVyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvQixPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRXpDLG1CQUFtQjtJQUNuQix3R0FBd0c7SUFDeEcsMkdBQTJHO0lBQ3hGLGFBQWEsR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUVqSSxpQkFBaUI7SUFDUixTQUFTLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFDOUIsbUJBQW1CLEdBQUcsTUFBTSxFQUFnQyxDQUFDO0lBRXRFLGVBQWU7SUFDTCxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBYSxFQUFFLE1BQWU7UUFDL0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQXFDO1FBQzNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO3dHQXBDVSxxQ0FBcUM7NEZBQXJDLHFDQUFxQyxnbUJDZGxELGd2QkFnQkEsdzhCRExZLGVBQWUsK0JBQUUsc0NBQXNDOzs0RkFHdEQscUNBQXFDO2tCQVRqRCxTQUFTOytCQUVFLGtDQUFrQyxjQUdoQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsc0NBQXNDLENBQUMsbUJBQ2pELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJ1dHRvbiwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNHcm91cENvbXBvbmVudCB7XG4gIC8vIELhurFuZyBkZWZhdWx0IHpJbmRleCBj4bunYSBidXR0b24g4oCUIGNhbGxlciBraMO0bmcga2hhaSBJQnV0dG9uLnpJbmRleCB0aMOsIGdp4buvIG5ndXnDqm4gaMOgbmggdmkgY8WpLlxuICBwcml2YXRlIHJlYWRvbmx5IHpJbmRleERlZmF1bHQgPSAxMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZ1bmN0aW9uc0NvbnRyb2xQb3BvdmVyID0gc2lnbmFsPElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBidXR0b25zID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8SUJ1dHRvbj4+KCk7XG4gIHJlYWRvbmx5IGluZGV4QWN0aXZlID0gbW9kZWw8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyAjcmVnaW9uIENPTVBVVEVEXG4gIC8vIHpJbmRleCB04burbmcgbsO6dCwga2jhu5twIHRoZW8gaW5kZXggduG7m2kgYnV0dG9ucygpLiBD4bqnbiBmb3J3YXJkIHh14buRbmcgYnV0dG9uIHbDrCB0b29sdGlwIG5ow6NuIGLhu4sgY+G6r3QgXCIuLi5cIlxuICAvLyByZW5kZXIgYuG6sW5nIHBvcG92ZXIgb3ZlcmxheSBn4bqvbiB2w6BvIGJvZHkg4oCUIMSR4buDIG3hurdjIMSR4buLbmggMTAgdGjDrCB0b29sdGlwIGNow6xtIGTGsOG7m2kgbW9kYWwvZGlhbG9nIGPhu6dhIGNhbGxlci5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHpJbmRleEJ1dHRvbnMgPSBjb21wdXRlZDxudW1iZXJbXT4oKCkgPT4gdGhpcy5idXR0b25zKCkubWFwKChidXR0b24pID0+IGJ1dHRvbi56SW5kZXggPz8gdGhpcy56SW5kZXhEZWZhdWx0KSk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PElCdXR0b24+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDbGlja0J1dHRvbihpbmRleDogbnVtYmVyLCBidXR0b246IElCdXR0b24pIHtcbiAgICBpZiAodGhpcy5pbmRleEFjdGl2ZSgpID09PSBpbmRleCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluZGV4QWN0aXZlLnNldChpbmRleCk7XG4gICAgdGhpcy5vdXRDaGFuZ2UuZW1pdChidXR0b24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGNvbnRyb2w6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdChjb250cm9sKTtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2xQb3BvdmVyLnNldChjb250cm9sKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRnVuY3Rpb25zQ29udHJvbCgpOiBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mdW5jdGlvbnNDb250cm9sUG9wb3ZlcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlicy11aS1idXR0b25zLWdyb3VwXCI+XG4gIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zKCk7IHRyYWNrIGJ1dHRvbikge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAgICAgIFt0eXBlXT1cImluZGV4QWN0aXZlKCkgPT09ICRpbmRleCA/ICdidXR0b24tcHJpbWFyeScgOiAnYnV0dG9uLXByaW1hcnktcmV2ZXJ0J1wiXG4gICAgICBbbGFiZWxdPVwiYnV0dG9uLmxhYmVsIHx8ICcnXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCBidXR0b24uZGlzYWJsZSB8fCBmYWxzZVwiXG4gICAgICBbY2xhc3NJY29uTGVmdF09XCJidXR0b24uY2xhc3NJY29uTGVmdCB8fCAnJ1wiXG4gICAgICBbY2xhc3NJbmNsdWRlXT1cImJ1dHRvbi5jbGFzc0luY2x1ZGUgfHwgJydcIlxuICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cImJ1dHRvbi5jbGFzc0ljb25SaWdodCB8fCAnJ1wiXG4gICAgICBbcG9wb3Zlcl09XCJidXR0b24ucG9wb3ZlciB8fCB7fVwiXG4gICAgICBbaWNvbk9ubHlUeXBlXT1cImJ1dHRvbi5pY29uT25seVR5cGUgfHwgZmFsc2VcIlxuICAgICAgW3pJbmRleF09XCJ6SW5kZXhCdXR0b25zKClbJGluZGV4XVwiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbCgkZXZlbnQpXCJcbiAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2tCdXR0b24oJGluZGV4LCBidXR0b24pXCIgLz5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, input, model, output, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { signal, input, model, computed, output, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
3
|
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
4
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
5
|
|
|
6
6
|
class LibsUiComponentsButtonsGroupComponent {
|
|
7
|
+
// Bằng default zIndex của button — caller không khai IButton.zIndex thì giữ nguyên hành vi cũ.
|
|
8
|
+
zIndexDefault = 10;
|
|
7
9
|
functionsControlPopover = signal(undefined);
|
|
8
10
|
// #region INPUT
|
|
9
11
|
buttons = input.required();
|
|
10
12
|
indexActive = model(0);
|
|
11
13
|
disable = input(false);
|
|
14
|
+
// #region COMPUTED
|
|
15
|
+
// zIndex từng nút, khớp theo index với buttons(). Cần forward xuống button vì tooltip nhãn bị cắt "..."
|
|
16
|
+
// render bằng popover overlay gắn vào body — để mặc định 10 thì tooltip chìm dưới modal/dialog của caller.
|
|
17
|
+
zIndexButtons = computed(() => this.buttons().map((button) => button.zIndex ?? this.zIndexDefault));
|
|
12
18
|
// #region OUTPUT
|
|
13
19
|
outChange = output();
|
|
14
20
|
outFunctionsControl = output();
|
|
@@ -28,11 +34,11 @@ class LibsUiComponentsButtonsGroupComponent {
|
|
|
28
34
|
return this.functionsControlPopover();
|
|
29
35
|
}
|
|
30
36
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsButtonsGroupComponent, isStandalone: true, selector: "libs_ui-components-buttons-group", inputs: { buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: true, transformFunction: null }, indexActive: { classPropertyName: "indexActive", publicName: "indexActive", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexActive: "indexActiveChange", outChange: "outChange", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsButtonsGroupComponent, isStandalone: true, selector: "libs_ui-components-buttons-group", inputs: { buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: true, transformFunction: null }, indexActive: { classPropertyName: "indexActive", publicName: "indexActive", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexActive: "indexActiveChange", outChange: "outChange", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [zIndex]=\"zIndexButtons()[$index]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
38
|
}
|
|
33
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsGroupComponent, decorators: [{
|
|
34
40
|
type: Component,
|
|
35
|
-
args: [{ selector: 'libs_ui-components-buttons-group', standalone: true, imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"] }]
|
|
41
|
+
args: [{ selector: 'libs_ui-components-buttons-group', standalone: true, imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [zIndex]=\"zIndexButtons()[$index]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n", styles: [":host ::ng-deep .libs-ui-buttons-group{display:flex}:host ::ng-deep .libs-ui-buttons-group .libs-ui-button-disable{border:1px solid var(--libs-ui-button-other-color-border, #226ff5)!important}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button:hover{border-radius:0;border-left:0}:host ::ng-deep .libs-ui-buttons-group>:not(:first-child):not(:last-child) libs_ui-components-popover .libs-ui-button-disable{border-left:0!important}:host ::ng-deep .libs-ui-buttons-group>:first-child libs_ui-components-popover .libs-ui-button{border-radius:4px 0 0 4px}:host ::ng-deep .libs-ui-buttons-group>:last-child libs_ui-components-popover .libs-ui-button{border-left:0!important;border-radius:0 4px 4px 0}\n"] }]
|
|
36
42
|
}] });
|
|
37
43
|
|
|
38
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-buttons-group.mjs","sources":["../../../../../../libs-ui/components/buttons/group/src/group.component.ts","../../../../../../libs-ui/components/buttons/group/src/group.component.html","../../../../../../libs-ui/components/buttons/group/src/libs-ui-components-buttons-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, output, signal } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IPopoverFunctionControlEvent } from '@libs-ui/components-popover';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-group',\n templateUrl: './group.component.html',\n styleUrl: './group.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsButtonsGroupComponent {\n private readonly functionsControlPopover = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly buttons = input.required<Array<IButton>>();\n readonly indexActive = model<number>(0);\n readonly disable = input<boolean>(false);\n\n // #region OUTPUT\n readonly outChange = output<IButton>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n\n /* FUNCTIONS */\n protected async handlerClickButton(index: number, button: IButton) {\n if (this.indexActive() === index) {\n return;\n }\n this.indexActive.set(index);\n this.outChange.emit(button);\n }\n\n protected async handlerFunctionsControl(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n this.functionsControlPopover.set(control);\n }\n\n public get FunctionsControl(): IPopoverFunctionControlEvent | undefined {\n return this.functionsControlPopover();\n }\n}\n","<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAca,qCAAqC,CAAA
|
|
1
|
+
{"version":3,"file":"libs-ui-components-buttons-group.mjs","sources":["../../../../../../libs-ui/components/buttons/group/src/group.component.ts","../../../../../../libs-ui/components/buttons/group/src/group.component.html","../../../../../../libs-ui/components/buttons/group/src/libs-ui-components-buttons-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model, output, signal } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IPopoverFunctionControlEvent } from '@libs-ui/components-popover';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-group',\n templateUrl: './group.component.html',\n styleUrl: './group.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsButtonsButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsButtonsGroupComponent {\n // Bằng default zIndex của button — caller không khai IButton.zIndex thì giữ nguyên hành vi cũ.\n private readonly zIndexDefault = 10;\n\n private readonly functionsControlPopover = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly buttons = input.required<Array<IButton>>();\n readonly indexActive = model<number>(0);\n readonly disable = input<boolean>(false);\n\n // #region COMPUTED\n // zIndex từng nút, khớp theo index với buttons(). Cần forward xuống button vì tooltip nhãn bị cắt \"...\"\n // render bằng popover overlay gắn vào body — để mặc định 10 thì tooltip chìm dưới modal/dialog của caller.\n protected readonly zIndexButtons = computed<number[]>(() => this.buttons().map((button) => button.zIndex ?? this.zIndexDefault));\n\n // #region OUTPUT\n readonly outChange = output<IButton>();\n readonly outFunctionsControl = output<IPopoverFunctionControlEvent>();\n\n /* FUNCTIONS */\n protected async handlerClickButton(index: number, button: IButton) {\n if (this.indexActive() === index) {\n return;\n }\n this.indexActive.set(index);\n this.outChange.emit(button);\n }\n\n protected async handlerFunctionsControl(control: IPopoverFunctionControlEvent) {\n this.outFunctionsControl.emit(control);\n this.functionsControlPopover.set(control);\n }\n\n public get FunctionsControl(): IPopoverFunctionControlEvent | undefined {\n return this.functionsControlPopover();\n }\n}\n","<div class=\"libs-ui-buttons-group\">\n @for (button of buttons(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"indexActive() === $index ? 'button-primary' : 'button-primary-revert'\"\n [label]=\"button.label || ''\"\n [disable]=\"disable() || button.disable || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [zIndex]=\"zIndexButtons()[$index]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outClick)=\"handlerClickButton($index, button)\" />\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/group.component.d.ts
CHANGED
|
@@ -2,10 +2,12 @@ import { IButton } from '@libs-ui/components-buttons-button';
|
|
|
2
2
|
import { IPopoverFunctionControlEvent } from '@libs-ui/components-popover';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class LibsUiComponentsButtonsGroupComponent {
|
|
5
|
+
private readonly zIndexDefault;
|
|
5
6
|
private readonly functionsControlPopover;
|
|
6
7
|
readonly buttons: import("@angular/core").InputSignal<IButton[]>;
|
|
7
8
|
readonly indexActive: import("@angular/core").ModelSignal<number>;
|
|
8
9
|
readonly disable: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
protected readonly zIndexButtons: import("@angular/core").Signal<number[]>;
|
|
9
11
|
readonly outChange: import("@angular/core").OutputEmitterRef<IButton>;
|
|
10
12
|
readonly outFunctionsControl: import("@angular/core").OutputEmitterRef<IPopoverFunctionControlEvent>;
|
|
11
13
|
protected handlerClickButton(index: number, button: IButton): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-buttons-group",
|
|
3
|
-
"version": "0.2.357-
|
|
3
|
+
"version": "0.2.357-31",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": ">=18.0.0",
|
|
6
|
-
"@libs-ui/components-buttons-button": "0.2.357-
|
|
7
|
-
"@libs-ui/components-popover": "0.2.357-
|
|
6
|
+
"@libs-ui/components-buttons-button": "0.2.357-31",
|
|
7
|
+
"@libs-ui/components-popover": "0.2.357-31",
|
|
8
8
|
"@ngx-translate/core": "^15.0.0"
|
|
9
9
|
},
|
|
10
10
|
"sideEffects": false,
|