@libs-ui/components-buttons-sort 0.1.1-1

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 ADDED
@@ -0,0 +1,139 @@
1
+ # Sort
2
+
3
+ ## Giới thiệu
4
+
5
+ `@libs-ui/components-buttons-sort` là một component Sort Button cho Angular, hiển thị hai biểu tượng sắp xếp tăng dần và giảm dần, hỗ trợ binding trạng thái và emit event khi thay đổi.
6
+
7
+ ## Tính năng
8
+
9
+ - Hiển thị icon `asc` và `desc` với kích thước tuỳ chỉnh
10
+ - Two-way binding cho chế độ sort (`mode`)
11
+ - Tuỳ chọn fieldSort để gắn tên trường sắp xếp
12
+ - Hỗ trợ disable toàn bộ sort hoặc riêng `asc` / `desc`
13
+ - `onlyEmit` để chỉ emit sự kiện mà không tự thay đổi chế độ
14
+ - Emit `ISort` bao gồm `mode`, `modeNumber`, `fieldSort` và hàm `reset()`
15
+
16
+ ## Cài đặt
17
+
18
+ ```bash
19
+ npm install @libs-ui/components-buttons-sort
20
+ ```
21
+
22
+ hoặc
23
+
24
+ ```bash
25
+ yarn add @libs-ui/components-buttons-sort
26
+ ```
27
+
28
+ ## Sử dụng
29
+
30
+ ### Inline Template
31
+
32
+ ```typescript
33
+ import { Component } from '@angular/core';
34
+ import { LibsUiComponentsButtonsSortComponent } from '@libs-ui/components-buttons-sort';
35
+ import { TYPE_SORT_TYPE } from '@libs-ui/components-buttons-sort';
36
+
37
+ @Component({
38
+ selector: 'app-example',
39
+ standalone: true,
40
+ imports: [LibsUiComponentsButtonsSortComponent],
41
+ template: `
42
+ <libs_ui-components-buttons-sort
43
+ [size]="20"
44
+ [(mode)]="demoMode"
45
+ [fieldSort]="'name'"
46
+ (outChange)="onSort($event)"></libs_ui-components-buttons-sort>
47
+ `,
48
+ })
49
+ export class ExampleComponent {
50
+ demoMode: TYPE_SORT_TYPE = '';
51
+ onSort(event: any) {
52
+ console.log('Sorted:', event);
53
+ }
54
+ }
55
+ ```
56
+
57
+ ### File HTML riêng
58
+
59
+ ```typescript
60
+ import { Component } from '@angular/core';
61
+ import { LibsUiComponentsButtonsSortComponent } from '@libs-ui/components-buttons-sort';
62
+ import { TYPE_SORT_TYPE } from '@libs-ui/components-buttons-sort';
63
+
64
+ @Component({
65
+ selector: 'app-example',
66
+ standalone: true,
67
+ imports: [LibsUiComponentsButtonsSortComponent],
68
+ templateUrl: './example.component.html',
69
+ })
70
+ export class ExampleComponent {
71
+ demoMode: TYPE_SORT_TYPE = '';
72
+ onSort(event: any) {}
73
+ }
74
+ ```
75
+
76
+ ```html
77
+ <libs_ui-components-buttons-sort
78
+ [size]="20"
79
+ [(mode)]="demoMode"
80
+ [fieldSort]="'name'"
81
+ (outChange)="onSort($event)"></libs_ui-components-buttons-sort>
82
+ ```
83
+
84
+ ## Công nghệ sử dụng
85
+
86
+ - **Angular 18** với standalone components và Signals
87
+ - **Tailwind CSS** 3.x (phong cách demo)
88
+
89
+ ## API Reference
90
+
91
+ ### Inputs
92
+
93
+ | Tên | Kiểu | Mặc định | Mô tả |
94
+ | ----------- | ---------------- | -------- | ----------------------------------------------------- |
95
+ | size | `number` | `10` | Độ lớn của icon sắp xếp (px). |
96
+ | mode | `TYPE_SORT_TYPE` | `''` | Thứ tự hiện tại ('asc', 'desc' hoặc không sắp xếp). |
97
+ | fieldSort | `string` | `''` | Trường dữ liệu dùng để sắp xếp. |
98
+ | disable | `boolean` | `false` | Nếu true: tắt chức năng sắp xếp. |
99
+ | disableAsc | `boolean` | `false` | Nếu true: vô hiệu hóa chế độ sắp xếp tăng dần. |
100
+ | disableDesc | `boolean` | `false` | Nếu true: vô hiệu hóa chế độ sắp xếp giảm dần. |
101
+ | onlyEmit | `boolean` | `false` | Nếu true: chỉ phát sự kiện, không tự thay đổi chế độ. |
102
+
103
+ ### Outputs
104
+
105
+ | Tên | Kiểu | Mô tả |
106
+ | --------- | ------------------------ | ------------------------------------------------------- |
107
+ | outChange | `(event: ISort) => void` | Trả về đối tượng ISort khi trạng thái sắp xếp thay đổi. |
108
+
109
+ ### Interfaces
110
+
111
+ #### `ISort`
112
+
113
+ ```typescript
114
+ export interface ISort {
115
+ mode: TYPE_SORT_TYPE;
116
+ modeNumber: 1 | 2;
117
+ fieldSort: string;
118
+ reset: () => void;
119
+ }
120
+ ```
121
+
122
+ Mô tả:
123
+
124
+ - `mode`: `'asc'`, `'desc'` hoặc `''` (không sắp xếp).
125
+ - `modeNumber`: số tương ứng (1 = `'asc'`, 2 = `'desc'`).
126
+ - `fieldSort`: tên trường dữ liệu dùng để sắp xếp.
127
+ - `reset()`: hàm đặt lại về trạng thái không sắp xếp.
128
+
129
+ #### `TYPE_SORT_TYPE`
130
+
131
+ ```typescript
132
+ export type TYPE_SORT_TYPE = 'asc' | 'desc' | '';
133
+ ```
134
+
135
+ Mô tả:
136
+
137
+ - `'asc'`: sắp xếp tăng dần.
138
+ - `'desc'`: sắp xếp giảm dần.
139
+ - `''`: không sắp xếp.
@@ -0,0 +1,24 @@
1
+ import { IPopoverFunctionControlEvent, IPopoverOverlay } from '@libs-ui/components-popover';
2
+ import { ISort, TYPE_SORT_TYPE } from '../interfaces';
3
+ import * as i0 from "@angular/core";
4
+ export declare class LibsUiComponentsButtonsSortArrowComponent {
5
+ private popoverFunctionControlEvent?;
6
+ protected config: import("@angular/core").Signal<IPopoverOverlay>;
7
+ readonly size: import("@angular/core").InputSignal<number>;
8
+ readonly mode: import("@angular/core").ModelSignal<TYPE_SORT_TYPE>;
9
+ readonly fieldSort: import("@angular/core").InputSignal<string>;
10
+ readonly disable: import("@angular/core").InputSignal<boolean>;
11
+ readonly ignorePopoverContent: import("@angular/core").InputSignal<boolean>;
12
+ readonly popoverContentAsc: import("@angular/core").InputSignal<string | undefined>;
13
+ readonly popoverContentDesc: import("@angular/core").InputSignal<string | undefined>;
14
+ readonly defaultMode: import("@angular/core").InputSignal<TYPE_SORT_TYPE>;
15
+ readonly zIndex: import("@angular/core").InputSignal<number>;
16
+ readonly outChange: import("@angular/core").OutputEmitterRef<ISort>;
17
+ protected handlerClickSort(event: Event): Promise<void>;
18
+ private updateMode;
19
+ private getMode;
20
+ private reset;
21
+ protected handlerPopoverFunctionControl(event: IPopoverFunctionControlEvent): Promise<void>;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsButtonsSortArrowComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsButtonsSortArrowComponent, "libs_ui-components-buttons-sort-arrow", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "fieldSort": { "alias": "fieldSort"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "ignorePopoverContent": { "alias": "ignorePopoverContent"; "required": false; "isSignal": true; }; "popoverContentAsc": { "alias": "popoverContentAsc"; "required": false; "isSignal": true; }; "popoverContentDesc": { "alias": "popoverContentDesc"; "required": false; "isSignal": true; }; "defaultMode": { "alias": "defaultMode"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, { "mode": "modeChange"; "outChange": "outChange"; }, never, never, true, never>;
24
+ }
@@ -0,0 +1,9 @@
1
+ import { TYPE_SORT_TYPE } from '../../interfaces';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LibsUiComponentsButtonSortArrowIconComponent {
4
+ readonly size: import("@angular/core").InputSignal<number>;
5
+ readonly sortType: import("@angular/core").InputSignal<TYPE_SORT_TYPE | undefined>;
6
+ readonly disable: import("@angular/core").InputSignal<boolean>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsButtonSortArrowIconComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsButtonSortArrowIconComponent, "libs_ui-components-button-sort-arrow-icon", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "sortType": { "alias": "sortType"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,61 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';
2
+ import { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';
3
+ import { LibsUiComponentsButtonSortArrowIconComponent } from './icon/icon.component';
4
+ import * as i0 from "@angular/core";
5
+ export class LibsUiComponentsButtonsSortArrowComponent {
6
+ // #region PROPERTY
7
+ popoverFunctionControlEvent;
8
+ config = computed(() => {
9
+ return { zIndex: this.zIndex(), content: (this.mode() && this.mode() === 'asc') || (!this.mode() && this.defaultMode() === 'desc') ? this.popoverContentDesc() : this.popoverContentAsc() };
10
+ });
11
+ // #region INPUT
12
+ size = input(16);
13
+ mode = model('');
14
+ fieldSort = input('');
15
+ disable = input(false);
16
+ ignorePopoverContent = input(true);
17
+ popoverContentAsc = input();
18
+ popoverContentDesc = input();
19
+ defaultMode = input('');
20
+ zIndex = input(10);
21
+ // #region OUTPUT
22
+ outChange = output();
23
+ /* FUNCTIONS */
24
+ async handlerClickSort(event) {
25
+ event.stopPropagation();
26
+ if (this.disable()) {
27
+ return;
28
+ }
29
+ this.updateMode();
30
+ this.outChange.emit(await this.getMode());
31
+ this.popoverFunctionControlEvent?.updatePopoverOverlay();
32
+ }
33
+ async updateMode() {
34
+ if (!this.mode()) {
35
+ this.mode.set(this.defaultMode() || 'asc');
36
+ return;
37
+ }
38
+ this.mode.update((value) => (value === 'asc' ? 'desc' : 'asc'));
39
+ }
40
+ async getMode() {
41
+ return {
42
+ mode: this.mode(),
43
+ modeNumber: this.mode() === 'asc' ? 1 : 2,
44
+ fieldSort: this.fieldSort(),
45
+ reset: this.reset.bind(this),
46
+ };
47
+ }
48
+ async reset() {
49
+ this.mode.set('');
50
+ }
51
+ async handlerPopoverFunctionControl(event) {
52
+ this.popoverFunctionControlEvent = event;
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortArrowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonsSortArrowComponent, isStandalone: true, selector: "libs_ui-components-buttons-sort-arrow", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, fieldSort: { classPropertyName: "fieldSort", publicName: "fieldSort", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, ignorePopoverContent: { classPropertyName: "ignorePopoverContent", publicName: "ignorePopoverContent", isSignal: true, isRequired: false, transformFunction: null }, popoverContentAsc: { classPropertyName: "popoverContentAsc", publicName: "popoverContentAsc", isSignal: true, isRequired: false, transformFunction: null }, popoverContentDesc: { classPropertyName: "popoverContentDesc", publicName: "popoverContentDesc", isSignal: true, isRequired: false, transformFunction: null }, defaultMode: { classPropertyName: "defaultMode", publicName: "defaultMode", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", outChange: "outChange" }, ngImport: i0, template: "<div\n class=\"flex\"\n LibsUiComponentsPopoverDirective\n [config]=\"config()\"\n [ignoreShowPopover]=\"ignorePopoverContent() || disable()\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\">\n <libs_ui-components-button-sort-arrow-icon\n [size]=\"size()\"\n [sortType]=\"mode()\"\n [disable]=\"disable()\"\n (click)=\"handlerClickSort($event)\" />\n</div>\n", dependencies: [{ kind: "component", type: LibsUiComponentsButtonSortArrowIconComponent, selector: "libs_ui-components-button-sort-arrow-icon", inputs: ["size", "sortType", "disable"] }, { 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 });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortArrowComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'libs_ui-components-buttons-sort-arrow', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsButtonSortArrowIconComponent, LibsUiComponentsPopoverComponent], template: "<div\n class=\"flex\"\n LibsUiComponentsPopoverDirective\n [config]=\"config()\"\n [ignoreShowPopover]=\"ignorePopoverContent() || disable()\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\">\n <libs_ui-components-button-sort-arrow-icon\n [size]=\"size()\"\n [sortType]=\"mode()\"\n [disable]=\"disable()\"\n (click)=\"handlerClickSort($event)\" />\n</div>\n" }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvc29ydC9zcmMvYXJyb3cvYXJyb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvc29ydC9zcmMvYXJyb3cvYXJyb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFpRCxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlILE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVVyRixNQUFNLE9BQU8seUNBQXlDO0lBQ3BELG1CQUFtQjtJQUNYLDJCQUEyQixDQUFnQztJQUN6RCxNQUFNLEdBQUcsUUFBUSxDQUFrQixHQUFHLEVBQUU7UUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDOUwsQ0FBQyxDQUFDLENBQUM7SUFFSCxnQkFBZ0I7SUFDUCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLElBQUksR0FBRyxLQUFLLENBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUIsT0FBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoQyxvQkFBb0IsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDNUMsaUJBQWlCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDcEMsa0JBQWtCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDckMsV0FBVyxHQUFHLEtBQUssQ0FBaUIsRUFBRSxDQUFDLENBQUM7SUFDeEMsTUFBTSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUVwQyxpQkFBaUI7SUFDUixTQUFTLEdBQUcsTUFBTSxFQUFTLENBQUM7SUFFckMsZUFBZTtJQUNMLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUM7WUFFM0MsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLEtBQW1DO1FBQy9FLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDM0MsQ0FBQzt3R0F4RFUseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsdTNDQ2J0RCw0WUFZQSw0Q0REWSw0Q0FBNEMsK0hBQUUsZ0NBQWdDOzs0RkFFN0UseUNBQXlDO2tCQVJyRCxTQUFTOytCQUVFLHVDQUF1QyxjQUVyQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyw0Q0FBNEMsRUFBRSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCwgSVBvcG92ZXJPdmVybGF5LCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJU29ydCwgVFlQRV9TT1JUX1RZUEUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25Tb3J0QXJyb3dJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtc29ydC1hcnJvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcnJvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTGlic1VpQ29tcG9uZW50c0J1dHRvblNvcnRBcnJvd0ljb25Db21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNTb3J0QXJyb3dDb21wb25lbnQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgcG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50PzogSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudDtcbiAgcHJvdGVjdGVkIGNvbmZpZyA9IGNvbXB1dGVkPElQb3BvdmVyT3ZlcmxheT4oKCkgPT4ge1xuICAgIHJldHVybiB7IHpJbmRleDogdGhpcy56SW5kZXgoKSwgY29udGVudDogKHRoaXMubW9kZSgpICYmIHRoaXMubW9kZSgpID09PSAnYXNjJykgfHwgKCF0aGlzLm1vZGUoKSAmJiB0aGlzLmRlZmF1bHRNb2RlKCkgPT09ICdkZXNjJykgPyB0aGlzLnBvcG92ZXJDb250ZW50RGVzYygpIDogdGhpcy5wb3BvdmVyQ29udGVudEFzYygpIH07XG4gIH0pO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PG51bWJlcj4oMTYpO1xuICByZWFkb25seSBtb2RlID0gbW9kZWw8VFlQRV9TT1JUX1RZUEU+KCcnKTtcbiAgcmVhZG9ubHkgZmllbGRTb3J0ID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlnbm9yZVBvcG92ZXJDb250ZW50ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHBvcG92ZXJDb250ZW50QXNjID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBwb3BvdmVyQ29udGVudERlc2MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGRlZmF1bHRNb2RlID0gaW5wdXQ8VFlQRV9TT1JUX1RZUEU+KCcnKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyPigxMCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PElTb3J0PigpO1xuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckNsaWNrU29ydChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVNb2RlKCk7XG4gICAgdGhpcy5vdXRDaGFuZ2UuZW1pdChhd2FpdCB0aGlzLmdldE1vZGUoKSk7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQ/LnVwZGF0ZVBvcG92ZXJPdmVybGF5KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZU1vZGUoKSB7XG4gICAgaWYgKCF0aGlzLm1vZGUoKSkge1xuICAgICAgdGhpcy5tb2RlLnNldCh0aGlzLmRlZmF1bHRNb2RlKCkgfHwgJ2FzYycpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubW9kZS51cGRhdGUoKHZhbHVlKSA9PiAodmFsdWUgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYycpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TW9kZSgpOiBQcm9taXNlPElTb3J0PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGU6IHRoaXMubW9kZSgpLFxuICAgICAgbW9kZU51bWJlcjogdGhpcy5tb2RlKCkgPT09ICdhc2MnID8gMSA6IDIsXG4gICAgICBmaWVsZFNvcnQ6IHRoaXMuZmllbGRTb3J0KCksXG4gICAgICByZXNldDogdGhpcy5yZXNldC5iaW5kKHRoaXMpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0KCkge1xuICAgIHRoaXMubW9kZS5zZXQoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJQb3BvdmVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQgPSBldmVudDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImZsZXhcIlxuICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICBbY29uZmlnXT1cImNvbmZpZygpXCJcbiAgW2lnbm9yZVNob3dQb3BvdmVyXT1cImlnbm9yZVBvcG92ZXJDb250ZW50KCkgfHwgZGlzYWJsZSgpXCJcbiAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlclBvcG92ZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50KVwiPlxuICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbi1zb3J0LWFycm93LWljb25cbiAgICBbc2l6ZV09XCJzaXplKClcIlxuICAgIFtzb3J0VHlwZV09XCJtb2RlKClcIlxuICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1NvcnQoJGV2ZW50KVwiIC8+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibsUiComponentsButtonSortArrowIconComponent {
4
+ // #region INPUT
5
+ size = input(16);
6
+ sortType = input();
7
+ disable = input(false);
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonSortArrowIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonSortArrowIconComponent, isStandalone: true, selector: "libs_ui-components-button-sort-arrow-icon", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sortType: { classPropertyName: "sortType", publicName: "sortType", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<svg\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.disable]=\"disable()\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-left\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'asc'\"\n d=\"M4.71258 3.19102C4.96726 2.93633 5.3802 2.93633 5.63488 3.19102L7.80879 5.36492C8.06348 5.61961 8.06348 6.03254 7.80879 6.28723C7.5541 6.54192 7.14117 6.54192 6.88648 6.28723L5.8259 5.22665V12.3478C5.8259 12.708 5.53391 13 5.17373 13C4.81355 13 4.52156 12.708 4.52156 12.3478V5.22665L3.46098 6.28723C3.20629 6.54192 2.79336 6.54192 2.53867 6.28723C2.28398 6.03254 2.28398 5.61961 2.53867 5.36492L4.71258 3.19102Z\" />\n <path\n fill-rule=\"evenodd\"\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-right\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'desc'\"\n clip-rule=\"evenodd\"\n d=\"M10.1739 10.7733V3.65217C10.1739 3.29199 10.4659 3 10.8261 3C11.1863 3 11.4782 3.29199 11.4782 3.65217V10.7733L12.5388 9.71273C12.7935 9.45804 13.2064 9.45804 13.4611 9.71273C13.7158 9.96741 13.7158 10.3803 13.4611 10.635L11.2872 12.8089C11.0325 13.0636 10.6196 13.0636 10.3649 12.8089L8.19102 10.635C7.93633 10.3803 7.93633 9.96741 8.19102 9.71273C8.44571 9.45804 8.85864 9.45804 9.11333 9.71273L10.1739 10.7733Z\" />\n</svg>\n", styles: [".libs-ui-core-ui-components-button-sort-arrow-icon{cursor:pointer}.libs-ui-core-ui-components-button-sort-arrow-icon-left{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-left[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-left[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon-right{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-right[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-right[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon [disable=true]{cursor:default}\n"] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonSortArrowIconComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'libs_ui-components-button-sort-arrow-icon', standalone: true, template: "<svg\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.disable]=\"disable()\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-left\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'asc'\"\n d=\"M4.71258 3.19102C4.96726 2.93633 5.3802 2.93633 5.63488 3.19102L7.80879 5.36492C8.06348 5.61961 8.06348 6.03254 7.80879 6.28723C7.5541 6.54192 7.14117 6.54192 6.88648 6.28723L5.8259 5.22665V12.3478C5.8259 12.708 5.53391 13 5.17373 13C4.81355 13 4.52156 12.708 4.52156 12.3478V5.22665L3.46098 6.28723C3.20629 6.54192 2.79336 6.54192 2.53867 6.28723C2.28398 6.03254 2.28398 5.61961 2.53867 5.36492L4.71258 3.19102Z\" />\n <path\n fill-rule=\"evenodd\"\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-right\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'desc'\"\n clip-rule=\"evenodd\"\n d=\"M10.1739 10.7733V3.65217C10.1739 3.29199 10.4659 3 10.8261 3C11.1863 3 11.4782 3.29199 11.4782 3.65217V10.7733L12.5388 9.71273C12.7935 9.45804 13.2064 9.45804 13.4611 9.71273C13.7158 9.96741 13.7158 10.3803 13.4611 10.635L11.2872 12.8089C11.0325 13.0636 10.6196 13.0636 10.3649 12.8089L8.19102 10.635C7.93633 10.3803 7.93633 9.96741 8.19102 9.71273C8.44571 9.45804 8.85864 9.45804 9.11333 9.71273L10.1739 10.7733Z\" />\n</svg>\n", styles: [".libs-ui-core-ui-components-button-sort-arrow-icon{cursor:pointer}.libs-ui-core-ui-components-button-sort-arrow-icon-left{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-left[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-left[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon-right{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-right[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-right[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon [disable=true]{cursor:default}\n"] }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9zb3J0L3NyYy9hcnJvdy9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvc29ydC9zcmMvYXJyb3cvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVVqRCxNQUFNLE9BQU8sNENBQTRDO0lBQ3ZELGdCQUFnQjtJQUNQLElBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDekIsUUFBUSxHQUFHLEtBQUssRUFBa0IsQ0FBQztJQUNuQyxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO3dHQUo5Qiw0Q0FBNEM7NEZBQTVDLDRDQUE0QyxxZUNWekQsazhDQXFCQTs7NEZEWGEsNENBQTRDO2tCQVB4RCxTQUFTOytCQUVFLDJDQUEyQyxjQUd6QyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9TT1JUX1RZUEUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWJ1dHRvbi1zb3J0LWFycm93LWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0J1dHRvblNvcnRBcnJvd0ljb25Db21wb25lbnQge1xuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxudW1iZXI+KDE2KTtcbiAgcmVhZG9ubHkgc29ydFR5cGUgPSBpbnB1dDxUWVBFX1NPUlRfVFlQRT4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbn1cbiIsIjxzdmdcbiAgY2xhc3M9XCJsaWJzLXVpLWNvcmUtdWktY29tcG9uZW50cy1idXR0b24tc29ydC1hcnJvdy1pY29uXCJcbiAgW2F0dHIud2lkdGhdPVwic2l6ZSgpXCJcbiAgW2F0dHIuaGVpZ2h0XT1cInNpemUoKVwiXG4gIFthdHRyLmRpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gIGZpbGw9XCJub25lXCJcbiAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8cGF0aFxuICAgIGNsYXNzPVwibGlicy11aS1jb3JlLXVpLWNvbXBvbmVudHMtYnV0dG9uLXNvcnQtYXJyb3ctaWNvbi1sZWZ0XCJcbiAgICBbYXR0ci5kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgW2F0dHIuYWN0aXZlXT1cInNvcnRUeXBlKCkgPT09ICdhc2MnXCJcbiAgICBkPVwiTTQuNzEyNTggMy4xOTEwMkM0Ljk2NzI2IDIuOTM2MzMgNS4zODAyIDIuOTM2MzMgNS42MzQ4OCAzLjE5MTAyTDcuODA4NzkgNS4zNjQ5MkM4LjA2MzQ4IDUuNjE5NjEgOC4wNjM0OCA2LjAzMjU0IDcuODA4NzkgNi4yODcyM0M3LjU1NDEgNi41NDE5MiA3LjE0MTE3IDYuNTQxOTIgNi44ODY0OCA2LjI4NzIzTDUuODI1OSA1LjIyNjY1VjEyLjM0NzhDNS44MjU5IDEyLjcwOCA1LjUzMzkxIDEzIDUuMTczNzMgMTNDNC44MTM1NSAxMyA0LjUyMTU2IDEyLjcwOCA0LjUyMTU2IDEyLjM0NzhWNS4yMjY2NUwzLjQ2MDk4IDYuMjg3MjNDMy4yMDYyOSA2LjU0MTkyIDIuNzkzMzYgNi41NDE5MiAyLjUzODY3IDYuMjg3MjNDMi4yODM5OCA2LjAzMjU0IDIuMjgzOTggNS42MTk2MSAyLjUzODY3IDUuMzY0OTJMNC43MTI1OCAzLjE5MTAyWlwiIC8+XG4gIDxwYXRoXG4gICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgY2xhc3M9XCJsaWJzLXVpLWNvcmUtdWktY29tcG9uZW50cy1idXR0b24tc29ydC1hcnJvdy1pY29uLXJpZ2h0XCJcbiAgICBbYXR0ci5kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgW2F0dHIuYWN0aXZlXT1cInNvcnRUeXBlKCkgPT09ICdkZXNjJ1wiXG4gICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgZD1cIk0xMC4xNzM5IDEwLjc3MzNWMy42NTIxN0MxMC4xNzM5IDMuMjkxOTkgMTAuNDY1OSAzIDEwLjgyNjEgM0MxMS4xODYzIDMgMTEuNDc4MiAzLjI5MTk5IDExLjQ3ODIgMy42NTIxN1YxMC43NzMzTDEyLjUzODggOS43MTI3M0MxMi43OTM1IDkuNDU4MDQgMTMuMjA2NCA5LjQ1ODA0IDEzLjQ2MTEgOS43MTI3M0MxMy43MTU4IDkuOTY3NDEgMTMuNzE1OCAxMC4zODAzIDEzLjQ2MTEgMTAuNjM1TDExLjI4NzIgMTIuODA4OUMxMS4wMzI1IDEzLjA2MzYgMTAuNjE5NiAxMy4wNjM2IDEwLjM2NDkgMTIuODA4OUw4LjE5MTAyIDEwLjYzNUM3LjkzNjMzIDEwLjM4MDMgNy45MzYzMyA5Ljk2NzQxIDguMTkxMDIgOS43MTI3M0M4LjQ0NTcxIDkuNDU4MDQgOC44NTg2NCA5LjQ1ODA0IDkuMTEzMzMgOS43MTI3M0wxMC4xNzM5IDEwLjc3MzNaXCIgLz5cbjwvc3ZnPlxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './sort.component';
2
+ export * from './arrow/arrow.component';
3
+ export * from './interfaces';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9zb3J0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NvcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXJyb3cvYXJyb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './sort.interface';
2
+ export * from './sort.type';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9zb3J0L3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NvcnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC50eXBlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9zb3J0L3NyYy9pbnRlcmZhY2VzL3NvcnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUWVBFX1NPUlRfVFlQRSB9IGZyb20gJy4vc29ydC50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBJU29ydCB7XG4gIG1vZGU6IFRZUEVfU09SVF9UWVBFO1xuICBtb2RlTnVtYmVyOiAxIHwgMjsgLy8gMTogYXNjOyAyOmRlc2NcbiAgZmllbGRTb3J0OiBzdHJpbmc7XG4gIHJlc2V0OiAoKSA9PiB2b2lkO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2J1dHRvbnMvc29ydC9zcmMvaW50ZXJmYWNlcy9zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRZUEVfU09SVF9UWVBFID0gJ2FzYycgfCAnZGVzYycgfCAnJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWJ1dHRvbnMtc29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9idXR0b25zL3NvcnQvc3JjL2xpYnMtdWktY29tcG9uZW50cy1idXR0b25zLXNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { ChangeDetectionStrategy, Component, input, model, output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibsUiComponentsButtonsSortComponent {
4
+ // #region INPUT
5
+ size = input(10);
6
+ mode = model('');
7
+ fieldSort = input('');
8
+ disable = input(false, { transform: (value) => value ?? false });
9
+ disableAsc = input(false, { transform: (value) => value ?? false });
10
+ disableDesc = input(false, { transform: (value) => value ?? false });
11
+ onlyEmit = input(false, { transform: (value) => value ?? false });
12
+ // #region OUTPUT
13
+ outChange = output();
14
+ /* FUNCTIONS */
15
+ async handlerClickSort(event, mode) {
16
+ event.stopPropagation();
17
+ if ((this.disable() || this.mode() === mode) && !this.onlyEmit) {
18
+ return;
19
+ }
20
+ if (this.mode() === 'asc' && this.disableAsc()) {
21
+ return;
22
+ }
23
+ if (this.mode() === 'desc' && this.disableDesc()) {
24
+ return;
25
+ }
26
+ this.mode.set(mode);
27
+ this.outChange.emit(await this.getMode());
28
+ }
29
+ async getMode() {
30
+ return {
31
+ mode: this.mode(),
32
+ modeNumber: this.mode() === 'asc' ? 1 : 2,
33
+ fieldSort: this.fieldSort(),
34
+ reset: this.reset.bind(this),
35
+ };
36
+ }
37
+ async reset() {
38
+ this.mode.set('');
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonsSortComponent, isStandalone: true, selector: "libs_ui-components-buttons-sort", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, fieldSort: { classPropertyName: "fieldSort", publicName: "fieldSort", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, disableAsc: { classPropertyName: "disableAsc", publicName: "disableAsc", isSignal: true, isRequired: false, transformFunction: null }, disableDesc: { classPropertyName: "disableDesc", publicName: "disableDesc", isSignal: true, isRequired: false, transformFunction: null }, onlyEmit: { classPropertyName: "onlyEmit", publicName: "onlyEmit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", outChange: "outChange" }, ngImport: i0, template: "<div class=\"libs-ui-button-sort flex flex-col justify-center\">\n <i\n class=\"libs-ui-icon-move-right rotate-[270deg]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'asc'\"\n [attr.disable]=\"disableAsc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'asc')\"></i>\n\n <i\n class=\"libs-ui-icon-move-right rotate-[90deg] mt-[2px]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'desc'\"\n [attr.disable]=\"disableDesc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'desc')\"></i>\n</div>\n", styles: [":host{display:flex}:host .libs-ui-button-sort [class*=libs-ui-icon]{cursor:pointer}:host .libs-ui-button-sort [class*=libs-ui-icon]:before{font-size:var(--sort-size, 8px);margin:0;background-color:#e6e7ea;color:#6a7383;display:flex;border-radius:2px}:host .libs-ui-button-sort [class*=libs-ui-icon]:hover:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host .libs-ui-button-sort [class*=libs-ui-icon][active=true]:before{color:var(--libs-ui-color-default, #226ff5)!important}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]{cursor:default;pointer-events:none}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]:before{color:#cdd0d6!important;background-color:#e6e7ea!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'libs_ui-components-buttons-sort', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-button-sort flex flex-col justify-center\">\n <i\n class=\"libs-ui-icon-move-right rotate-[270deg]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'asc'\"\n [attr.disable]=\"disableAsc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'asc')\"></i>\n\n <i\n class=\"libs-ui-icon-move-right rotate-[90deg] mt-[2px]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'desc'\"\n [attr.disable]=\"disableDesc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'desc')\"></i>\n</div>\n", styles: [":host{display:flex}:host .libs-ui-button-sort [class*=libs-ui-icon]{cursor:pointer}:host .libs-ui-button-sort [class*=libs-ui-icon]:before{font-size:var(--sort-size, 8px);margin:0;background-color:#e6e7ea;color:#6a7383;display:flex;border-radius:2px}:host .libs-ui-button-sort [class*=libs-ui-icon]:hover:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host .libs-ui-button-sort [class*=libs-ui-icon][active=true]:before{color:var(--libs-ui-color-default, #226ff5)!important}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]{cursor:default;pointer-events:none}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]:before{color:#cdd0d6!important;background-color:#e6e7ea!important}\n"] }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnV0dG9ucy9zb3J0L3NyYy9zb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9idXR0b25zL3NvcnQvc3JjL3NvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXekYsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxnQkFBZ0I7SUFDUCxJQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLElBQUksR0FBRyxLQUFLLENBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUIsT0FBTyxHQUFHLEtBQUssQ0FBMkMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRyxVQUFVLEdBQUcsS0FBSyxDQUEyQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLFdBQVcsR0FBRyxLQUFLLENBQTJDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0csUUFBUSxHQUFHLEtBQUssQ0FBMkMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUVySCxpQkFBaUI7SUFDUixTQUFTLEdBQUcsTUFBTSxFQUFTLENBQUM7SUFFckMsZUFBZTtJQUNMLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFZLEVBQUUsSUFBb0I7UUFDakUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9ELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sS0FBSyxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNwQixDQUFDO0lBQ2IsQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7d0dBeENVLG9DQUFvQzs0RkFBcEMsb0NBQW9DLDhoQ0NYakQscWtCQWVBOzs0RkRKYSxvQ0FBb0M7a0JBUmhELFNBQVM7K0JBRUUsaUNBQWlDLGNBRy9CLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU29ydCwgVFlQRV9TT1JUX1RZUEUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1zb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NvcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zb3J0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzQnV0dG9uc1NvcnRDb21wb25lbnQge1xuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxudW1iZXI+KDEwKTtcbiAgcmVhZG9ubHkgbW9kZSA9IG1vZGVsPFRZUEVfU09SVF9UWVBFPignJyk7XG4gIHJlYWRvbmx5IGZpZWxkU29ydCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYm9vbGVhbiB8IHVuZGVmaW5lZD4oZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IGZhbHNlIH0pO1xuICByZWFkb25seSBkaXNhYmxlQXNjID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYm9vbGVhbiB8IHVuZGVmaW5lZD4oZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IGZhbHNlIH0pO1xuICByZWFkb25seSBkaXNhYmxlRGVzYyA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQsIGJvb2xlYW4gfCB1bmRlZmluZWQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgb25seUVtaXQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkLCBib29sZWFuIHwgdW5kZWZpbmVkPihmYWxzZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gZmFsc2UgfSk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PElTb3J0PigpO1xuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckNsaWNrU29ydChldmVudDogRXZlbnQsIG1vZGU6IFRZUEVfU09SVF9UWVBFKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCh0aGlzLmRpc2FibGUoKSB8fCB0aGlzLm1vZGUoKSA9PT0gbW9kZSkgJiYgIXRoaXMub25seUVtaXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSgpID09PSAnYXNjJyAmJiB0aGlzLmRpc2FibGVBc2MoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlKCkgPT09ICdkZXNjJyAmJiB0aGlzLmRpc2FibGVEZXNjKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb2RlLnNldChtb2RlKTtcbiAgICB0aGlzLm91dENoYW5nZS5lbWl0KGF3YWl0IHRoaXMuZ2V0TW9kZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TW9kZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kZTogdGhpcy5tb2RlKCksXG4gICAgICBtb2RlTnVtYmVyOiB0aGlzLm1vZGUoKSA9PT0gJ2FzYycgPyAxIDogMixcbiAgICAgIGZpZWxkU29ydDogdGhpcy5maWVsZFNvcnQoKSxcbiAgICAgIHJlc2V0OiB0aGlzLnJlc2V0LmJpbmQodGhpcyksXG4gICAgfSBhcyBJU29ydDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXQoKSB7XG4gICAgdGhpcy5tb2RlLnNldCgnJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaWJzLXVpLWJ1dHRvbi1zb3J0IGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXJcIj5cbiAgPGlcbiAgICBjbGFzcz1cImxpYnMtdWktaWNvbi1tb3ZlLXJpZ2h0IHJvdGF0ZS1bMjcwZGVnXVwiXG4gICAgW3N0eWxlLi0tc29ydC1zaXplLnB4XT1cInNpemUoKVwiXG4gICAgW2F0dHIuYWN0aXZlXT1cIm1vZGUoKSA9PT0gJ2FzYydcIlxuICAgIFthdHRyLmRpc2FibGVdPVwiZGlzYWJsZUFzYygpIHx8ICEhZGlzYWJsZSgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlckNsaWNrU29ydCgkZXZlbnQsICdhc2MnKVwiPjwvaT5cblxuICA8aVxuICAgIGNsYXNzPVwibGlicy11aS1pY29uLW1vdmUtcmlnaHQgcm90YXRlLVs5MGRlZ10gbXQtWzJweF1cIlxuICAgIFtzdHlsZS4tLXNvcnQtc2l6ZS5weF09XCJzaXplKClcIlxuICAgIFthdHRyLmFjdGl2ZV09XCJtb2RlKCkgPT09ICdkZXNjJ1wiXG4gICAgW2F0dHIuZGlzYWJsZV09XCJkaXNhYmxlRGVzYygpIHx8ICEhZGlzYWJsZSgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlckNsaWNrU29ydCgkZXZlbnQsICdkZXNjJylcIj48L2k+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, model, output, ChangeDetectionStrategy, Component, computed } from '@angular/core';
3
+ import { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';
4
+
5
+ class LibsUiComponentsButtonsSortComponent {
6
+ // #region INPUT
7
+ size = input(10);
8
+ mode = model('');
9
+ fieldSort = input('');
10
+ disable = input(false, { transform: (value) => value ?? false });
11
+ disableAsc = input(false, { transform: (value) => value ?? false });
12
+ disableDesc = input(false, { transform: (value) => value ?? false });
13
+ onlyEmit = input(false, { transform: (value) => value ?? false });
14
+ // #region OUTPUT
15
+ outChange = output();
16
+ /* FUNCTIONS */
17
+ async handlerClickSort(event, mode) {
18
+ event.stopPropagation();
19
+ if ((this.disable() || this.mode() === mode) && !this.onlyEmit) {
20
+ return;
21
+ }
22
+ if (this.mode() === 'asc' && this.disableAsc()) {
23
+ return;
24
+ }
25
+ if (this.mode() === 'desc' && this.disableDesc()) {
26
+ return;
27
+ }
28
+ this.mode.set(mode);
29
+ this.outChange.emit(await this.getMode());
30
+ }
31
+ async getMode() {
32
+ return {
33
+ mode: this.mode(),
34
+ modeNumber: this.mode() === 'asc' ? 1 : 2,
35
+ fieldSort: this.fieldSort(),
36
+ reset: this.reset.bind(this),
37
+ };
38
+ }
39
+ async reset() {
40
+ this.mode.set('');
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonsSortComponent, isStandalone: true, selector: "libs_ui-components-buttons-sort", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, fieldSort: { classPropertyName: "fieldSort", publicName: "fieldSort", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, disableAsc: { classPropertyName: "disableAsc", publicName: "disableAsc", isSignal: true, isRequired: false, transformFunction: null }, disableDesc: { classPropertyName: "disableDesc", publicName: "disableDesc", isSignal: true, isRequired: false, transformFunction: null }, onlyEmit: { classPropertyName: "onlyEmit", publicName: "onlyEmit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", outChange: "outChange" }, ngImport: i0, template: "<div class=\"libs-ui-button-sort flex flex-col justify-center\">\n <i\n class=\"libs-ui-icon-move-right rotate-[270deg]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'asc'\"\n [attr.disable]=\"disableAsc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'asc')\"></i>\n\n <i\n class=\"libs-ui-icon-move-right rotate-[90deg] mt-[2px]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'desc'\"\n [attr.disable]=\"disableDesc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'desc')\"></i>\n</div>\n", styles: [":host{display:flex}:host .libs-ui-button-sort [class*=libs-ui-icon]{cursor:pointer}:host .libs-ui-button-sort [class*=libs-ui-icon]:before{font-size:var(--sort-size, 8px);margin:0;background-color:#e6e7ea;color:#6a7383;display:flex;border-radius:2px}:host .libs-ui-button-sort [class*=libs-ui-icon]:hover:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host .libs-ui-button-sort [class*=libs-ui-icon][active=true]:before{color:var(--libs-ui-color-default, #226ff5)!important}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]{cursor:default;pointer-events:none}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]:before{color:#cdd0d6!important;background-color:#e6e7ea!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'libs_ui-components-buttons-sort', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-button-sort flex flex-col justify-center\">\n <i\n class=\"libs-ui-icon-move-right rotate-[270deg]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'asc'\"\n [attr.disable]=\"disableAsc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'asc')\"></i>\n\n <i\n class=\"libs-ui-icon-move-right rotate-[90deg] mt-[2px]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'desc'\"\n [attr.disable]=\"disableDesc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'desc')\"></i>\n</div>\n", styles: [":host{display:flex}:host .libs-ui-button-sort [class*=libs-ui-icon]{cursor:pointer}:host .libs-ui-button-sort [class*=libs-ui-icon]:before{font-size:var(--sort-size, 8px);margin:0;background-color:#e6e7ea;color:#6a7383;display:flex;border-radius:2px}:host .libs-ui-button-sort [class*=libs-ui-icon]:hover:before{color:var(--libs-ui-color-light-1, #4e8cf7)}:host .libs-ui-button-sort [class*=libs-ui-icon][active=true]:before{color:var(--libs-ui-color-default, #226ff5)!important}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]{cursor:default;pointer-events:none}:host .libs-ui-button-sort [class*=libs-ui-icon][disable=true]:before{color:#cdd0d6!important;background-color:#e6e7ea!important}\n"] }]
48
+ }] });
49
+
50
+ class LibsUiComponentsButtonSortArrowIconComponent {
51
+ // #region INPUT
52
+ size = input(16);
53
+ sortType = input();
54
+ disable = input(false);
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonSortArrowIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonSortArrowIconComponent, isStandalone: true, selector: "libs_ui-components-button-sort-arrow-icon", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, sortType: { classPropertyName: "sortType", publicName: "sortType", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<svg\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.disable]=\"disable()\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-left\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'asc'\"\n d=\"M4.71258 3.19102C4.96726 2.93633 5.3802 2.93633 5.63488 3.19102L7.80879 5.36492C8.06348 5.61961 8.06348 6.03254 7.80879 6.28723C7.5541 6.54192 7.14117 6.54192 6.88648 6.28723L5.8259 5.22665V12.3478C5.8259 12.708 5.53391 13 5.17373 13C4.81355 13 4.52156 12.708 4.52156 12.3478V5.22665L3.46098 6.28723C3.20629 6.54192 2.79336 6.54192 2.53867 6.28723C2.28398 6.03254 2.28398 5.61961 2.53867 5.36492L4.71258 3.19102Z\" />\n <path\n fill-rule=\"evenodd\"\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-right\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'desc'\"\n clip-rule=\"evenodd\"\n d=\"M10.1739 10.7733V3.65217C10.1739 3.29199 10.4659 3 10.8261 3C11.1863 3 11.4782 3.29199 11.4782 3.65217V10.7733L12.5388 9.71273C12.7935 9.45804 13.2064 9.45804 13.4611 9.71273C13.7158 9.96741 13.7158 10.3803 13.4611 10.635L11.2872 12.8089C11.0325 13.0636 10.6196 13.0636 10.3649 12.8089L8.19102 10.635C7.93633 10.3803 7.93633 9.96741 8.19102 9.71273C8.44571 9.45804 8.85864 9.45804 9.11333 9.71273L10.1739 10.7733Z\" />\n</svg>\n", styles: [".libs-ui-core-ui-components-button-sort-arrow-icon{cursor:pointer}.libs-ui-core-ui-components-button-sort-arrow-icon-left{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-left[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-left[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon-right{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-right[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-right[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon [disable=true]{cursor:default}\n"] });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonSortArrowIconComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'libs_ui-components-button-sort-arrow-icon', standalone: true, template: "<svg\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.disable]=\"disable()\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-left\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'asc'\"\n d=\"M4.71258 3.19102C4.96726 2.93633 5.3802 2.93633 5.63488 3.19102L7.80879 5.36492C8.06348 5.61961 8.06348 6.03254 7.80879 6.28723C7.5541 6.54192 7.14117 6.54192 6.88648 6.28723L5.8259 5.22665V12.3478C5.8259 12.708 5.53391 13 5.17373 13C4.81355 13 4.52156 12.708 4.52156 12.3478V5.22665L3.46098 6.28723C3.20629 6.54192 2.79336 6.54192 2.53867 6.28723C2.28398 6.03254 2.28398 5.61961 2.53867 5.36492L4.71258 3.19102Z\" />\n <path\n fill-rule=\"evenodd\"\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-right\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'desc'\"\n clip-rule=\"evenodd\"\n d=\"M10.1739 10.7733V3.65217C10.1739 3.29199 10.4659 3 10.8261 3C11.1863 3 11.4782 3.29199 11.4782 3.65217V10.7733L12.5388 9.71273C12.7935 9.45804 13.2064 9.45804 13.4611 9.71273C13.7158 9.96741 13.7158 10.3803 13.4611 10.635L11.2872 12.8089C11.0325 13.0636 10.6196 13.0636 10.3649 12.8089L8.19102 10.635C7.93633 10.3803 7.93633 9.96741 8.19102 9.71273C8.44571 9.45804 8.85864 9.45804 9.11333 9.71273L10.1739 10.7733Z\" />\n</svg>\n", styles: [".libs-ui-core-ui-components-button-sort-arrow-icon{cursor:pointer}.libs-ui-core-ui-components-button-sort-arrow-icon-left{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-left[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-left[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon-right{fill:#6a7383}.libs-ui-core-ui-components-button-sort-arrow-icon-right[disable=true]{fill:#cdd0d6}.libs-ui-core-ui-components-button-sort-arrow-icon-right[active=true]{fill:var(--libs-ui-color-default, #226ff5)}.libs-ui-core-ui-components-button-sort-arrow-icon [disable=true]{cursor:default}\n"] }]
61
+ }] });
62
+
63
+ class LibsUiComponentsButtonsSortArrowComponent {
64
+ // #region PROPERTY
65
+ popoverFunctionControlEvent;
66
+ config = computed(() => {
67
+ return { zIndex: this.zIndex(), content: (this.mode() && this.mode() === 'asc') || (!this.mode() && this.defaultMode() === 'desc') ? this.popoverContentDesc() : this.popoverContentAsc() };
68
+ });
69
+ // #region INPUT
70
+ size = input(16);
71
+ mode = model('');
72
+ fieldSort = input('');
73
+ disable = input(false);
74
+ ignorePopoverContent = input(true);
75
+ popoverContentAsc = input();
76
+ popoverContentDesc = input();
77
+ defaultMode = input('');
78
+ zIndex = input(10);
79
+ // #region OUTPUT
80
+ outChange = output();
81
+ /* FUNCTIONS */
82
+ async handlerClickSort(event) {
83
+ event.stopPropagation();
84
+ if (this.disable()) {
85
+ return;
86
+ }
87
+ this.updateMode();
88
+ this.outChange.emit(await this.getMode());
89
+ this.popoverFunctionControlEvent?.updatePopoverOverlay();
90
+ }
91
+ async updateMode() {
92
+ if (!this.mode()) {
93
+ this.mode.set(this.defaultMode() || 'asc');
94
+ return;
95
+ }
96
+ this.mode.update((value) => (value === 'asc' ? 'desc' : 'asc'));
97
+ }
98
+ async getMode() {
99
+ return {
100
+ mode: this.mode(),
101
+ modeNumber: this.mode() === 'asc' ? 1 : 2,
102
+ fieldSort: this.fieldSort(),
103
+ reset: this.reset.bind(this),
104
+ };
105
+ }
106
+ async reset() {
107
+ this.mode.set('');
108
+ }
109
+ async handlerPopoverFunctionControl(event) {
110
+ this.popoverFunctionControlEvent = event;
111
+ }
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortArrowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsButtonsSortArrowComponent, isStandalone: true, selector: "libs_ui-components-buttons-sort-arrow", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, fieldSort: { classPropertyName: "fieldSort", publicName: "fieldSort", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, ignorePopoverContent: { classPropertyName: "ignorePopoverContent", publicName: "ignorePopoverContent", isSignal: true, isRequired: false, transformFunction: null }, popoverContentAsc: { classPropertyName: "popoverContentAsc", publicName: "popoverContentAsc", isSignal: true, isRequired: false, transformFunction: null }, popoverContentDesc: { classPropertyName: "popoverContentDesc", publicName: "popoverContentDesc", isSignal: true, isRequired: false, transformFunction: null }, defaultMode: { classPropertyName: "defaultMode", publicName: "defaultMode", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", outChange: "outChange" }, ngImport: i0, template: "<div\n class=\"flex\"\n LibsUiComponentsPopoverDirective\n [config]=\"config()\"\n [ignoreShowPopover]=\"ignorePopoverContent() || disable()\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\">\n <libs_ui-components-button-sort-arrow-icon\n [size]=\"size()\"\n [sortType]=\"mode()\"\n [disable]=\"disable()\"\n (click)=\"handlerClickSort($event)\" />\n</div>\n", dependencies: [{ kind: "component", type: LibsUiComponentsButtonSortArrowIconComponent, selector: "libs_ui-components-button-sort-arrow-icon", inputs: ["size", "sortType", "disable"] }, { 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 });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsButtonsSortArrowComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'libs_ui-components-buttons-sort-arrow', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsButtonSortArrowIconComponent, LibsUiComponentsPopoverComponent], template: "<div\n class=\"flex\"\n LibsUiComponentsPopoverDirective\n [config]=\"config()\"\n [ignoreShowPopover]=\"ignorePopoverContent() || disable()\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\">\n <libs_ui-components-button-sort-arrow-icon\n [size]=\"size()\"\n [sortType]=\"mode()\"\n [disable]=\"disable()\"\n (click)=\"handlerClickSort($event)\" />\n</div>\n" }]
118
+ }] });
119
+
120
+ /**
121
+ * Generated bundle index. Do not edit.
122
+ */
123
+
124
+ export { LibsUiComponentsButtonsSortArrowComponent, LibsUiComponentsButtonsSortComponent };
125
+ //# sourceMappingURL=libs-ui-components-buttons-sort.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libs-ui-components-buttons-sort.mjs","sources":["../../../../../../libs-ui/components/buttons/sort/src/sort.component.ts","../../../../../../libs-ui/components/buttons/sort/src/sort.component.html","../../../../../../libs-ui/components/buttons/sort/src/arrow/icon/icon.component.ts","../../../../../../libs-ui/components/buttons/sort/src/arrow/icon/icon.component.html","../../../../../../libs-ui/components/buttons/sort/src/arrow/arrow.component.ts","../../../../../../libs-ui/components/buttons/sort/src/arrow/arrow.component.html","../../../../../../libs-ui/components/buttons/sort/src/libs-ui-components-buttons-sort.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, output } from '@angular/core';\nimport { ISort, TYPE_SORT_TYPE } from './interfaces';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-sort',\n templateUrl: './sort.component.html',\n styleUrls: ['./sort.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsButtonsSortComponent {\n // #region INPUT\n readonly size = input<number>(10);\n readonly mode = model<TYPE_SORT_TYPE>('');\n readonly fieldSort = input<string>('');\n readonly disable = input<boolean | undefined, boolean | undefined>(false, { transform: (value) => value ?? false });\n readonly disableAsc = input<boolean | undefined, boolean | undefined>(false, { transform: (value) => value ?? false });\n readonly disableDesc = input<boolean | undefined, boolean | undefined>(false, { transform: (value) => value ?? false });\n readonly onlyEmit = input<boolean | undefined, boolean | undefined>(false, { transform: (value) => value ?? false });\n\n // #region OUTPUT\n readonly outChange = output<ISort>();\n\n /* FUNCTIONS */\n protected async handlerClickSort(event: Event, mode: TYPE_SORT_TYPE) {\n event.stopPropagation();\n if ((this.disable() || this.mode() === mode) && !this.onlyEmit) {\n return;\n }\n if (this.mode() === 'asc' && this.disableAsc()) {\n return;\n }\n if (this.mode() === 'desc' && this.disableDesc()) {\n return;\n }\n this.mode.set(mode);\n this.outChange.emit(await this.getMode());\n }\n\n private async getMode() {\n return {\n mode: this.mode(),\n modeNumber: this.mode() === 'asc' ? 1 : 2,\n fieldSort: this.fieldSort(),\n reset: this.reset.bind(this),\n } as ISort;\n }\n\n private async reset() {\n this.mode.set('');\n }\n}\n","<div class=\"libs-ui-button-sort flex flex-col justify-center\">\n <i\n class=\"libs-ui-icon-move-right rotate-[270deg]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'asc'\"\n [attr.disable]=\"disableAsc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'asc')\"></i>\n\n <i\n class=\"libs-ui-icon-move-right rotate-[90deg] mt-[2px]\"\n [style.--sort-size.px]=\"size()\"\n [attr.active]=\"mode() === 'desc'\"\n [attr.disable]=\"disableDesc() || !!disable()\"\n (click)=\"handlerClickSort($event, 'desc')\"></i>\n</div>\n","import { Component, input } from '@angular/core';\nimport { TYPE_SORT_TYPE } from '../../interfaces';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-button-sort-arrow-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n standalone: true,\n})\nexport class LibsUiComponentsButtonSortArrowIconComponent {\n // #region INPUT\n readonly size = input<number>(16);\n readonly sortType = input<TYPE_SORT_TYPE>();\n readonly disable = input<boolean>(false);\n}\n","<svg\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.disable]=\"disable()\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-left\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'asc'\"\n d=\"M4.71258 3.19102C4.96726 2.93633 5.3802 2.93633 5.63488 3.19102L7.80879 5.36492C8.06348 5.61961 8.06348 6.03254 7.80879 6.28723C7.5541 6.54192 7.14117 6.54192 6.88648 6.28723L5.8259 5.22665V12.3478C5.8259 12.708 5.53391 13 5.17373 13C4.81355 13 4.52156 12.708 4.52156 12.3478V5.22665L3.46098 6.28723C3.20629 6.54192 2.79336 6.54192 2.53867 6.28723C2.28398 6.03254 2.28398 5.61961 2.53867 5.36492L4.71258 3.19102Z\" />\n <path\n fill-rule=\"evenodd\"\n class=\"libs-ui-core-ui-components-button-sort-arrow-icon-right\"\n [attr.disable]=\"disable()\"\n [attr.active]=\"sortType() === 'desc'\"\n clip-rule=\"evenodd\"\n d=\"M10.1739 10.7733V3.65217C10.1739 3.29199 10.4659 3 10.8261 3C11.1863 3 11.4782 3.29199 11.4782 3.65217V10.7733L12.5388 9.71273C12.7935 9.45804 13.2064 9.45804 13.4611 9.71273C13.7158 9.96741 13.7158 10.3803 13.4611 10.635L11.2872 12.8089C11.0325 13.0636 10.6196 13.0636 10.3649 12.8089L8.19102 10.635C7.93633 10.3803 7.93633 9.96741 8.19102 9.71273C8.44571 9.45804 8.85864 9.45804 9.11333 9.71273L10.1739 10.7733Z\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport { IPopoverFunctionControlEvent, IPopoverOverlay, LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { ISort, TYPE_SORT_TYPE } from '../interfaces';\nimport { LibsUiComponentsButtonSortArrowIconComponent } from './icon/icon.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-buttons-sort-arrow',\n templateUrl: './arrow.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsButtonSortArrowIconComponent, LibsUiComponentsPopoverComponent],\n})\nexport class LibsUiComponentsButtonsSortArrowComponent {\n // #region PROPERTY\n private popoverFunctionControlEvent?: IPopoverFunctionControlEvent;\n protected config = computed<IPopoverOverlay>(() => {\n return { zIndex: this.zIndex(), content: (this.mode() && this.mode() === 'asc') || (!this.mode() && this.defaultMode() === 'desc') ? this.popoverContentDesc() : this.popoverContentAsc() };\n });\n\n // #region INPUT\n readonly size = input<number>(16);\n readonly mode = model<TYPE_SORT_TYPE>('');\n readonly fieldSort = input<string>('');\n readonly disable = input<boolean>(false);\n readonly ignorePopoverContent = input<boolean>(true);\n readonly popoverContentAsc = input<string>();\n readonly popoverContentDesc = input<string>();\n readonly defaultMode = input<TYPE_SORT_TYPE>('');\n readonly zIndex = input<number>(10);\n\n // #region OUTPUT\n readonly outChange = output<ISort>();\n\n /* FUNCTIONS */\n protected async handlerClickSort(event: Event) {\n event.stopPropagation();\n if (this.disable()) {\n return;\n }\n this.updateMode();\n this.outChange.emit(await this.getMode());\n this.popoverFunctionControlEvent?.updatePopoverOverlay();\n }\n\n private async updateMode() {\n if (!this.mode()) {\n this.mode.set(this.defaultMode() || 'asc');\n\n return;\n }\n this.mode.update((value) => (value === 'asc' ? 'desc' : 'asc'));\n }\n\n private async getMode(): Promise<ISort> {\n return {\n mode: this.mode(),\n modeNumber: this.mode() === 'asc' ? 1 : 2,\n fieldSort: this.fieldSort(),\n reset: this.reset.bind(this),\n };\n }\n\n private async reset() {\n this.mode.set('');\n }\n\n protected async handlerPopoverFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControlEvent = event;\n }\n}\n","<div\n class=\"flex\"\n LibsUiComponentsPopoverDirective\n [config]=\"config()\"\n [ignoreShowPopover]=\"ignorePopoverContent() || disable()\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\">\n <libs_ui-components-button-sort-arrow-icon\n [size]=\"size()\"\n [sortType]=\"mode()\"\n [disable]=\"disable()\"\n (click)=\"handlerClickSort($event)\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './sort.component';
2
+ export * from './arrow/arrow.component';
3
+ export * from './interfaces';
@@ -0,0 +1,2 @@
1
+ export * from './sort.interface';
2
+ export * from './sort.type';
@@ -0,0 +1,7 @@
1
+ import { TYPE_SORT_TYPE } from './sort.type';
2
+ export interface ISort {
3
+ mode: TYPE_SORT_TYPE;
4
+ modeNumber: 1 | 2;
5
+ fieldSort: string;
6
+ reset: () => void;
7
+ }
@@ -0,0 +1 @@
1
+ export type TYPE_SORT_TYPE = 'asc' | 'desc' | '';
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@libs-ui/components-buttons-sort",
3
+ "version": "0.1.1-1",
4
+ "peerDependencies": {
5
+ "@angular/core": ">=18.0.0",
6
+ "@libs-ui/components-popover": "0.1.1-1"
7
+ },
8
+ "sideEffects": false,
9
+ "module": "fesm2022/libs-ui-components-buttons-sort.mjs",
10
+ "typings": "index.d.ts",
11
+ "exports": {
12
+ "./package.json": {
13
+ "default": "./package.json"
14
+ },
15
+ ".": {
16
+ "types": "./index.d.ts",
17
+ "esm2022": "./esm2022/libs-ui-components-buttons-sort.mjs",
18
+ "esm": "./esm2022/libs-ui-components-buttons-sort.mjs",
19
+ "default": "./fesm2022/libs-ui-components-buttons-sort.mjs"
20
+ }
21
+ },
22
+ "dependencies": {
23
+ "tslib": "^2.3.0"
24
+ }
25
+ }
@@ -0,0 +1,17 @@
1
+ import { ISort, TYPE_SORT_TYPE } from './interfaces';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LibsUiComponentsButtonsSortComponent {
4
+ readonly size: import("@angular/core").InputSignal<number>;
5
+ readonly mode: import("@angular/core").ModelSignal<TYPE_SORT_TYPE>;
6
+ readonly fieldSort: import("@angular/core").InputSignal<string>;
7
+ readonly disable: import("@angular/core").InputSignalWithTransform<boolean | undefined, boolean | undefined>;
8
+ readonly disableAsc: import("@angular/core").InputSignalWithTransform<boolean | undefined, boolean | undefined>;
9
+ readonly disableDesc: import("@angular/core").InputSignalWithTransform<boolean | undefined, boolean | undefined>;
10
+ readonly onlyEmit: import("@angular/core").InputSignalWithTransform<boolean | undefined, boolean | undefined>;
11
+ readonly outChange: import("@angular/core").OutputEmitterRef<ISort>;
12
+ protected handlerClickSort(event: Event, mode: TYPE_SORT_TYPE): Promise<void>;
13
+ private getMode;
14
+ private reset;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsButtonsSortComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsButtonsSortComponent, "libs_ui-components-buttons-sort", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "fieldSort": { "alias": "fieldSort"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "disableAsc": { "alias": "disableAsc"; "required": false; "isSignal": true; }; "disableDesc": { "alias": "disableDesc"; "required": false; "isSignal": true; }; "onlyEmit": { "alias": "onlyEmit"; "required": false; "isSignal": true; }; }, { "mode": "modeChange"; "outChange": "outChange"; }, never, never, true, never>;
17
+ }