@libs-ui/components-buttons-dropdown 0.2.304 → 0.2.306-10
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 +40 -39
- package/dropdown.component.d.ts +2 -0
- package/dropdown.interface.d.ts +2 -2
- package/esm2022/dropdown.component.mjs +13 -12
- package/esm2022/dropdown.interface.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/fesm2022/libs-ui-components-buttons-dropdown.mjs +12 -11
- package/fesm2022/libs-ui-components-buttons-dropdown.mjs.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -43,15 +43,14 @@ import { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-bu
|
|
|
43
43
|
[label]="'Chọn mục'"
|
|
44
44
|
[items]="items"
|
|
45
45
|
[(keySelected)]="selectedKey"
|
|
46
|
-
(outSelectItem)="onSelect($event)">
|
|
47
|
-
|
|
48
|
-
`
|
|
46
|
+
(outSelectItem)="onSelect($event)"></libs_ui-components-buttons-dropdown>
|
|
47
|
+
`,
|
|
49
48
|
})
|
|
50
49
|
export class ExampleComponent {
|
|
51
50
|
items = [
|
|
52
51
|
{ id: '1', label: 'Option 1' },
|
|
53
52
|
{ id: '2', label: 'Option 2' },
|
|
54
|
-
{ id: '3', label: 'Option 3' }
|
|
53
|
+
{ id: '3', label: 'Option 3' },
|
|
55
54
|
];
|
|
56
55
|
selectedKey = '1';
|
|
57
56
|
onSelect(item: any) {
|
|
@@ -70,12 +69,14 @@ import { LibsUiComponentsButtonsDropdownComponent } from '@libs-ui/components-bu
|
|
|
70
69
|
selector: 'app-example',
|
|
71
70
|
standalone: true,
|
|
72
71
|
imports: [LibsUiComponentsButtonsDropdownComponent],
|
|
73
|
-
templateUrl: './example.component.html'
|
|
72
|
+
templateUrl: './example.component.html',
|
|
74
73
|
})
|
|
75
74
|
export class ExampleComponent {
|
|
76
|
-
items = [
|
|
75
|
+
items = [
|
|
76
|
+
/* ... */
|
|
77
|
+
];
|
|
77
78
|
selectedKey = '';
|
|
78
|
-
onSelect(item: any) {
|
|
79
|
+
onSelect(item: any) {}
|
|
79
80
|
}
|
|
80
81
|
```
|
|
81
82
|
|
|
@@ -84,49 +85,49 @@ export class ExampleComponent {
|
|
|
84
85
|
[label]="'Chọn mục'"
|
|
85
86
|
[items]="items"
|
|
86
87
|
[(keySelected)]="selectedKey"
|
|
87
|
-
(outSelectItem)="onSelect($event)">
|
|
88
|
-
</libs_ui-components-buttons-dropdown>
|
|
88
|
+
(outSelectItem)="onSelect($event)"></libs_ui-components-buttons-dropdown>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
## API Reference
|
|
92
92
|
|
|
93
93
|
### Inputs
|
|
94
94
|
|
|
95
|
-
| Tên
|
|
96
|
-
|
|
97
|
-
| label
|
|
98
|
-
| items
|
|
99
|
-
| fieldDisplay
|
|
100
|
-
| keyField
|
|
101
|
-
| keySelected
|
|
102
|
-
| applyNow
|
|
103
|
-
| showBorderBottom
|
|
104
|
-
| disable
|
|
105
|
-
| sizeButton
|
|
106
|
-
| typeButton
|
|
107
|
-
| classLabel
|
|
108
|
-
| classInclude
|
|
109
|
-
| classIncludeContainer
|
|
110
|
-
| fieldClass
|
|
111
|
-
| classIconLeft
|
|
112
|
-
| classIconRight
|
|
113
|
-
| iconOnlyType
|
|
114
|
-
| popupConfig
|
|
115
|
-
| ignoreHiddenPopoverContentWhenMouseLeave | `boolean`
|
|
116
|
-
| modePopover
|
|
95
|
+
| Tên | Kiểu | Mặc định | Mô tả |
|
|
96
|
+
| ---------------------------------------- | ---------------------------- | ---------------------------------------- | ---------------------------------------------------------------- |
|
|
97
|
+
| label | `string` | `''` | Text hiển thị trên nút (ví dụ: "Chọn mục"). |
|
|
98
|
+
| items | `Array<any>` | required | Danh sách các mục sẽ hiển thị trong menu. |
|
|
99
|
+
| fieldDisplay | `string` | `label` | Trường của mục để hiển thị nội dung. |
|
|
100
|
+
| keyField | `string` | `id` | Trường của mục dùng làm giá trị key. |
|
|
101
|
+
| keySelected | `string` | undefined | Giá trị key đang được chọn (hỗ trợ two-way binding). |
|
|
102
|
+
| applyNow | `boolean` | `false` | Nếu true: chọn xong tự emit sự kiện; false: cần bấm nút Áp dụng. |
|
|
103
|
+
| showBorderBottom | `boolean` | `false` | Hiện đường kẻ dưới menu khi mở. |
|
|
104
|
+
| disable | `boolean` | `false` | Khóa dropdown, không cho chọn mục. |
|
|
105
|
+
| sizeButton | `TYPE_SIZE_BUTTON` | `medium` | Kích thước nút (.small/.medium/.large). |
|
|
106
|
+
| typeButton | `TYPE_BUTTON` | `button-primary` | Kiểu style của nút (primary, secondary,...). |
|
|
107
|
+
| classLabel | `string` | `''` | Class CSS thêm cho nhãn (text). |
|
|
108
|
+
| classInclude | `string` | `''` | Class CSS thêm cho phần container chính. |
|
|
109
|
+
| classIncludeContainer | `string` | undefined | Class CSS thêm cho phần container nội dung. |
|
|
110
|
+
| fieldClass | `string` | `class` | Trường trong mục chứa class CSS khi cần. |
|
|
111
|
+
| classIconLeft | `string` | `''` | Class CSS thêm cho icon bên trái. |
|
|
112
|
+
| classIconRight | `string` | `libs-ui-icon-move-right rotate-[90deg]` | Class CSS thêm cho icon bên phải. |
|
|
113
|
+
| iconOnlyType | `boolean` | `false` | Chỉ hiện icon, không hiển thị nhãn. |
|
|
114
|
+
| popupConfig | `IPopupConfigButtonDropdown` | default cấu hình popover | Cấu hình chi tiết cho popover (vị trí, kích thước). |
|
|
115
|
+
| ignoreHiddenPopoverContentWhenMouseLeave | `boolean` | `true` | Giữ popover mở khi chuột rời khỏi nội dung. |
|
|
116
|
+
| modePopover | `TYPE_POPOVER_MODE` | `click-toggle` | Cách hiển thị popover (click, hover,...). |
|
|
117
117
|
|
|
118
118
|
### Outputs
|
|
119
119
|
|
|
120
|
-
| Tên
|
|
121
|
-
|
|
122
|
-
| outSelectItem
|
|
123
|
-
| outHover
|
|
124
|
-
| outApply
|
|
125
|
-
| outPopoverEvent
|
|
126
|
-
| outFunctionsControl
|
|
127
|
-
| outIconEvent
|
|
120
|
+
| Tên | Kiểu | Mô tả |
|
|
121
|
+
| ------------------- | ------------------------------------------------- | --------------------------------------------------------- |
|
|
122
|
+
| outSelectItem | `(item: any) => void` | Trả về mục (item) bạn vừa chọn. |
|
|
123
|
+
| outHover | `(isHover: boolean) => void` | Phát ra khi rê chuột lên/xuống trên một mục. |
|
|
124
|
+
| outApply | `(item: any) => void` | Phát ra khi bạn bấm nút Áp dụng (với applyNow=false). |
|
|
125
|
+
| outPopoverEvent | `(event: TYPE_POPOVER_EVENT) => void` | Phát ra các sự kiện của popover (show, hide, click, ...). |
|
|
126
|
+
| outFunctionsControl | `(control: IPopoverFunctionControlEvent) => void` | Cung cấp control API để điều khiển popover. |
|
|
127
|
+
| outIconEvent | `(event: MouseEvent) => void` | Phát ra khi bạn nhấn vào icon. |
|
|
128
128
|
|
|
129
129
|
### Interfaces
|
|
130
|
+
|
|
130
131
|
```typescript
|
|
131
132
|
export interface IButtonDropdown extends IButton {
|
|
132
133
|
items: any[];
|
package/dropdown.component.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { IPopoverFunctionControlEvent, TYPE_POPOVER_EVENT, TYPE_POPOVER_MODE } f
|
|
|
3
3
|
import { IPopupConfigButtonDropdown } from './dropdown.interface';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class LibsUiComponentsButtonsDropdownComponent {
|
|
6
|
+
private functionsControlPopover;
|
|
6
7
|
protected labelDisplay: import("@angular/core").Signal<any>;
|
|
7
8
|
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
8
9
|
readonly fieldClass: import("@angular/core").InputSignal<string>;
|
|
@@ -35,6 +36,7 @@ export declare class LibsUiComponentsButtonsDropdownComponent {
|
|
|
35
36
|
protected handlerSelectItem(event: Event, data: any): Promise<void>;
|
|
36
37
|
protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT): Promise<void>;
|
|
37
38
|
protected handlerPopoverControlEvent(control: IPopoverFunctionControlEvent): Promise<void>;
|
|
39
|
+
get FunctionsControl(): IPopoverFunctionControlEvent | undefined;
|
|
38
40
|
protected handlerClickButtonTemplate(event: Event, data: any, items: Array<any>): Promise<void>;
|
|
39
41
|
private labelComputed;
|
|
40
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsButtonsDropdownComponent, never>;
|
package/dropdown.interface.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IButton } from
|
|
2
|
-
import { TYPE_POPOVER_DIRECTION, TYPE_POPOVER_MODE } from
|
|
1
|
+
import { IButton } from '@libs-ui/components-buttons-button';
|
|
2
|
+
import { TYPE_POPOVER_DIRECTION, TYPE_POPOVER_MODE } from '@libs-ui/components-popover';
|
|
3
3
|
/**
|
|
4
4
|
* Interface for Dropdown Button component inputs.
|
|
5
5
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { NgTemplateOutlet } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output, signal } 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';
|
|
@@ -9,14 +9,15 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
10
|
export class LibsUiComponentsButtonsDropdownComponent {
|
|
11
11
|
// #region PROPERTY
|
|
12
|
+
functionsControlPopover = signal(undefined);
|
|
12
13
|
labelDisplay = computed(this.labelComputed.bind(this));
|
|
13
14
|
// #region INPUT
|
|
14
15
|
label = input();
|
|
15
16
|
fieldClass = input('class'); // change color label item of items
|
|
16
17
|
fieldClassIconLeft = input('classIconLeft'); // iconclass item of items
|
|
17
|
-
items = input.required({ transform: data => data.map(item => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried
|
|
18
|
-
fieldDisplay = input('label', { transform: value => value ?? 'label' });
|
|
19
|
-
keyField = input('key', { transform: value => value ?? 'key' });
|
|
18
|
+
items = input.required({ transform: (data) => data.map((item) => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried
|
|
19
|
+
fieldDisplay = input('label', { transform: (value) => value ?? 'label' });
|
|
20
|
+
keyField = input('key', { transform: (value) => value ?? 'key' });
|
|
20
21
|
keySelected = model();
|
|
21
22
|
applyNow = input(false); // if not applyNow: keyField is requried
|
|
22
23
|
showBorderBottom = input(false);
|
|
@@ -42,7 +43,7 @@ export class LibsUiComponentsButtonsDropdownComponent {
|
|
|
42
43
|
/* FUNCTIONS */
|
|
43
44
|
async handlerApply() {
|
|
44
45
|
if (!this.applyNow()) {
|
|
45
|
-
this.outApply.emit(this.items().find(item => item[this.keyField()] === this.keySelected()));
|
|
46
|
+
this.outApply.emit(this.items().find((item) => item[this.keyField()] === this.keySelected()));
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
async handlerSelectItem(event, data) {
|
|
@@ -61,6 +62,10 @@ export class LibsUiComponentsButtonsDropdownComponent {
|
|
|
61
62
|
}
|
|
62
63
|
async handlerPopoverControlEvent(control) {
|
|
63
64
|
this.outFunctionsControl.emit(control);
|
|
65
|
+
this.functionsControlPopover.set(control);
|
|
66
|
+
}
|
|
67
|
+
get FunctionsControl() {
|
|
68
|
+
return this.functionsControlPopover();
|
|
64
69
|
}
|
|
65
70
|
async handlerClickButtonTemplate(event, data, items) {
|
|
66
71
|
event.stopPropagation();
|
|
@@ -78,14 +83,10 @@ export class LibsUiComponentsButtonsDropdownComponent {
|
|
|
78
83
|
return this.label();
|
|
79
84
|
}
|
|
80
85
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsButtonsDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsButtonsDropdownComponent, isStandalone: true, selector: "libs_ui-components-buttons-dropdown", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, fieldClassIconLeft: { classPropertyName: "fieldClassIconLeft", publicName: "fieldClassIconLeft", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, fieldDisplay: { classPropertyName: "fieldDisplay", publicName: "fieldDisplay", isSignal: true, isRequired: false, transformFunction: null }, keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: true, isRequired: false, transformFunction: null }, keySelected: { classPropertyName: "keySelected", publicName: "keySelected", isSignal: true, isRequired: false, transformFunction: null }, applyNow: { classPropertyName: "applyNow", publicName: "applyNow", isSignal: true, isRequired: false, transformFunction: null }, showBorderBottom: { classPropertyName: "showBorderBottom", publicName: "showBorderBottom", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, sizeButton: { classPropertyName: "sizeButton", publicName: "sizeButton", isSignal: true, isRequired: false, transformFunction: null }, classLabel: { classPropertyName: "classLabel", publicName: "classLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOnlyType: { classPropertyName: "iconOnlyType", publicName: "iconOnlyType", isSignal: true, isRequired: false, transformFunction: null }, classIconRight: { classPropertyName: "classIconRight", publicName: "classIconRight", isSignal: true, isRequired: false, transformFunction: null }, classIconLeft: { classPropertyName: "classIconLeft", publicName: "classIconLeft", isSignal: true, isRequired: false, transformFunction: null }, typeButton: { classPropertyName: "typeButton", publicName: "typeButton", isSignal: true, isRequired: false, transformFunction: null }, popupConfig: { classPropertyName: "popupConfig", publicName: "popupConfig", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, modePopover: { classPropertyName: "modePopover", publicName: "modePopover", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keySelected: "keySelectedChange", outSelectItem: "outSelectItem", outHover: "outHover", outApply: "outApply", outPopoverEvent: "outPopoverEvent", outFunctionsControl: "outFunctionsControl", outIconEvent: "outIconEvent" }, ngImport: i0, template: "<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 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 [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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()] ?? 'libs-ui-font-h5r'\"\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", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4E8CF7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4E8CF7);background:var(--mo-button-other-color-background-hover, #E9F1FE)!important}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
86
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsButtonsDropdownComponent, isStandalone: true, selector: "libs_ui-components-buttons-dropdown", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, fieldClassIconLeft: { classPropertyName: "fieldClassIconLeft", publicName: "fieldClassIconLeft", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, fieldDisplay: { classPropertyName: "fieldDisplay", publicName: "fieldDisplay", isSignal: true, isRequired: false, transformFunction: null }, keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: true, isRequired: false, transformFunction: null }, keySelected: { classPropertyName: "keySelected", publicName: "keySelected", isSignal: true, isRequired: false, transformFunction: null }, applyNow: { classPropertyName: "applyNow", publicName: "applyNow", isSignal: true, isRequired: false, transformFunction: null }, showBorderBottom: { classPropertyName: "showBorderBottom", publicName: "showBorderBottom", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, sizeButton: { classPropertyName: "sizeButton", publicName: "sizeButton", isSignal: true, isRequired: false, transformFunction: null }, classLabel: { classPropertyName: "classLabel", publicName: "classLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOnlyType: { classPropertyName: "iconOnlyType", publicName: "iconOnlyType", isSignal: true, isRequired: false, transformFunction: null }, classIconRight: { classPropertyName: "classIconRight", publicName: "classIconRight", isSignal: true, isRequired: false, transformFunction: null }, classIconLeft: { classPropertyName: "classIconLeft", publicName: "classIconLeft", isSignal: true, isRequired: false, transformFunction: null }, typeButton: { classPropertyName: "typeButton", publicName: "typeButton", isSignal: true, isRequired: false, transformFunction: null }, popupConfig: { classPropertyName: "popupConfig", publicName: "popupConfig", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, modePopover: { classPropertyName: "modePopover", publicName: "modePopover", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keySelected: "keySelectedChange", outSelectItem: "outSelectItem", outHover: "outHover", outApply: "outApply", outPopoverEvent: "outPopoverEvent", outFunctionsControl: "outFunctionsControl", outIconEvent: "outIconEvent" }, ngImport: i0, template: "<div\n #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\n [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: 0.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\n [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config: {\n animationConfig: {\n time: 0.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\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2 }\"\n [ignoreShowPopover]=\"!item.showPopover\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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\n [class]=\"item[fieldClass()] ?? 'libs-ui-font-h5r'\"\n [innerHtml]=\"item[fieldDisplay()] | translate\"></span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button\n [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\n class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4e8cf7);background:var(--mo-button-other-color-background-hover, #e9f1fe)!important}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
87
|
}
|
|
83
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsButtonsDropdownComponent, decorators: [{
|
|
84
89
|
type: Component,
|
|
85
|
-
args: [{ selector: 'libs_ui-components-buttons-dropdown', standalone: true, imports: [
|
|
86
|
-
TranslateModule, NgTemplateOutlet,
|
|
87
|
-
LibsUiComponentsButtonsButtonComponent,
|
|
88
|
-
LibsUiComponentsPopoverComponent
|
|
89
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 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 [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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()] ?? 'libs-ui-font-h5r'\"\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", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4E8CF7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4E8CF7);background:var(--mo-button-other-color-background-hover, #E9F1FE)!important}\n"] }]
|
|
90
|
+
args: [{ selector: 'libs_ui-components-buttons-dropdown', standalone: true, imports: [TranslateModule, NgTemplateOutlet, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsPopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #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\n [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: 0.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\n [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config: {\n animationConfig: {\n time: 0.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\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2 }\"\n [ignoreShowPopover]=\"!item.showPopover\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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\n [class]=\"item[fieldClass()] ?? 'libs-ui-font-h5r'\"\n [innerHtml]=\"item[fieldDisplay()] | translate\"></span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button\n [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\n class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4e8cf7);background:var(--mo-button-other-color-background-hover, #e9f1fe)!important}\n"] }]
|
|
90
91
|
}] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9idXR0b25zL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLHNDQUFzQyxFQUFpQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNILE9BQU8sRUFBZ0MsZ0NBQWdDLEVBQXlDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEosT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBZ0J0RCxNQUFNLE9BQU8sd0NBQXdDO0lBRW5ELG1CQUFtQjtJQUNULFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUVoRSxnQkFBZ0I7SUFDUCxLQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDeEIsVUFBVSxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztJQUN4RSxrQkFBa0IsR0FBRyxLQUFLLENBQVMsZUFBZSxDQUFDLENBQUMsQ0FBQywwQkFBMEI7SUFDL0UsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsU0FB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RSxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0EvRVUsd0NBQXdDOzRGQUF4Qyx3Q0FBd0Msd3dHQ3RCckQsODNLQThIQSxrMEVEOUdJLGVBQWUsNEZBQUUsZ0JBQWdCLG9KQUNqQyxzQ0FBc0Msc2pCQUN0QyxnQ0FBZ0M7OzRGQUl2Qix3Q0FBd0M7a0JBYnBELFNBQVM7K0JBRUUscUNBQXFDLGNBR25DLElBQUksV0FDUDt3QkFDUCxlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyxzQ0FBc0M7d0JBQ3RDLGdDQUFnQztxQkFDakMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsIFRZUEVfQlVUVE9OLCBUWVBFX1NJWkVfQlVUVE9OIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50LCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCwgVFlQRV9QT1BPVkVSX0VWRU5ULCBUWVBFX1BPUE9WRVJfTU9ERSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBlc2NhcGVIdG1sIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJUG9wdXBDb25maWdCdXR0b25Ecm9wZG93biB9IGZyb20gJy4vZHJvcGRvd24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNCdXR0b25zRHJvcGRvd25Db21wb25lbnQge1xuXG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGxhYmVsRGlzcGxheSA9IGNvbXB1dGVkKHRoaXMubGFiZWxDb21wdXRlZC5iaW5kKHRoaXMpKVxuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGZpZWxkQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCdjbGFzcycpOyAvLyBjaGFuZ2UgY29sb3IgbGFiZWwgaXRlbSBvZiBpdGVtc1xuICByZWFkb25seSBmaWVsZENsYXNzSWNvbkxlZnQgPSBpbnB1dDxzdHJpbmc+KCdjbGFzc0ljb25MZWZ0Jyk7IC8vIGljb25jbGFzcyBpdGVtIG9mIGl0ZW1zXG4gIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8YW55PiwgQXJyYXk8YW55Pj4oeyB0cmFuc2Zvcm06IGRhdGEgPT4gZGF0YS5tYXAoaXRlbSA9PiAoeyAuLi5pdGVtLCBbdGhpcy5maWVsZERpc3BsYXkoKV06IGVzY2FwZUh0bWwoaXRlbVt0aGlzLmZpZWxkRGlzcGxheSgpXSkgfSkpIH0pOyAvLyByZXF1cmllZFxuICByZWFkb25seSBmaWVsZERpc3BsYXkgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJ2xhYmVsJywgeyB0cmFuc2Zvcm06IHZhbHVlID0+IHZhbHVlID8/ICdsYWJlbCcgfSk7XG4gIHJlYWRvbmx5IGtleUZpZWxkID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdrZXknLCB7IHRyYW5zZm9ybTogdmFsdWUgPT4gdmFsdWUgPz8gJ2tleScgfSk7XG4gIHJlYWRvbmx5IGtleVNlbGVjdGVkID0gbW9kZWw8c3RyaW5nPigpO1xuICByZWFkb25seSBhcHBseU5vdyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTsgLy8gaWYgbm90IGFwcGx5Tm93OiBrZXlGaWVsZCBpcyByZXF1cmllZFxuICByZWFkb25seSBzaG93Qm9yZGVyQm90dG9tID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaXplQnV0dG9uID0gaW5wdXQ8VFlQRV9TSVpFX0JVVFRPTj4oJ21lZGl1bScpO1xuICByZWFkb25seSBjbGFzc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGljb25Pbmx5VHlwZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xhc3NJY29uUmlnaHQgPSBpbnB1dDxzdHJpbmc+KCdsaWJzLXVpLWljb24tbW92ZS1yaWdodCByb3RhdGUtWzkwZGVnXScpO1xuICByZWFkb25seSBjbGFzc0ljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IHR5cGVCdXR0b24gPSBpbnB1dDxUWVBFX0JVVFRPTj4oJ2J1dHRvbi1wcmltYXJ5Jyk7XG4gIHJlYWRvbmx5IHBvcHVwQ29uZmlnID0gaW5wdXQ8SVBvcHVwQ29uZmlnQnV0dG9uRHJvcGRvd24+KHsgd2lkdGg6IDIwNSwgbWF4V2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiAxNDAsIHpJbmRleDogMTIwMCwgZGlyZWN0aW9uOiAndG9wJyB9KTtcbiAgcmVhZG9ubHkgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgbW9kZVBvcG92ZXIgPSBpbnB1dDxUWVBFX1BPUE9WRVJfTU9ERT4oJ2NsaWNrLXRvZ2dsZScpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVDb250YWluZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2VsZWN0SXRlbSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEhvdmVyID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG91dEFwcGx5ID0gb3V0cHV0PGFueT4oKTsgLy8gc+G7rSBk4bulbmcgY2hvIGLhuqVtIGJ1dHRvbiBsZWZ0IGNo4bq/IMSR4buZIGFwcGx5Tm93ID0gZmFsc2U7XG4gIHJlYWRvbmx5IG91dFBvcG92ZXJFdmVudCA9IG91dHB1dDxUWVBFX1BPUE9WRVJfRVZFTlQ+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0SWNvbkV2ZW50ID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQXBwbHkoKSB7XG4gICAgaWYgKCF0aGlzLmFwcGx5Tm93KCkpIHtcbiAgICAgIHRoaXMub3V0QXBwbHkuZW1pdCh0aGlzLml0ZW1zKCkuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gdGhpcy5rZXlTZWxlY3RlZCgpKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJTZWxlY3RJdGVtKGV2ZW50OiBFdmVudCwgZGF0YTogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGRhdGEuc3ViVGVtcGxhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFwcGx5Tm93KCkpIHtcbiAgICAgIHRoaXMua2V5U2VsZWN0ZWQuc2V0KGRhdGFbdGhpcy5rZXlGaWVsZCgpXSk7XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0SXRlbS5lbWl0KGRhdGEpO1xuICAgIHRoaXMub3V0SG92ZXIuZW1pdChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlclBvcG92ZXJFdmVudChldmVudDogVFlQRV9QT1BPVkVSX0VWRU5UKSB7XG4gICAgdGhpcy5vdXRQb3BvdmVyRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlclBvcG92ZXJDb250cm9sRXZlbnQoY29udHJvbDogSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KGNvbnRyb2wpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDbGlja0J1dHRvblRlbXBsYXRlKGV2ZW50OiBFdmVudCwgZGF0YTogYW55LCBpdGVtczogQXJyYXk8YW55Pikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGRhdGEuYnV0dG9uVGVtcGxhdGVDb25maWcuYWN0aW9uKGRhdGEsIGl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgbGFiZWxDb21wdXRlZCgpIHtcbiAgICBpZiAoIXRoaXMua2V5U2VsZWN0ZWQoKSB8fCAhdGhpcy5pdGVtcygpIHx8ICF0aGlzLml0ZW1zKCkubGVuZ3RoIHx8ICF0aGlzLmtleUZpZWxkKCkgfHwgdGhpcy5hcHBseU5vdygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYWJlbCgpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcygpKSB7XG4gICAgICBpZiAoaXRlbVt0aGlzLmtleUZpZWxkKCldID09PSB0aGlzLmtleVNlbGVjdGVkKCkpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1bdGhpcy5maWVsZERpc3BsYXkoKV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGFiZWwoKTtcbiAgfVxuXG59IiwiPGRpdiAjYnV0dG9uRHJvcGRvd25FbFxuICBjbGFzcz1cImxpYnMtdWktYnV0dG9ucy1kcm9wZG93biBmbGV4IHt7IGNsYXNzSW5jbHVkZUNvbnRhaW5lcigpIHx8ICcnIH19XCJcbiAgW2NsYXNzLmxpYnMtdWktYnV0dG9ucy1kcm9wZG93bi11bi1hcHBseS1ub3ddPVwiIWFwcGx5Tm93KClcIlxuICBbY2xhc3MubGlicy11aS1idXR0b25zLWRyb3Bkb3duLWFwcGx5LW5vdy1idXR0b24tcHJpbWFyeV09XCJhcHBseU5vdygpICYmIHR5cGVCdXR0b24oKSA9PT0gJ2J1dHRvbi1wcmltYXJ5J1wiXG4gIFtjbGFzcy5saWJzLXVpLWJ1dHRvbnMtZHJvcGRvd24tYXBwbHktbm93LWJ1dHRvbi1zZWNvbmRhcnldPVwiYXBwbHlOb3coKSAmJiB0eXBlQnV0dG9uKCkgPT09ICdidXR0b24tc2Vjb25kYXJ5J1wiPlxuICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgW2ljb25Pbmx5VHlwZV09XCJpY29uT25seVR5cGUoKVwiXG4gICAgW2NsYXNzSWNvbkxlZnRdPVwiY2xhc3NJY29uTGVmdCgpXCJcbiAgICBbY2xhc3NJY29uUmlnaHRdPVwiIWFwcGx5Tm93KCkgPyAnJyA6IGNsYXNzSWNvblJpZ2h0KClcIlxuICAgIFt0eXBlXT1cInR5cGVCdXR0b24oKVwiXG4gICAgW2NsYXNzTGFiZWxdPVwiY2xhc3NMYWJlbCgpXCJcbiAgICBbY2xhc3NJbmNsdWRlXT1cImNsYXNzSW5jbHVkZSgpXCJcbiAgICBbc2l6ZUJ1dHRvbl09XCJzaXplQnV0dG9uKClcIlxuICAgIFtwb3BvdmVyXT1cIntcbiAgICAgIGVsZW1lbnRSZWZDdXN0b206IGJ1dHRvbkRyb3Bkb3duRWwsXG4gICAgICBtb2RlOiBtb2RlUG9wb3ZlcigpLFxuICAgICAgaWdub3JlU2hvd1BvcG92ZXI6ICFhcHBseU5vdygpLFxuICAgICAgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZTogdHJ1ZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhbmltYXRpb25Db25maWc6IHtcbiAgICAgICAgICB0aW1lOiAuNVxuICAgICAgICB9LFxuICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGVDb250ZW50RWwsXG4gICAgICAgIHdoaXRlVGhlbWU6IHRydWUsXG4gICAgICAgIGlnbm9yZUFycm93OiB0cnVlLFxuICAgICAgICB3aWR0aDogcG9wdXBDb25maWcoKS53aWR0aCxcbiAgICAgICAgd2lkdGhCeVBhcmVudDogcG9wdXBDb25maWcoKS53aWR0aEJ5UGFyZW50ID8/IGZhbHNlLFxuICAgICAgICBtYXhXaWR0aDogcG9wdXBDb25maWcoKS5tYXhXaWR0aCxcbiAgICAgICAgbWF4SGVpZ2h0OiBwb3B1cENvbmZpZygpLm1heEhlaWdodCxcbiAgICAgICAgekluZGV4OiBwb3B1cENvbmZpZygpLnpJbmRleCxcbiAgICAgICAgY2xhc3NJbmNsdWRlOiAncm91bmRlZC1bNHB4XSAnICsgcG9wdXBDb25maWcoKS5jbGFzc0luY2x1ZGUsXG4gICAgICAgIGRpcmVjdGlvbjogcG9wdXBDb25maWcoKS5kaXJlY3Rpb24sXG4gICAgICAgIHRpbWVyRGVzdHJveTogcG9wdXBDb25maWcoKS50aW1lRGVzdHJveSxcbiAgICAgICAgZGlyZWN0aW9uRGlzdGFuY2U6IDIsXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgbW9kZTogcG9wdXBDb25maWcoKS5wb3NpdGlvbj8ubW9kZSB8fCAnc3RhcnQnLFxuICAgICAgICAgIGRpc3RhbmNlOiBwb3B1cENvbmZpZygpLnBvc2l0aW9uPy5kaXN0YW5jZSA/PyAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XCJcbiAgICBbbGFiZWxdPVwibGFiZWxEaXNwbGF5KClcIlxuICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJQb3BvdmVyQ29udHJvbEV2ZW50KCRldmVudClcIlxuICAgIChvdXRQb3BvdmVyRXZlbnQpPVwiaGFuZGxlclBvcG92ZXJFdmVudCgkZXZlbnQpXCJcbiAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFwcGx5KClcIiAvPlxuICBAaWYgKCFhcHBseU5vdygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCB3LVsxcHhdIGJnLXdoaXRlXCI+PC9kaXY+XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCJ0eXBlQnV0dG9uKClcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICAgIFtzaXplQnV0dG9uXT1cInNpemVCdXR0b24oKVwiXG4gICAgICBbcG9wb3Zlcl09XCJ7XG4gICAgICAgIG1vZGU6ICdjbGljay10b2dnbGUnLFxuICAgICAgICBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlOiBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlKCksXG4gICAgICAgIGNvbmZpZzp7XG4gICAgICAgICAgYW5pbWF0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgICB0aW1lOi41XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGVDb250ZW50RWwsXG4gICAgICAgICAgd2hpdGVUaGVtZTogdHJ1ZSxcbiAgICAgICAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICAgICAgICB3aWR0aDogcG9wdXBDb25maWcoKS53aWR0aCxcbiAgICAgICAgICBtYXhXaWR0aDogcG9wdXBDb25maWcoKS5tYXhXaWR0aCxcbiAgICAgICAgICB3aWR0aEJ5UGFyZW50OiBwb3B1cENvbmZpZygpLndpZHRoQnlQYXJlbnQgPz8gZmFsc2UsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBwb3B1cENvbmZpZygpLm1heEhlaWdodCxcbiAgICAgICAgICB6SW5kZXg6IHBvcHVwQ29uZmlnKCkuekluZGV4LFxuICAgICAgICAgIGRpcmVjdGlvbjogcG9wdXBDb25maWcoKS5kaXJlY3Rpb24sXG4gICAgICAgICAgY2xhc3NJbmNsdWRlOiBwb3B1cENvbmZpZygpLmNsYXNzSW5jbHVkZSxcbiAgICAgICAgICBkaXJlY3Rpb25EaXN0YW5jZToyLFxuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICBtb2RlOiAnc3RhcnQnLFxuICAgICAgICAgICAgZGlzdGFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cIlxuICAgICAgW2ljb25Pbmx5VHlwZV09XCJ0cnVlXCJcbiAgICAgIFtjbGFzc0ljb25SaWdodF09XCJjbGFzc0ljb25SaWdodCgpXCJcbiAgICAgIFtjbGFzc0luY2x1ZGVdPVwiY2xhc3NJbmNsdWRlKCkgfHwgJyFweS1bOXB4XSdcIlxuICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlclBvcG92ZXJDb250cm9sRXZlbnQoJGV2ZW50KVwiXG4gICAgICAob3V0UG9wb3ZlckV2ZW50KT1cImhhbmRsZXJQb3BvdmVyRXZlbnQoJGV2ZW50KVwiIC8+XG4gIH1cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUNvbnRlbnRFbD5cbiAgPGRpdj5cbiAgICBAaWYgKGl0ZW1zKCkgJiYgaXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtLTAgcC0wXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7eyBpdGVtLmNsYXNzUm93IHx8ICcnIH19XCI+XG4gICAgICAgICAgICA8ZGl2IExpYnNVaUNvbXBvbmVudHNQb3BvdmVyRGlyZWN0aXZlXG4gICAgICAgICAgICAgIFtjb25maWddPVwie2NvbnRlbnQ6IGl0ZW0ucG9wb3ZlckNvbnRlbnQsIHpJbmRleDogcG9wdXBDb25maWcoKS56SW5kZXgsIGRpcmVjdGlvbkRpc3RhbmNlOiAtMn1cIlxuICAgICAgICAgICAgICBbaWdub3JlU2hvd1BvcG92ZXJdPVwiIWl0ZW0uc2hvd1BvcG92ZXJcIlxuICAgICAgICAgICAgICBbaWdub3JlU3RvcFByb3BhZ2F0aW9uRXZlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1iZy1saXN0LWhvdmVyIHJlbGF0aXZlIGN1cnNvci1wb2ludGVyIHB5LVs3cHhdIHt7IGl0ZW0uY2xhc3NJbmNsdWRlIHx8ICcnIH19ICB7eyBzaG93Qm9yZGVyQm90dG9tKCkgPyAnbGlicy11aS1ib3JkZXItYm90dG9tLWdlbmVyYWwnIDogJycgfX1cIlxuICAgICAgICAgICAgICBbY2xhc3MuZmxleF09XCIhaXRlbS5pZ25vcmVGbGV4XCJcbiAgICAgICAgICAgICAgW2NsYXNzLnB4LVsxNnB4XV09XCJhcHBseU5vdygpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBsLVsxNnB4XV09XCIhYXBwbHlOb3coKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wci1bNDBweF1dPVwiIWFwcGx5Tm93KClcIlxuICAgICAgICAgICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cIml0ZW0uZGlzYWJsZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cIml0ZW0uZGlzYWJsZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyU2VsZWN0SXRlbSgkZXZlbnQsaXRlbSlcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtW2ZpZWxkQ2xhc3NJY29uTGVmdCgpXSkge1xuICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtW2ZpZWxkQ2xhc3NJY29uTGVmdCgpXVwiPjwvaT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaXRlbVtmaWVsZENsYXNzKCldID8/ICdsaWJzLXVpLWZvbnQtaDVyJ1wiXG4gICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJpdGVtW2ZpZWxkRGlzcGxheSgpXSB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZykge1xuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2NsYXNzSWNvbkxlZnRdPVwiaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZy5pY29uTGVmdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NJY29uUmlnaHRdPVwiaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZy5pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmJ1dHRvblRlbXBsYXRlQ29uZmlnLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzc0xhYmVsXT1cIml0ZW0uYnV0dG9uVGVtcGxhdGVDb25maWcubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGlja0J1dHRvblRlbXBsYXRlKCRldmVudCwgaXRlbSwgaXRlbXMoKSlcIlxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZy50eXBlXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbT8uc3ViVGVtcGxhdGUgfHwgbnVsbDtjb250ZXh0OntpdGVtOml0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbVtrZXlGaWVsZCgpXSA9PT0ga2V5U2VsZWN0ZWQoKSAmJiAhYXBwbHlOb3coKSkge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZWNrIGFic29sdXRlIHJpZ2h0LVsxNnB4XSB0b3AtWzhweF1cIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJwLVsyMHB4XVwiXG4gICAgICAgIFtpbm5lckh0bWxdPVwiJ2kxOG5fbm9fZGF0YScgfCB0cmFuc2xhdGVcIj48L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9idXR0b25zL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBaUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzSCxPQUFPLEVBQWdDLGdDQUFnQyxFQUF5QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVl0RCxNQUFNLE9BQU8sd0NBQXdDO0lBQ25ELG1CQUFtQjtJQUNYLHVCQUF1QixHQUFHLE1BQU0sQ0FBMkMsU0FBUyxDQUFDLENBQUM7SUFDcEYsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWpFLGdCQUFnQjtJQUNQLEtBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN4QixVQUFVLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ3hFLGtCQUFrQixHQUFHLEtBQUssQ0FBUyxlQUFlLENBQUMsQ0FBQyxDQUFD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LENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN4RyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO3dHQXBGVSx3Q0FBd0M7NEZBQXhDLHdDQUF3Qyx3d0dDbEJyRCw4OEtBb0lBLGswRURySFksZUFBZSw0RkFBRSxnQkFBZ0Isb0pBQUUsc0NBQXNDLHNqQkFBRSxnQ0FBZ0M7OzRGQUcxRyx3Q0FBd0M7a0JBVHBELFNBQVM7K0JBRUUscUNBQXFDLGNBR25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQ0FBc0MsRUFBRSxnQ0FBZ0MsQ0FBQyxtQkFDckcsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LCBUWVBFX0JVVFRPTiwgVFlQRV9TSVpFX0JVVFRPTiB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b24nO1xuaW1wb3J0IHsgSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIFRZUEVfUE9QT1ZFUl9FVkVOVCwgVFlQRV9QT1BPVkVSX01PREUgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgZXNjYXBlSHRtbCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVBvcHVwQ29uZmlnQnV0dG9uRHJvcGRvd24gfSBmcm9tICcuL2Ryb3Bkb3duLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNCdXR0b25zRHJvcGRvd25Db21wb25lbnQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgZnVuY3Rpb25zQ29udHJvbFBvcG92ZXIgPSBzaWduYWw8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGxhYmVsRGlzcGxheSA9IGNvbXB1dGVkKHRoaXMubGFiZWxDb21wdXRlZC5iaW5kKHRoaXMpKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBmaWVsZENsYXNzID0gaW5wdXQ8c3RyaW5nPignY2xhc3MnKTsgLy8gY2hhbmdlIGNvbG9yIGxhYmVsIGl0ZW0gb2YgaXRlbXNcbiAgcmVhZG9ubHkgZmllbGRDbGFzc0ljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPignY2xhc3NJY29uTGVmdCcpOyAvLyBpY29uY2xhc3MgaXRlbSBvZiBpdGVtc1xuICByZWFkb25seSBpdGVtcyA9IGlucHV0LnJlcXVpcmVkPEFycmF5PGFueT4sIEFycmF5PGFueT4+KHsgdHJhbnNmb3JtOiAoZGF0YSkgPT4gZGF0YS5tYXAoKGl0ZW0pID0+ICh7IC4uLml0ZW0sIFt0aGlzLmZpZWxkRGlzcGxheSgpXTogZXNjYXBlSHRtbChpdGVtW3RoaXMuZmllbGREaXNwbGF5KCldKSB9KSkgfSk7IC8vIHJlcXVyaWVkXG4gIHJlYWRvbmx5IGZpZWxkRGlzcGxheSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignbGFiZWwnLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAnbGFiZWwnIH0pO1xuICByZWFkb25seSBrZXlGaWVsZCA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigna2V5JywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gJ2tleScgfSk7XG4gIHJlYWRvbmx5IGtleVNlbGVjdGVkID0gbW9kZWw8c3RyaW5nPigpO1xuICByZWFkb25seSBhcHBseU5vdyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTsgLy8gaWYgbm90IGFwcGx5Tm93OiBrZXlGaWVsZCBpcyByZXF1cmllZFxuICByZWFkb25seSBzaG93Qm9yZGVyQm90dG9tID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaXplQnV0dG9uID0gaW5wdXQ8VFlQRV9TSVpFX0JVVFRPTj4oJ21lZGl1bScpO1xuICByZWFkb25seSBjbGFzc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGljb25Pbmx5VHlwZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xhc3NJY29uUmlnaHQgPSBpbnB1dDxzdHJpbmc+KCdsaWJzLXVpLWljb24tbW92ZS1yaWdodCByb3RhdGUtWzkwZGVnXScpO1xuICByZWFkb25seSBjbGFzc0ljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IHR5cGVCdXR0b24gPSBpbnB1dDxUWVBFX0JVVFRPTj4oJ2J1dHRvbi1wcmltYXJ5Jyk7XG4gIHJlYWRvbmx5IHBvcHVwQ29uZmlnID0gaW5wdXQ8SVBvcHVwQ29uZmlnQnV0dG9uRHJvcGRvd24+KHsgd2lkdGg6IDIwNSwgbWF4V2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiAxNDAsIHpJbmRleDogMTIwMCwgZGlyZWN0aW9uOiAndG9wJyB9KTtcbiAgcmVhZG9ubHkgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgbW9kZVBvcG92ZXIgPSBpbnB1dDxUWVBFX1BPUE9WRVJfTU9ERT4oJ2NsaWNrLXRvZ2dsZScpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVDb250YWluZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2VsZWN0SXRlbSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEhvdmVyID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG91dEFwcGx5ID0gb3V0cHV0PGFueT4oKTsgLy8gc+G7rSBk4bulbmcgY2hvIGLhuqVtIGJ1dHRvbiBsZWZ0IGNo4bq/IMSR4buZIGFwcGx5Tm93ID0gZmFsc2U7XG4gIHJlYWRvbmx5IG91dFBvcG92ZXJFdmVudCA9IG91dHB1dDxUWVBFX1BPUE9WRVJfRVZFTlQ+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0SWNvbkV2ZW50ID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQXBwbHkoKSB7XG4gICAgaWYgKCF0aGlzLmFwcGx5Tm93KCkpIHtcbiAgICAgIHRoaXMub3V0QXBwbHkuZW1pdCh0aGlzLml0ZW1zKCkuZmluZCgoaXRlbSkgPT4gaXRlbVt0aGlzLmtleUZpZWxkKCldID09PSB0aGlzLmtleVNlbGVjdGVkKCkpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlclNlbGVjdEl0ZW0oZXZlbnQ6IEV2ZW50LCBkYXRhOiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoZGF0YS5zdWJUZW1wbGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYXBwbHlOb3coKSkge1xuICAgICAgdGhpcy5rZXlTZWxlY3RlZC5zZXQoZGF0YVt0aGlzLmtleUZpZWxkKCldKTtcbiAgICB9XG4gICAgdGhpcy5vdXRTZWxlY3RJdGVtLmVtaXQoZGF0YSk7XG4gICAgdGhpcy5vdXRIb3Zlci5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyUG9wb3ZlckV2ZW50KGV2ZW50OiBUWVBFX1BPUE9WRVJfRVZFTlQpIHtcbiAgICB0aGlzLm91dFBvcG92ZXJFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyUG9wb3ZlckNvbnRyb2xFdmVudChjb250cm9sOiBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbnNDb250cm9sLmVtaXQoY29udHJvbCk7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sUG9wb3Zlci5zZXQoY29udHJvbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25zQ29udHJvbFBvcG92ZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQ2xpY2tCdXR0b25UZW1wbGF0ZShldmVudDogRXZlbnQsIGRhdGE6IGFueSwgaXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBkYXRhLmJ1dHRvblRlbXBsYXRlQ29uZmlnLmFjdGlvbihkYXRhLCBpdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGxhYmVsQ29tcHV0ZWQoKSB7XG4gICAgaWYgKCF0aGlzLmtleVNlbGVjdGVkKCkgfHwgIXRoaXMuaXRlbXMoKSB8fCAhdGhpcy5pdGVtcygpLmxlbmd0aCB8fCAhdGhpcy5rZXlGaWVsZCgpIHx8IHRoaXMuYXBwbHlOb3coKSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFiZWwoKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMoKSkge1xuICAgICAgaWYgKGl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gdGhpcy5rZXlTZWxlY3RlZCgpKSB7XG4gICAgICAgIHJldHVybiBpdGVtW3RoaXMuZmllbGREaXNwbGF5KCldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhYmVsKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2J1dHRvbkRyb3Bkb3duRWxcbiAgY2xhc3M9XCJsaWJzLXVpLWJ1dHRvbnMtZHJvcGRvd24gZmxleCB7eyBjbGFzc0luY2x1ZGVDb250YWluZXIoKSB8fCAnJyB9fVwiXG4gIFtjbGFzcy5saWJzLXVpLWJ1dHRvbnMtZHJvcGRvd24tdW4tYXBwbHktbm93XT1cIiFhcHBseU5vdygpXCJcbiAgW2NsYXNzLmxpYnMtdWktYnV0dG9ucy1kcm9wZG93bi1hcHBseS1ub3ctYnV0dG9uLXByaW1hcnldPVwiYXBwbHlOb3coKSAmJiB0eXBlQnV0dG9uKCkgPT09ICdidXR0b24tcHJpbWFyeSdcIlxuICBbY2xhc3MubGlicy11aS1idXR0b25zLWRyb3Bkb3duLWFwcGx5LW5vdy1idXR0b24tc2Vjb25kYXJ5XT1cImFwcGx5Tm93KCkgJiYgdHlwZUJ1dHRvbigpID09PSAnYnV0dG9uLXNlY29uZGFyeSdcIj5cbiAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgW2ljb25Pbmx5VHlwZV09XCJpY29uT25seVR5cGUoKVwiXG4gICAgW2NsYXNzSWNvbkxlZnRdPVwiY2xhc3NJY29uTGVmdCgpXCJcbiAgICBbY2xhc3NJY29uUmlnaHRdPVwiIWFwcGx5Tm93KCkgPyAnJyA6IGNsYXNzSWNvblJpZ2h0KClcIlxuICAgIFt0eXBlXT1cInR5cGVCdXR0b24oKVwiXG4gICAgW2NsYXNzTGFiZWxdPVwiY2xhc3NMYWJlbCgpXCJcbiAgICBbY2xhc3NJbmNsdWRlXT1cImNsYXNzSW5jbHVkZSgpXCJcbiAgICBbc2l6ZUJ1dHRvbl09XCJzaXplQnV0dG9uKClcIlxuICAgIFtwb3BvdmVyXT1cIntcbiAgICAgIGVsZW1lbnRSZWZDdXN0b206IGJ1dHRvbkRyb3Bkb3duRWwsXG4gICAgICBtb2RlOiBtb2RlUG9wb3ZlcigpLFxuICAgICAgaWdub3JlU2hvd1BvcG92ZXI6ICFhcHBseU5vdygpLFxuICAgICAgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZTogdHJ1ZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhbmltYXRpb25Db25maWc6IHtcbiAgICAgICAgICB0aW1lOiAwLjUsXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZUNvbnRlbnRFbCxcbiAgICAgICAgd2hpdGVUaGVtZTogdHJ1ZSxcbiAgICAgICAgaWdub3JlQXJyb3c6IHRydWUsXG4gICAgICAgIHdpZHRoOiBwb3B1cENvbmZpZygpLndpZHRoLFxuICAgICAgICB3aWR0aEJ5UGFyZW50OiBwb3B1cENvbmZpZygpLndpZHRoQnlQYXJlbnQgPz8gZmFsc2UsXG4gICAgICAgIG1heFdpZHRoOiBwb3B1cENvbmZpZygpLm1heFdpZHRoLFxuICAgICAgICBtYXhIZWlnaHQ6IHBvcHVwQ29uZmlnKCkubWF4SGVpZ2h0LFxuICAgICAgICB6SW5kZXg6IHBvcHVwQ29uZmlnKCkuekluZGV4LFxuICAgICAgICBjbGFzc0luY2x1ZGU6ICdyb3VuZGVkLVs0cHhdICcgKyBwb3B1cENvbmZpZygpLmNsYXNzSW5jbHVkZSxcbiAgICAgICAgZGlyZWN0aW9uOiBwb3B1cENvbmZpZygpLmRpcmVjdGlvbixcbiAgICAgICAgdGltZXJEZXN0cm95OiBwb3B1cENvbmZpZygpLnRpbWVEZXN0cm95LFxuICAgICAgICBkaXJlY3Rpb25EaXN0YW5jZTogMixcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICBtb2RlOiBwb3B1cENvbmZpZygpLnBvc2l0aW9uPy5tb2RlIHx8ICdzdGFydCcsXG4gICAgICAgICAgZGlzdGFuY2U6IHBvcHVwQ29uZmlnKCkucG9zaXRpb24/LmRpc3RhbmNlID8/IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cIlxuICAgIFtsYWJlbF09XCJsYWJlbERpc3BsYXkoKVwiXG4gICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlclBvcG92ZXJDb250cm9sRXZlbnQoJGV2ZW50KVwiXG4gICAgKG91dFBvcG92ZXJFdmVudCk9XCJoYW5kbGVyUG9wb3ZlckV2ZW50KCRldmVudClcIlxuICAgIChvdXRDbGljayk9XCJoYW5kbGVyQXBwbHkoKVwiIC8+XG4gIEBpZiAoIWFwcGx5Tm93KCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIHctWzFweF0gYmctd2hpdGVcIj48L2Rpdj5cbiAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICBbdHlwZV09XCJ0eXBlQnV0dG9uKClcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICAgIFtzaXplQnV0dG9uXT1cInNpemVCdXR0b24oKVwiXG4gICAgICBbcG9wb3Zlcl09XCJ7XG4gICAgICAgIG1vZGU6ICdjbGljay10b2dnbGUnLFxuICAgICAgICBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlOiBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlKCksXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFuaW1hdGlvbkNvbmZpZzoge1xuICAgICAgICAgICAgdGltZTogMC41LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlQ29udGVudEVsLFxuICAgICAgICAgIHdoaXRlVGhlbWU6IHRydWUsXG4gICAgICAgICAgaWdub3JlQXJyb3c6IHRydWUsXG4gICAgICAgICAgd2lkdGg6IHBvcHVwQ29uZmlnKCkud2lkdGgsXG4gICAgICAgICAgbWF4V2lkdGg6IHBvcHVwQ29uZmlnKCkubWF4V2lkdGgsXG4gICAgICAgICAgd2lkdGhCeVBhcmVudDogcG9wdXBDb25maWcoKS53aWR0aEJ5UGFyZW50ID8/IGZhbHNlLFxuICAgICAgICAgIG1heEhlaWdodDogcG9wdXBDb25maWcoKS5tYXhIZWlnaHQsXG4gICAgICAgICAgekluZGV4OiBwb3B1cENvbmZpZygpLnpJbmRleCxcbiAgICAgICAgICBkaXJlY3Rpb246IHBvcHVwQ29uZmlnKCkuZGlyZWN0aW9uLFxuICAgICAgICAgIGNsYXNzSW5jbHVkZTogcG9wdXBDb25maWcoKS5jbGFzc0luY2x1ZGUsXG4gICAgICAgICAgZGlyZWN0aW9uRGlzdGFuY2U6IDIsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIG1vZGU6ICdzdGFydCcsXG4gICAgICAgICAgICBkaXN0YW5jZTogMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVwiXG4gICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cImNsYXNzSWNvblJpZ2h0KClcIlxuICAgICAgW2NsYXNzSW5jbHVkZV09XCJjbGFzc0luY2x1ZGUoKSB8fCAnIXB5LVs5cHhdJ1wiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyUG9wb3ZlckNvbnRyb2xFdmVudCgkZXZlbnQpXCJcbiAgICAgIChvdXRQb3BvdmVyRXZlbnQpPVwiaGFuZGxlclBvcG92ZXJFdmVudCgkZXZlbnQpXCIgLz5cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlQ29udGVudEVsPlxuICA8ZGl2PlxuICAgIEBpZiAoaXRlbXMoKSAmJiBpdGVtcygpLmxlbmd0aCkge1xuICAgICAgPGRpdiBjbGFzcz1cIm0tMCBwLTBcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInt7IGl0ZW0uY2xhc3NSb3cgfHwgJycgfX1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJEaXJlY3RpdmVcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7IGNvbnRlbnQ6IGl0ZW0ucG9wb3ZlckNvbnRlbnQsIHpJbmRleDogcG9wdXBDb25maWcoKS56SW5kZXgsIGRpcmVjdGlvbkRpc3RhbmNlOiAtMiB9XCJcbiAgICAgICAgICAgICAgW2lnbm9yZVNob3dQb3BvdmVyXT1cIiFpdGVtLnNob3dQb3BvdmVyXCJcbiAgICAgICAgICAgICAgW2lnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktYmctbGlzdC1ob3ZlciByZWxhdGl2ZSBjdXJzb3ItcG9pbnRlciBweS1bN3B4XSB7eyBpdGVtLmNsYXNzSW5jbHVkZSB8fCAnJyB9fSAge3sgc2hvd0JvcmRlckJvdHRvbSgpID8gJ2xpYnMtdWktYm9yZGVyLWJvdHRvbS1nZW5lcmFsJyA6ICcnIH19XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmZsZXhdPVwiIWl0ZW0uaWdub3JlRmxleFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5weC1bMTZweF1dPVwiYXBwbHlOb3coKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5wbC1bMTZweF1dPVwiIWFwcGx5Tm93KClcIlxuICAgICAgICAgICAgICBbY2xhc3MucHItWzQwcHhdXT1cIiFhcHBseU5vdygpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJpdGVtLmRpc2FibGVcIlxuICAgICAgICAgICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJpdGVtLmRpc2FibGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdEl0ZW0oJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW1bZmllbGRDbGFzc0ljb25MZWZ0KCldKSB7XG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW1bZmllbGRDbGFzc0ljb25MZWZ0KCldXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW1bZmllbGRDbGFzcygpXSA/PyAnbGlicy11aS1mb250LWg1cidcIlxuICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiaXRlbVtmaWVsZERpc3BsYXkoKV0gfCB0cmFuc2xhdGVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZykge1xuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIml0ZW0uYnV0dG9uVGVtcGxhdGVDb25maWcuaWNvbkxlZnRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cIml0ZW0uYnV0dG9uVGVtcGxhdGVDb25maWcuaWNvblwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5idXR0b25UZW1wbGF0ZUNvbmZpZy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NMYWJlbF09XCJpdGVtLmJ1dHRvblRlbXBsYXRlQ29uZmlnLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2tCdXR0b25UZW1wbGF0ZSgkZXZlbnQsIGl0ZW0sIGl0ZW1zKCkpXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIml0ZW0uYnV0dG9uVGVtcGxhdGVDb25maWcudHlwZVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0/LnN1YlRlbXBsYXRlIHx8IG51bGw7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbVtrZXlGaWVsZCgpXSA9PT0ga2V5U2VsZWN0ZWQoKSAmJiAhYXBwbHlOb3coKSkge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZWNrIGFic29sdXRlIHJpZ2h0LVsxNnB4XSB0b3AtWzhweF1cIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJwLVsyMHB4XVwiXG4gICAgICAgIFtpbm5lckh0bWxdPVwiJ2kxOG5fbm9fZGF0YScgfCB0cmFuc2xhdGVcIj48L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSUJ1dHRvbiB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b24nO1xuaW1wb3J0IHsgVFlQRV9QT1BPVkVSX0RJUkVDVElPTiwgVFlQRV9QT1BPVkVSX01PREUgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgRHJvcGRvd24gQnV0dG9uIGNvbXBvbmVudCBpbnB1dHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1dHRvbkRyb3Bkb3duIGV4dGVuZHMgSUJ1dHRvbiB7XG4gIC8qKiBEYW5oIHPDoWNoIGPDoWMgbeG7pWMgc+G6vSBoaeG7g24gdGjhu4sgdHJvbmcgbWVudS4gKi9cbiAgaXRlbXM6IGFueVtdO1xuICAvKiogVMOqbiB0csaw4budbmcgZMO5bmcgxJHhu4MgaGnhu4NuIHRo4buLIG7hu5lpIGR1bmcgY+G7p2EgbeG7l2kgbeG7pWMuICovXG4gIGZpZWxkRGlzcGxheT86IHN0cmluZztcbiAgLyoqIFTDqm4gdHLGsOG7nW5nIGTDuW5nIGzDoG0gZ2nDoSB0cuG7iyBrZXkgY+G7p2EgbeG7l2kgbeG7pWMuICovXG4gIGtleUZpZWxkPzogc3RyaW5nO1xuICAvKiogR2nDoSB0cuG7iyBrZXkgxJFhbmcgxJHGsOG7o2MgY2jhu41uICho4buXIHRy4bujIHR3by13YXkgYmluZGluZykuICovXG4gIGtleVNlbGVjdGVkPzogc3RyaW5nO1xuICAvKiogTuG6v3UgdHJ1ZTogY2jhu41uIHhvbmcgdOG7sSBlbWl0IHPhu7Ega2nhu4duOyBmYWxzZTogY+G6p24gYuG6pW0gbsO6dCDDgXAgZOG7pW5nLiAqL1xuICBhcHBseU5vdz86IGJvb2xlYW47XG4gIC8qKiBIaeG7g24gdGjhu4sgxJHGsOG7nW5nIGvhursgZMaw4bubaSBtZW51IGtoaSBt4bufLiAqL1xuICBzaG93Qm9yZGVyQm90dG9tPzogYm9vbGVhbjtcbiAgLyoqIEPhuqV1IGjDrG5oIGNoaSB0aeG6v3QgY2hvIHBvcG92ZXIgKHbhu4sgdHLDrSwga8OtY2ggdGjGsOG7m2MpLiAqL1xuICBwb3B1cENvbmZpZz86IElQb3B1cENvbmZpZ0J1dHRvbkRyb3Bkb3duO1xuICAvKiogR2nhu68gcG9wb3ZlciBt4bufIGtoaSBjaHXhu5l0IHLhu51pIGto4buPaSBu4buZaSBkdW5nLiAqL1xuICBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlPzogYm9vbGVhbjtcbiAgLyoqIEPDoWNoIGhp4buDbiB0aOG7iyBwb3BvdmVyIChjbGljaywgaG92ZXIsLi4uKS4gKi9cbiAgbW9kZVBvcG92ZXI/OiBUWVBFX1BPUE9WRVJfTU9ERTtcbn1cblxuLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRHJvcGRvd24gcG9wb3Zlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBvcHVwQ29uZmlnQnV0dG9uRHJvcGRvd24ge1xuICB3aWR0aD86IG51bWJlcjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIG1heEhlaWdodD86IG51bWJlcjtcbiAgekluZGV4PzogbnVtYmVyO1xuICBkaXJlY3Rpb24/OiBUWVBFX1BPUE9WRVJfRElSRUNUSU9OO1xuICB0aW1lRGVzdHJveT86IG51bWJlcjtcbiAgd2lkdGhCeVBhcmVudD86IGJvb2xlYW47XG4gIHBvc2l0aW9uPzoge1xuICAgIG1vZGU6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICAgIGRpc3RhbmNlOiBudW1iZXI7XG4gIH07XG4gIGNsYXNzSW5jbHVkZT86IHN0cmluZztcbn1cbiJdfQ==
|
package/esm2022/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './dropdown.component';
|
|
2
2
|
export * from './dropdown.interface';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9kcm9wZG93bi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -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, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { signal, 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';
|
|
@@ -10,14 +10,15 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
10
10
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11
11
|
class LibsUiComponentsButtonsDropdownComponent {
|
|
12
12
|
// #region PROPERTY
|
|
13
|
+
functionsControlPopover = signal(undefined);
|
|
13
14
|
labelDisplay = computed(this.labelComputed.bind(this));
|
|
14
15
|
// #region INPUT
|
|
15
16
|
label = input();
|
|
16
17
|
fieldClass = input('class'); // change color label item of items
|
|
17
18
|
fieldClassIconLeft = input('classIconLeft'); // iconclass item of items
|
|
18
|
-
items = input.required({ transform: data => data.map(item => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried
|
|
19
|
-
fieldDisplay = input('label', { transform: value => value ?? 'label' });
|
|
20
|
-
keyField = input('key', { transform: value => value ?? 'key' });
|
|
19
|
+
items = input.required({ transform: (data) => data.map((item) => ({ ...item, [this.fieldDisplay()]: escapeHtml(item[this.fieldDisplay()]) })) }); // requried
|
|
20
|
+
fieldDisplay = input('label', { transform: (value) => value ?? 'label' });
|
|
21
|
+
keyField = input('key', { transform: (value) => value ?? 'key' });
|
|
21
22
|
keySelected = model();
|
|
22
23
|
applyNow = input(false); // if not applyNow: keyField is requried
|
|
23
24
|
showBorderBottom = input(false);
|
|
@@ -43,7 +44,7 @@ class LibsUiComponentsButtonsDropdownComponent {
|
|
|
43
44
|
/* FUNCTIONS */
|
|
44
45
|
async handlerApply() {
|
|
45
46
|
if (!this.applyNow()) {
|
|
46
|
-
this.outApply.emit(this.items().find(item => item[this.keyField()] === this.keySelected()));
|
|
47
|
+
this.outApply.emit(this.items().find((item) => item[this.keyField()] === this.keySelected()));
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
async handlerSelectItem(event, data) {
|
|
@@ -62,6 +63,10 @@ class LibsUiComponentsButtonsDropdownComponent {
|
|
|
62
63
|
}
|
|
63
64
|
async handlerPopoverControlEvent(control) {
|
|
64
65
|
this.outFunctionsControl.emit(control);
|
|
66
|
+
this.functionsControlPopover.set(control);
|
|
67
|
+
}
|
|
68
|
+
get FunctionsControl() {
|
|
69
|
+
return this.functionsControlPopover();
|
|
65
70
|
}
|
|
66
71
|
async handlerClickButtonTemplate(event, data, items) {
|
|
67
72
|
event.stopPropagation();
|
|
@@ -79,15 +84,11 @@ class LibsUiComponentsButtonsDropdownComponent {
|
|
|
79
84
|
return this.label();
|
|
80
85
|
}
|
|
81
86
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsButtonsDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsButtonsDropdownComponent, isStandalone: true, selector: "libs_ui-components-buttons-dropdown", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, fieldClassIconLeft: { classPropertyName: "fieldClassIconLeft", publicName: "fieldClassIconLeft", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, fieldDisplay: { classPropertyName: "fieldDisplay", publicName: "fieldDisplay", isSignal: true, isRequired: false, transformFunction: null }, keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: true, isRequired: false, transformFunction: null }, keySelected: { classPropertyName: "keySelected", publicName: "keySelected", isSignal: true, isRequired: false, transformFunction: null }, applyNow: { classPropertyName: "applyNow", publicName: "applyNow", isSignal: true, isRequired: false, transformFunction: null }, showBorderBottom: { classPropertyName: "showBorderBottom", publicName: "showBorderBottom", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, sizeButton: { classPropertyName: "sizeButton", publicName: "sizeButton", isSignal: true, isRequired: false, transformFunction: null }, classLabel: { classPropertyName: "classLabel", publicName: "classLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOnlyType: { classPropertyName: "iconOnlyType", publicName: "iconOnlyType", isSignal: true, isRequired: false, transformFunction: null }, classIconRight: { classPropertyName: "classIconRight", publicName: "classIconRight", isSignal: true, isRequired: false, transformFunction: null }, classIconLeft: { classPropertyName: "classIconLeft", publicName: "classIconLeft", isSignal: true, isRequired: false, transformFunction: null }, typeButton: { classPropertyName: "typeButton", publicName: "typeButton", isSignal: true, isRequired: false, transformFunction: null }, popupConfig: { classPropertyName: "popupConfig", publicName: "popupConfig", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, modePopover: { classPropertyName: "modePopover", publicName: "modePopover", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keySelected: "keySelectedChange", outSelectItem: "outSelectItem", outHover: "outHover", outApply: "outApply", outPopoverEvent: "outPopoverEvent", outFunctionsControl: "outFunctionsControl", outIconEvent: "outIconEvent" }, ngImport: i0, template: "<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 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 [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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()] ?? 'libs-ui-font-h5r'\"\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", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4E8CF7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4E8CF7);background:var(--mo-button-other-color-background-hover, #E9F1FE)!important}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
87
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsButtonsDropdownComponent, isStandalone: true, selector: "libs_ui-components-buttons-dropdown", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, fieldClassIconLeft: { classPropertyName: "fieldClassIconLeft", publicName: "fieldClassIconLeft", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, fieldDisplay: { classPropertyName: "fieldDisplay", publicName: "fieldDisplay", isSignal: true, isRequired: false, transformFunction: null }, keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: true, isRequired: false, transformFunction: null }, keySelected: { classPropertyName: "keySelected", publicName: "keySelected", isSignal: true, isRequired: false, transformFunction: null }, applyNow: { classPropertyName: "applyNow", publicName: "applyNow", isSignal: true, isRequired: false, transformFunction: null }, showBorderBottom: { classPropertyName: "showBorderBottom", publicName: "showBorderBottom", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, sizeButton: { classPropertyName: "sizeButton", publicName: "sizeButton", isSignal: true, isRequired: false, transformFunction: null }, classLabel: { classPropertyName: "classLabel", publicName: "classLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOnlyType: { classPropertyName: "iconOnlyType", publicName: "iconOnlyType", isSignal: true, isRequired: false, transformFunction: null }, classIconRight: { classPropertyName: "classIconRight", publicName: "classIconRight", isSignal: true, isRequired: false, transformFunction: null }, classIconLeft: { classPropertyName: "classIconLeft", publicName: "classIconLeft", isSignal: true, isRequired: false, transformFunction: null }, typeButton: { classPropertyName: "typeButton", publicName: "typeButton", isSignal: true, isRequired: false, transformFunction: null }, popupConfig: { classPropertyName: "popupConfig", publicName: "popupConfig", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, modePopover: { classPropertyName: "modePopover", publicName: "modePopover", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keySelected: "keySelectedChange", outSelectItem: "outSelectItem", outHover: "outHover", outApply: "outApply", outPopoverEvent: "outPopoverEvent", outFunctionsControl: "outFunctionsControl", outIconEvent: "outIconEvent" }, ngImport: i0, template: "<div\n #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\n [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: 0.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\n [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config: {\n animationConfig: {\n time: 0.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\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2 }\"\n [ignoreShowPopover]=\"!item.showPopover\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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\n [class]=\"item[fieldClass()] ?? 'libs-ui-font-h5r'\"\n [innerHtml]=\"item[fieldDisplay()] | translate\"></span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button\n [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\n class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4e8cf7);background:var(--mo-button-other-color-background-hover, #e9f1fe)!important}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
88
|
}
|
|
84
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsButtonsDropdownComponent, decorators: [{
|
|
85
90
|
type: Component,
|
|
86
|
-
args: [{ selector: 'libs_ui-components-buttons-dropdown', standalone: true, imports: [
|
|
87
|
-
TranslateModule, NgTemplateOutlet,
|
|
88
|
-
LibsUiComponentsButtonsButtonComponent,
|
|
89
|
-
LibsUiComponentsPopoverComponent
|
|
90
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 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 [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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()] ?? 'libs-ui-font-h5r'\"\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", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4E8CF7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4E8CF7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4E8CF7);background:var(--mo-button-other-color-background-hover, #E9F1FE)!important}\n"] }]
|
|
91
|
+
args: [{ selector: 'libs_ui-components-buttons-dropdown', standalone: true, imports: [TranslateModule, NgTemplateOutlet, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsPopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #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\n [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: 0.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\n [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config: {\n animationConfig: {\n time: 0.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\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2 }\"\n [ignoreShowPopover]=\"!item.showPopover\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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\n [class]=\"item[fieldClass()] ?? 'libs-ui-font-h5r'\"\n [innerHtml]=\"item[fieldDisplay()] | translate\"></span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button\n [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\n class=\"p-[20px]\"\n [innerHtml]=\"'i18n_no_data' | translate\"></div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .libs-ui-buttons-dropdown{max-width:max-content}:host ::ng-deep .libs-ui-buttons-dropdown .libs-ui-button{border-radius:0!important;height:100%}:host ::ng-deep .libs-ui-buttons-dropdown>:first-child libs_ui-components-popover .libs-ui-button{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;padding-right:8px}:host ::ng-deep .libs-ui-buttons-dropdown>:last-child libs_ui-components-popover .libs-ui-button{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important;padding-left:0}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:first-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown:hover>:last-child .libs-ui-button-primary{background:var(--libs-ui-color-light-1, #4e8cf7)!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:first-child libs_ui-components-popover .libs-ui-button{padding-right:12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-un-apply-now>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent!important;padding:4px 12px}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:first-child libs_ui-components-popover .libs-ui-button{border-right:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-primary>:last-child libs_ui-components-popover .libs-ui-button{border-left:1px solid transparent}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:first-child libs_ui-components-popover .libs-ui-button{border-right:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary>:last-child libs_ui-components-popover .libs-ui-button{border-left:none!important}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover *>[class^=libs-ui-icon]:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host ::ng-deep .libs-ui-buttons-dropdown.libs-ui-buttons-dropdown-apply-now-button-secondary:hover .libs-ui-button{color:var(--libs-ui-color-light-1, #4e8cf7);background:var(--mo-button-other-color-background-hover, #e9f1fe)!important}\n"] }]
|
|
91
92
|
}] });
|
|
92
93
|
|
|
93
94
|
/**
|
|
@@ -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 ?? 'key' });\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 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 [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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()] ?? 'libs-ui-font-h5r'\"\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, signal } 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: [TranslateModule, NgTemplateOutlet, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsPopoverComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsButtonsDropdownComponent {\n // #region PROPERTY\n private functionsControlPopover = signal<IPopoverFunctionControlEvent | undefined>(undefined);\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 ?? 'key' });\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 this.functionsControlPopover.set(control);\n }\n\n public get FunctionsControl(): IPopoverFunctionControlEvent | undefined {\n return this.functionsControlPopover();\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\n #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\n [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: 0.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\n [type]=\"typeButton()\"\n [disable]=\"disable()\"\n [sizeButton]=\"sizeButton()\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: ignoreHiddenPopoverContentWhenMouseLeave(),\n config: {\n animationConfig: {\n time: 0.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\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: item.popoverContent, zIndex: popupConfig().zIndex, directionDistance: -2 }\"\n [ignoreShowPopover]=\"!item.showPopover\"\n [ignoreStopPropagationEvent]=\"true\"\n class=\"libs-ui-bg-list-hover relative cursor-pointer py-[7px] {{ 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\n [class]=\"item[fieldClass()] ?? 'libs-ui-font-h5r'\"\n [innerHtml]=\"item[fieldDisplay()] | translate\"></span>\n @if (item.buttonTemplateConfig) {\n <libs_ui-components-buttons-button\n [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\n 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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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-buttons-dropdown",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.306-10",
|
|
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.
|
|
8
|
-
"@libs-ui/components-popover": "0.2.
|
|
9
|
-
"@libs-ui/utils": "0.2.
|
|
7
|
+
"@libs-ui/components-buttons-button": "0.2.306-10",
|
|
8
|
+
"@libs-ui/components-popover": "0.2.306-10",
|
|
9
|
+
"@libs-ui/utils": "0.2.306-10",
|
|
10
10
|
"@ngx-translate/core": "^15.0.0",
|
|
11
|
-
"@libs-ui/interfaces-types": "0.2.
|
|
11
|
+
"@libs-ui/interfaces-types": "0.2.306-10"
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"module": "fesm2022/libs-ui-components-buttons-dropdown.mjs",
|