@libs-ui/components-card 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,148 @@
1
+ # Card
2
+
3
+ ## Giới thiệu
4
+
5
+ `card` là một component Card linh hoạt dành cho Angular, cho phép hiển thị nội dung với phần header tùy chỉnh và body có thể mở rộng hoặc thu gọn (collapse/expand).
6
+
7
+ ## Tính năng
8
+
9
+ - Hiển thị tiêu đề với text hoặc custom `TemplateRef`
10
+ - Ẩn/hiện nội dung (collapse/expand) với nút điều khiển
11
+ - Cung cấp sự kiện `outChangeStateShowContent` khi thay đổi trạng thái hiển thị
12
+ - Cung cấp sự kiện `outFunctionsControl` để điều khiển từ bên ngoài qua `IFunctionControlCard`
13
+ - Tùy chỉnh cấu hình giao diện qua `IConfigCard` (padding, border, background, icon)
14
+ - Tùy thêm CSS cho header và body qua các input
15
+ - Hỗ trợ nội dung linh hoạt bên trong qua `<ng-content>`
16
+
17
+ ## Cài đặt
18
+
19
+ ### Yêu cầu
20
+
21
+ - Angular 18.0.0 trở lên
22
+ - Tailwind CSS 3.3.0 trở lên
23
+
24
+ ### Hướng dẫn
25
+
26
+ Để cài đặt thư viện `card`, sử dụng npm hoặc yarn:
27
+
28
+ ```bash
29
+ npm install @libs-ui/components-card
30
+ ```
31
+
32
+ hoặc
33
+
34
+ ```bash
35
+ yarn add @libs-ui/components-card
36
+ ```
37
+
38
+ ## Sử dụng
39
+
40
+ ### Cách 1: Inline template
41
+
42
+ ```typescript
43
+ import { Component } from '@angular/core';
44
+ import { LibsUiComponentsCardComponent } from '@libs-ui/components-card';
45
+
46
+ @Component({
47
+ selector: 'app-example',
48
+ standalone: true,
49
+ imports: [LibsUiComponentsCardComponent],
50
+ template: `
51
+ <libs_ui-components-card
52
+ [label]="{ labelLeft: 'Tiêu đề Card', popover: {} }"
53
+ [hasCollapseBtn]="true"
54
+ [configCard]="{ width: '300px' }">
55
+ Nội dung ví dụ bên trong Card.
56
+ </libs_ui-components-card>
57
+ `,
58
+ })
59
+ export class ExampleComponent {}
60
+ ```
61
+
62
+ ### Cách 2: Sử dụng file HTML riêng biệt
63
+
64
+ ```html
65
+ <!-- example.component.html -->
66
+ <libs_ui-components-card
67
+ [label]="{ labelLeft: 'Tiêu đề Card', popover: {} }"
68
+ [ignoreTitle]="false"
69
+ [hasCollapseBtn]="true"
70
+ [clickExactly]="false"
71
+ [configCard]="{ ignoreBorderHeader: true }">
72
+ Nội dung Card tùy chỉnh.
73
+ </libs_ui-components-card>
74
+ ```
75
+
76
+ ```typescript
77
+ // example.component.ts
78
+ import { Component } from '@angular/core';
79
+ import { LibsUiComponentsCardComponent } from '@libs-ui/components-card';
80
+
81
+ @Component({
82
+ selector: 'app-example',
83
+ standalone: true,
84
+ imports: [LibsUiComponentsCardComponent],
85
+ templateUrl: './example.component.html',
86
+ })
87
+ export class ExampleComponent {}
88
+ ```
89
+
90
+ ## Công nghệ sử dụng
91
+
92
+ - **Angular 18**: standalone components, signals, control flow (`@if`, `@for`)
93
+ - **Tailwind CSS**: xây dựng giao diện demo và tiện ích style
94
+
95
+ ## API Reference
96
+
97
+ ### Inputs
98
+
99
+ | Tên | Kiểu dữ liệu | Mặc định | Mô tả |
100
+ | ------------------------------------- | -------------------------------- | -------- | ----------------------------------------------------------- |
101
+ | `label` | `ILabel` | `-` | Cấu hình label tiêu đề (text bên trái, popover, v.v.) |
102
+ | `ignoreTitle` | `boolean` | `-` | Nếu `true`, ẩn phần header |
103
+ | `hasCollapseBtn` | `boolean` | `-` | Hiển thị nút collapse/expand |
104
+ | `clickExactly` | `boolean` | `-` | Chỉ cho phép collapse khi click đúng biểu tượng |
105
+ | `configCard` | `IConfigCard` | `-` | Cấu hình giao diện card (padding, border, background, icon) |
106
+ | `templateHeader` | `TemplateRef<TYPE_TEMPLATE_REF>` | `-` | Template custom cho header |
107
+ | `classIncludeBody` | `string` | `-` | CSS class thêm cho phần body |
108
+ | `classIncludeHeader` | `string` | `-` | CSS class thêm cho phần header |
109
+ | `classIncludeHeaderWhenHiddenContent` | `string` | `-` | CSS class khi header ở trạng thái ẩn nội dung |
110
+
111
+ ### Outputs
112
+
113
+ | Tên | Kiểu dữ liệu | Mô tả |
114
+ | --------------------------- | ---------------------- | ----------------------------------------------------- |
115
+ | `outChangeStateShowContent` | `boolean` | Sự kiện emit khi trạng thái ẩn/hiện nội dung thay đổi |
116
+ | `outFunctionsControl` | `IFunctionControlCard` | Sự kiện cung cấp function control từ bên ngoài |
117
+
118
+ ### Interfaces
119
+
120
+ #### IConfigCard
121
+
122
+ ```typescript
123
+ export interface IConfigCard {
124
+ ignorePaddingLeft?: boolean;
125
+ ignoreBorderHeader?: boolean;
126
+ ignoreBackgroundHeader?: boolean;
127
+ iconConRight?: boolean;
128
+ width?: string;
129
+ classIncludeLabel?: string;
130
+ classIconInclude?: string;
131
+ classIconWhenShowContent?: string;
132
+ classIconWhenHiddenContent?: string;
133
+ ignoreBorderRadiusHeader?: boolean;
134
+ ignoreBorderBody?: boolean;
135
+ }
136
+ ```
137
+
138
+ Mô tả: Cấu hình các thuộc tính hiển thị của Card.
139
+
140
+ #### IFunctionControlCard
141
+
142
+ ```typescript
143
+ export interface IFunctionControlCard {
144
+ changeHidden: () => Promise<void>;
145
+ }
146
+ ```
147
+
148
+ Mô tả: Interface cho phép điều khiển trạng thái hiển thị (collapse/expand) từ bên ngoài.
@@ -0,0 +1,24 @@
1
+ import { OnInit, TemplateRef } from '@angular/core';
2
+ import { ILabel } from '@libs-ui/components-label';
3
+ import { IConfigCard, IFunctionControlCard } from './interfaces/card.interface';
4
+ import * as i0 from "@angular/core";
5
+ export declare class LibsUiComponentsCardComponent implements OnInit {
6
+ readonly isHidden: import("@angular/core").ModelSignal<boolean>;
7
+ readonly label: import("@angular/core").InputSignal<ILabel | undefined>;
8
+ readonly ignoreTitle: import("@angular/core").InputSignal<boolean | undefined>;
9
+ readonly hasCollapseBtn: import("@angular/core").InputSignal<boolean | undefined>;
10
+ readonly clickExactly: import("@angular/core").InputSignal<boolean | undefined>;
11
+ readonly configCard: import("@angular/core").InputSignal<IConfigCard | undefined>;
12
+ readonly templateHeader: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
13
+ readonly classIncludeBody: import("@angular/core").InputSignal<string | undefined>;
14
+ readonly classIncludeHeader: import("@angular/core").InputSignal<string | undefined>;
15
+ readonly classIncludeHeaderWhenHiddenContent: import("@angular/core").InputSignal<string | undefined>;
16
+ readonly outChangeStateShowContent: import("@angular/core").OutputEmitterRef<boolean>;
17
+ readonly outFunctionsControl: import("@angular/core").OutputEmitterRef<IFunctionControlCard>;
18
+ ngOnInit(): void;
19
+ get FunctionsControl(): IFunctionControlCard;
20
+ protected handlerHiddenOrShowContent(event: Event, clickExactly: boolean): Promise<void>;
21
+ private handlerHiddenOrShowByTemplateHeader;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsCardComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsCardComponent, "libs_ui-components-card", never, { "isHidden": { "alias": "isHidden"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ignoreTitle": { "alias": "ignoreTitle"; "required": false; "isSignal": true; }; "hasCollapseBtn": { "alias": "hasCollapseBtn"; "required": false; "isSignal": true; }; "clickExactly": { "alias": "clickExactly"; "required": false; "isSignal": true; }; "configCard": { "alias": "configCard"; "required": false; "isSignal": true; }; "templateHeader": { "alias": "templateHeader"; "required": false; "isSignal": true; }; "classIncludeBody": { "alias": "classIncludeBody"; "required": false; "isSignal": true; }; "classIncludeHeader": { "alias": "classIncludeHeader"; "required": false; "isSignal": true; }; "classIncludeHeaderWhenHiddenContent": { "alias": "classIncludeHeaderWhenHiddenContent"; "required": false; "isSignal": true; }; }, { "isHidden": "isHiddenChange"; "outChangeStateShowContent": "outChangeStateShowContent"; "outFunctionsControl": "outFunctionsControl"; }, never, ["*"], true, never>;
24
+ }
@@ -0,0 +1,52 @@
1
+ import { ChangeDetectionStrategy, Component, input, model, output } from '@angular/core';
2
+ import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import * as i0 from "@angular/core";
6
+ export class LibsUiComponentsCardComponent {
7
+ // #region INPUT
8
+ isHidden = model(false);
9
+ label = input();
10
+ ignoreTitle = input();
11
+ hasCollapseBtn = input();
12
+ clickExactly = input();
13
+ configCard = input();
14
+ templateHeader = input(undefined);
15
+ classIncludeBody = input();
16
+ classIncludeHeader = input();
17
+ classIncludeHeaderWhenHiddenContent = input();
18
+ // #region OUTPUT
19
+ outChangeStateShowContent = output();
20
+ outFunctionsControl = output();
21
+ ngOnInit() {
22
+ this.outFunctionsControl.emit(this.FunctionsControl);
23
+ }
24
+ get FunctionsControl() {
25
+ return {
26
+ changeHidden: this.handlerHiddenOrShowByTemplateHeader.bind(this),
27
+ };
28
+ }
29
+ /* FUNCTIONS */
30
+ async handlerHiddenOrShowContent(event, clickExactly) {
31
+ event.stopPropagation();
32
+ if (!this.hasCollapseBtn() || (this.clickExactly() && !clickExactly)) {
33
+ return;
34
+ }
35
+ this.isHidden.update((value) => !value);
36
+ this.outChangeStateShowContent.emit(this.isHidden());
37
+ }
38
+ async handlerHiddenOrShowByTemplateHeader() {
39
+ if (!this.hasCollapseBtn) {
40
+ return;
41
+ }
42
+ this.isHidden.update((value) => !value);
43
+ this.outChangeStateShowContent.emit(this.isHidden());
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsCardComponent, isStandalone: true, selector: "libs_ui-components-card", inputs: { isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ignoreTitle: { classPropertyName: "ignoreTitle", publicName: "ignoreTitle", isSignal: true, isRequired: false, transformFunction: null }, hasCollapseBtn: { classPropertyName: "hasCollapseBtn", publicName: "hasCollapseBtn", isSignal: true, isRequired: false, transformFunction: null }, clickExactly: { classPropertyName: "clickExactly", publicName: "clickExactly", isSignal: true, isRequired: false, transformFunction: null }, configCard: { classPropertyName: "configCard", publicName: "configCard", isSignal: true, isRequired: false, transformFunction: null }, templateHeader: { classPropertyName: "templateHeader", publicName: "templateHeader", isSignal: true, isRequired: false, transformFunction: null }, classIncludeBody: { classPropertyName: "classIncludeBody", publicName: "classIncludeBody", isSignal: true, isRequired: false, transformFunction: null }, classIncludeHeader: { classPropertyName: "classIncludeHeader", publicName: "classIncludeHeader", isSignal: true, isRequired: false, transformFunction: null }, classIncludeHeaderWhenHiddenContent: { classPropertyName: "classIncludeHeaderWhenHiddenContent", publicName: "classIncludeHeaderWhenHiddenContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isHidden: "isHiddenChange", outChangeStateShowContent: "outChangeStateShowContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "@if (!ignoreTitle()) {\n <div\n class=\"libs-ui-card-header {{ classIncludeHeader() }} {{ isHidden() ? classIncludeHeaderWhenHiddenContent() : '' }}\"\n [class.pl-0]=\"configCard()?.ignorePaddingLeft\"\n [class.bg-[#e9f1fe]]=\"!configCard()?.ignoreBackgroundHeader\"\n [class.libs-ui-border-top-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-left-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-right-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-bottom-general]=\"!configCard()?.ignoreBorderHeader && isHidden()\"\n [class.rounded-[4px]]=\"!configCard()?.ignoreBorderRadiusHeader\"\n [class.cursor-pointer]=\"!clickExactly()\"\n (click)=\"handlerHiddenOrShowContent($event, false)\">\n @if (hasCollapseBtn() && !configCard()?.iconConRight) {\n <span\n (click)=\"handlerHiddenOrShowContent($event, true)\"\n [class]=\"\n 'cursor-pointer mr-[8px] ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right' : configCard()?.classIconWhenShowContent || ' rotate-[90deg] libs-ui-icon-chevron-right')\n \"></span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width || ''\">\n <libs_ui-components-label\n [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3s cursor-pointer'\"\n [required]=\"label()?.required\"\n [classInclude]=\"'cursor-pointer !mb-0'\"\n (outLabelLeftClick)=\"handlerHiddenOrShowContent($event, true)\" />\n </div>\n }\n @if (hasCollapseBtn() && configCard()?.iconConRight) {\n <span\n [class]=\"\n 'cursor-pointer ml-auto ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]' : configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]')\n \"\n (click)=\"handlerHiddenOrShowContent($event, true)\"></span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div\n class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\n}\n", styles: [".libs-ui-card-header{padding:6px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.libs-ui-card-body{background-color:#fff;padding:16px 0;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'libs_ui-components-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, NgTemplateOutlet, LibsUiComponentsLabelComponent], template: "@if (!ignoreTitle()) {\n <div\n class=\"libs-ui-card-header {{ classIncludeHeader() }} {{ isHidden() ? classIncludeHeaderWhenHiddenContent() : '' }}\"\n [class.pl-0]=\"configCard()?.ignorePaddingLeft\"\n [class.bg-[#e9f1fe]]=\"!configCard()?.ignoreBackgroundHeader\"\n [class.libs-ui-border-top-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-left-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-right-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-bottom-general]=\"!configCard()?.ignoreBorderHeader && isHidden()\"\n [class.rounded-[4px]]=\"!configCard()?.ignoreBorderRadiusHeader\"\n [class.cursor-pointer]=\"!clickExactly()\"\n (click)=\"handlerHiddenOrShowContent($event, false)\">\n @if (hasCollapseBtn() && !configCard()?.iconConRight) {\n <span\n (click)=\"handlerHiddenOrShowContent($event, true)\"\n [class]=\"\n 'cursor-pointer mr-[8px] ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right' : configCard()?.classIconWhenShowContent || ' rotate-[90deg] libs-ui-icon-chevron-right')\n \"></span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width || ''\">\n <libs_ui-components-label\n [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3s cursor-pointer'\"\n [required]=\"label()?.required\"\n [classInclude]=\"'cursor-pointer !mb-0'\"\n (outLabelLeftClick)=\"handlerHiddenOrShowContent($event, true)\" />\n </div>\n }\n @if (hasCollapseBtn() && configCard()?.iconConRight) {\n <span\n [class]=\"\n 'cursor-pointer ml-auto ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]' : configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]')\n \"\n (click)=\"handlerHiddenOrShowContent($event, true)\"></span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div\n class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\n}\n", styles: [".libs-ui-card-header{padding:6px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.libs-ui-card-body{background-color:#fff;padding:16px 0;overflow-x:hidden;overflow-y:auto}\n"] }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBVSw4QkFBOEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRW5GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFZdEQsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLEtBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN4QixXQUFXLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDL0IsY0FBYyxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ2xDLFlBQVksR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNoQyxVQUFVLEdBQUcsS0FBSyxFQUEyQixDQUFDO0lBQzlDLGNBQWMsR0FBRyxLQUFLLENBQTZDLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLGdCQUFnQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ25DLGtCQUFrQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ3JDLG1DQUFtQyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRS9ELGlCQUFpQjtJQUNSLHlCQUF5QixHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQzlDLG1CQUFtQixHQUFHLE1BQU0sRUFBd0IsQ0FBQztJQUU5RCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7SUFDTCxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBWSxFQUFFLFlBQXFCO1FBQzVFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQ0FBbUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzt3R0E1Q1UsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsbXJEQ2hCMUMscWpGQXNEQSxxUUR4Q1ksZUFBZSwrQkFBRSxnQkFBZ0Isb0pBQUUsOEJBQThCOzs0RkFFaEUsNkJBQTZCO2tCQVR6QyxTQUFTOytCQUVFLHlCQUF5QixjQUd2QixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwsIE9uSW5pdCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUxhYmVsLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxhYmVsJztcbmltcG9ydCB7IFRZUEVfVEVNUExBVEVfUkVGIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSUNvbmZpZ0NhcmQsIElGdW5jdGlvbkNvbnRyb2xDYXJkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NhcmQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBpc0hpZGRlbiA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxJTGFiZWw+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVRpdGxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaGFzQ29sbGFwc2VCdG4gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBjbGlja0V4YWN0bHkgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBjb25maWdDYXJkID0gaW5wdXQ8SUNvbmZpZ0NhcmQgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlSGVhZGVyID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVCb2R5ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUhlYWRlcldoZW5IaWRkZW5Db250ZW50ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dENoYW5nZVN0YXRlU2hvd0NvbnRlbnQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0RnVuY3Rpb25zQ29udHJvbCA9IG91dHB1dDxJRnVuY3Rpb25Db250cm9sQ2FyZD4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh0aGlzLkZ1bmN0aW9uc0NvbnRyb2wpO1xuICB9XG5cbiAgcHVibGljIGdldCBGdW5jdGlvbnNDb250cm9sKCk6IElGdW5jdGlvbkNvbnRyb2xDYXJkIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hhbmdlSGlkZGVuOiB0aGlzLmhhbmRsZXJIaWRkZW5PclNob3dCeVRlbXBsYXRlSGVhZGVyLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckhpZGRlbk9yU2hvd0NvbnRlbnQoZXZlbnQ6IEV2ZW50LCBjbGlja0V4YWN0bHk6IGJvb2xlYW4pIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaGFzQ29sbGFwc2VCdG4oKSB8fCAodGhpcy5jbGlja0V4YWN0bHkoKSAmJiAhY2xpY2tFeGFjdGx5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzSGlkZGVuLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG5cbiAgICB0aGlzLm91dENoYW5nZVN0YXRlU2hvd0NvbnRlbnQuZW1pdCh0aGlzLmlzSGlkZGVuKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVySGlkZGVuT3JTaG93QnlUZW1wbGF0ZUhlYWRlcigpIHtcbiAgICBpZiAoIXRoaXMuaGFzQ29sbGFwc2VCdG4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0hpZGRlbi51cGRhdGUoKHZhbHVlKSA9PiAhdmFsdWUpO1xuICAgIHRoaXMub3V0Q2hhbmdlU3RhdGVTaG93Q29udGVudC5lbWl0KHRoaXMuaXNIaWRkZW4oKSk7XG4gIH1cbn1cbiIsIkBpZiAoIWlnbm9yZVRpdGxlKCkpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwibGlicy11aS1jYXJkLWhlYWRlciB7eyBjbGFzc0luY2x1ZGVIZWFkZXIoKSB9fSB7eyBpc0hpZGRlbigpID8gY2xhc3NJbmNsdWRlSGVhZGVyV2hlbkhpZGRlbkNvbnRlbnQoKSA6ICcnIH19XCJcbiAgICBbY2xhc3MucGwtMF09XCJjb25maWdDYXJkKCk/Lmlnbm9yZVBhZGRpbmdMZWZ0XCJcbiAgICBbY2xhc3MuYmctWyNlOWYxZmVdXT1cIiFjb25maWdDYXJkKCk/Lmlnbm9yZUJhY2tncm91bmRIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci10b3AtZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1sZWZ0LWdlbmVyYWxdPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVySGVhZGVyXCJcbiAgICBbY2xhc3MubGlicy11aS1ib3JkZXItcmlnaHQtZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1ib3R0b20tZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXIgJiYgaXNIaWRkZW4oKVwiXG4gICAgW2NsYXNzLnJvdW5kZWQtWzRweF1dPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVyUmFkaXVzSGVhZGVyXCJcbiAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwiIWNsaWNrRXhhY3RseSgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlckhpZGRlbk9yU2hvd0NvbnRlbnQoJGV2ZW50LCBmYWxzZSlcIj5cbiAgICBAaWYgKGhhc0NvbGxhcHNlQnRuKCkgJiYgIWNvbmZpZ0NhcmQoKT8uaWNvbkNvblJpZ2h0KSB7XG4gICAgICA8c3BhblxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlckhpZGRlbk9yU2hvd0NvbnRlbnQoJGV2ZW50LCB0cnVlKVwiXG4gICAgICAgIFtjbGFzc109XCJcbiAgICAgICAgICAnY3Vyc29yLXBvaW50ZXIgbXItWzhweF0gJyArXG4gICAgICAgICAgKGNvbmZpZ0NhcmQoKT8uY2xhc3NJY29uSW5jbHVkZSA/PyAnYmVmb3JlOiF0ZXh0LVsjNmE3MzgzXSAnKSArXG4gICAgICAgICAgKGlzSGlkZGVuKCkgPyBjb25maWdDYXJkKCk/LmNsYXNzSWNvbldoZW5IaWRkZW5Db250ZW50IHx8ICcgbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQnIDogY29uZmlnQ2FyZCgpPy5jbGFzc0ljb25XaGVuU2hvd0NvbnRlbnQgfHwgJyByb3RhdGUtWzkwZGVnXSBsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCcpXG4gICAgICAgIFwiPjwvc3Bhbj5cbiAgICB9XG4gICAgQGlmICghdGVtcGxhdGVIZWFkZXIoKSkge1xuICAgICAgPGRpdiBbc3R5bGUud2lkdGhdPVwiY29uZmlnQ2FyZCgpPy53aWR0aCB8fCAnJ1wiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWxhYmVsXG4gICAgICAgICAgW3BvcG92ZXJdPVwibGFiZWwoKT8ucG9wb3ZlclwiXG4gICAgICAgICAgW2xhYmVsTGVmdF09XCJsYWJlbCgpPy5sYWJlbExlZnRcIlxuICAgICAgICAgIFtsYWJlbExlZnRDbGFzc109XCJjb25maWdDYXJkKCk/LmNsYXNzSW5jbHVkZUxhYmVsIHx8ICdsaWJzLXVpLWZvbnQtaDNzIGN1cnNvci1wb2ludGVyJ1wiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImxhYmVsKCk/LnJlcXVpcmVkXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIidjdXJzb3ItcG9pbnRlciAhbWItMCdcIlxuICAgICAgICAgIChvdXRMYWJlbExlZnRDbGljayk9XCJoYW5kbGVySGlkZGVuT3JTaG93Q29udGVudCgkZXZlbnQsIHRydWUpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGhhc0NvbGxhcHNlQnRuKCkgJiYgY29uZmlnQ2FyZCgpPy5pY29uQ29uUmlnaHQpIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIFtjbGFzc109XCJcbiAgICAgICAgICAnY3Vyc29yLXBvaW50ZXIgbWwtYXV0byAnICtcbiAgICAgICAgICAoY29uZmlnQ2FyZCgpPy5jbGFzc0ljb25JbmNsdWRlID8/ICdiZWZvcmU6IXRleHQtWyM2YTczODNdICcpICtcbiAgICAgICAgICAoaXNIaWRkZW4oKSA/IGNvbmZpZ0NhcmQoKT8uY2xhc3NJY29uV2hlbkhpZGRlbkNvbnRlbnQgfHwgJyBsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCByb3RhdGUtWzkwZGVnXScgOiBjb25maWdDYXJkKCk/LmNsYXNzSWNvbldoZW5TaG93Q29udGVudCB8fCAnIGxpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0IC1yb3RhdGUtWzkwZGVnXScpXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVySGlkZGVuT3JTaG93Q29udGVudCgkZXZlbnQsIHRydWUpXCI+PC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKHRlbXBsYXRlSGVhZGVyKCk7IGFzIHRlbXBsYXRlSGVhZGVyKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVIZWFkZXJcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbkBpZiAoIWlzSGlkZGVuKCkpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwibGlicy11aS1jYXJkLWJvZHkge3sgY2xhc3NJbmNsdWRlQm9keSgpIH19XCJcbiAgICBbY2xhc3MubGlicy11aS1ib3JkZXItZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJCb2R5XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9kaXY+XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './card.component';
2
+ export * from './interfaces/card.interface';
3
+ export * from './wrapper/wrapper.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9jYXJkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3dyYXBwZXIvd3JhcHBlci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvaW50ZXJmYWNlcy9jYXJkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnQ2FyZCB7XG4gIGlnbm9yZVBhZGRpbmdMZWZ0PzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVySGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQmFja2dyb3VuZEhlYWRlcj86IGJvb2xlYW47XG4gIGljb25Db25SaWdodD86IGJvb2xlYW47XG4gIHdpZHRoPzogc3RyaW5nO1xuICBjbGFzc0luY2x1ZGVMYWJlbD86IHN0cmluZztcbiAgY2xhc3NJY29uSW5jbHVkZT86IHN0cmluZztcbiAgY2xhc3NJY29uV2hlblNob3dDb250ZW50Pzogc3RyaW5nO1xuICBjbGFzc0ljb25XaGVuSGlkZGVuQ29udGVudD86IHN0cmluZztcbiAgaWdub3JlQm9yZGVyUmFkaXVzSGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVyQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZ1bmN0aW9uQ29udHJvbENhcmQge1xuICBjaGFuZ2VIaWRkZW46ICgpID0+IFByb21pc2U8dm9pZD47XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvbGlicy11aS1jb21wb25lbnRzLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { UpperCasePipe } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { LibsUiComponentsCardComponent } from '../card.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class LibsUiComponentsCardWrapperComponent {
8
+ // #region INPUT
9
+ labelConfig = input();
10
+ borderError = input(false);
11
+ templateHeader = input();
12
+ hasCollapseBtn = input(true);
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsCardWrapperComponent, isStandalone: true, selector: "libs_ui-components-card-wrapper", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, templateHeader: { classPropertyName: "templateHeader", publicName: "templateHeader", isSignal: true, isRequired: false, transformFunction: null }, hasCollapseBtn: { classPropertyName: "hasCollapseBtn", publicName: "hasCollapseBtn", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n @let constHtmlLabel = labelConfig()?.labelLeft || ' ';\n <libs_ui-components-card\n [label]=\"labelConfig() ? { labelLeft: constHtmlLabel | translate | uppercase, required: labelConfig()?.required } : {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true,\n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4si !text-[#071631]',\n ignoreBorderBody: true,\n classIconInclude: '!text-[#071631] before:!text-[16px]',\n }\"\n [classIncludeHeader]=\"'!p-0'\"\n [hasCollapseBtn]=\"hasCollapseBtn()\"\n [classIncludeBody]=\"'!pb-0 ' + (labelConfig() || templateHeader() ? '' : '!p-0')\"\n [templateHeader]=\"templateHeader()\">\n <ng-content />\n </libs_ui-components-card>\n</div>\n", styles: [".libs-ui-components-card-wrapper-node-shadow{box-shadow:0 4px 8px #0014330a,0 1px 1px #00143305}\n"], dependencies: [{ kind: "component", type: LibsUiComponentsCardComponent, selector: "libs_ui-components-card", inputs: ["isHidden", "label", "ignoreTitle", "hasCollapseBtn", "clickExactly", "configCard", "templateHeader", "classIncludeBody", "classIncludeHeader", "classIncludeHeaderWhenHiddenContent"], outputs: ["isHiddenChange", "outChangeStateShowContent", "outFunctionsControl"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'libs_ui-components-card-wrapper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule], template: "<div\n class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n @let constHtmlLabel = labelConfig()?.labelLeft || ' ';\n <libs_ui-components-card\n [label]=\"labelConfig() ? { labelLeft: constHtmlLabel | translate | uppercase, required: labelConfig()?.required } : {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true,\n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4si !text-[#071631]',\n ignoreBorderBody: true,\n classIconInclude: '!text-[#071631] before:!text-[16px]',\n }\"\n [classIncludeHeader]=\"'!p-0'\"\n [hasCollapseBtn]=\"hasCollapseBtn()\"\n [classIncludeBody]=\"'!pb-0 ' + (labelConfig() || templateHeader() ? '' : '!p-0')\"\n [templateHeader]=\"templateHeader()\">\n <ng-content />\n </libs_ui-components-card>\n</div>\n", styles: [".libs-ui-components-card-wrapper-node-shadow{box-shadow:0 4px 8px #0014330a,0 1px 1px #00143305}\n"] }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvd3JhcHBlci93cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jYXJkL3NyYy93cmFwcGVyL3dyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBV2xFLE1BQU0sT0FBTyxvQ0FBb0M7SUFDL0MsZ0JBQWdCO0lBRVAsV0FBVyxHQUFHLEtBQUssRUFBNkMsQ0FBQztJQUNqRSxXQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLGNBQWMsR0FBRyxLQUFLLEVBQWtDLENBQUM7SUFDekQsY0FBYyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQzt3R0FOcEMsb0NBQW9DOzRGQUFwQyxvQ0FBb0MsaXFCQ2ZqRCwrOEJBcUJBLDRKRFJZLDZCQUE2QixpVkFBRSxhQUFhLGlEQUFFLGVBQWU7OzRGQUU1RCxvQ0FBb0M7a0JBVGhELFNBQVM7K0JBRUUsaUNBQWlDLGNBRy9CLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLDZCQUE2QixFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9URU1QTEFURV9SRUYgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0NhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1jYXJkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogWycubGlicy11aS1jb21wb25lbnRzLWNhcmQtd3JhcHBlci1ub2RlLXNoYWRvdyB7IGJveC1zaGFkb3c6IDBweCA0cHggOHB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wNCksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wMikgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0xpYnNVaUNvbXBvbmVudHNDYXJkQ29tcG9uZW50LCBVcHBlckNhc2VQaXBlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzQ2FyZFdyYXBwZXJDb21wb25lbnQge1xuICAvLyAjcmVnaW9uIElOUFVUXG5cbiAgcmVhZG9ubHkgbGFiZWxDb25maWcgPSBpbnB1dDx7IGxhYmVsTGVmdDogc3RyaW5nOyByZXF1aXJlZD86IGJvb2xlYW4gfT4oKTtcbiAgcmVhZG9ubHkgYm9yZGVyRXJyb3IgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlSGVhZGVyID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSBoYXNDb2xsYXBzZUJ0biA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImJnLVsjZmZmZmZmXSBwLVsxNnB4XSByb3VuZGVkLVs4cHhdIGxpYnMtdWktY29tcG9uZW50cy1jYXJkLXdyYXBwZXItbm9kZS1zaGFkb3dcIlxuICBbY2xhc3MubGlicy11aS1ib3JkZXItZXJyb3ItZ2VuZXJhbF09XCJib3JkZXJFcnJvcigpXCI+XG4gIEBsZXQgY29uc3RIdG1sTGFiZWwgPSBsYWJlbENvbmZpZygpPy5sYWJlbExlZnQgfHwgJyAnO1xuICA8bGlic191aS1jb21wb25lbnRzLWNhcmRcbiAgICBbbGFiZWxdPVwibGFiZWxDb25maWcoKSA/IHsgbGFiZWxMZWZ0OiBjb25zdEh0bWxMYWJlbCB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSwgcmVxdWlyZWQ6IGxhYmVsQ29uZmlnKCk/LnJlcXVpcmVkIH0gOiB7fVwiXG4gICAgW2lnbm9yZVRpdGxlXT1cInRlbXBsYXRlSGVhZGVyKCkgfHwgbGFiZWxDb25maWcoKSA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgW2NvbmZpZ0NhcmRdPVwie1xuICAgICAgaWdub3JlQm9yZGVySGVhZGVyOiB0cnVlLFxuICAgICAgaWdub3JlQmFja2dyb3VuZEhlYWRlcjogdHJ1ZSxcbiAgICAgIGNsYXNzSW5jbHVkZUxhYmVsOiAnbGlicy11aS1mb250LWg0c2kgIXRleHQtWyMwNzE2MzFdJyxcbiAgICAgIGlnbm9yZUJvcmRlckJvZHk6IHRydWUsXG4gICAgICBjbGFzc0ljb25JbmNsdWRlOiAnIXRleHQtWyMwNzE2MzFdIGJlZm9yZTohdGV4dC1bMTZweF0nLFxuICAgIH1cIlxuICAgIFtjbGFzc0luY2x1ZGVIZWFkZXJdPVwiJyFwLTAnXCJcbiAgICBbaGFzQ29sbGFwc2VCdG5dPVwiaGFzQ29sbGFwc2VCdG4oKVwiXG4gICAgW2NsYXNzSW5jbHVkZUJvZHldPVwiJyFwYi0wICcgKyAobGFiZWxDb25maWcoKSB8fCB0ZW1wbGF0ZUhlYWRlcigpID8gJycgOiAnIXAtMCcpXCJcbiAgICBbdGVtcGxhdGVIZWFkZXJdPVwidGVtcGxhdGVIZWFkZXIoKVwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvbGlic191aS1jb21wb25lbnRzLWNhcmQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import * as i0 from '@angular/core';
2
+ import { model, input, output, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
4
+ import { NgTemplateOutlet, UpperCasePipe } from '@angular/common';
5
+ import * as i1 from '@ngx-translate/core';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+
8
+ class LibsUiComponentsCardComponent {
9
+ // #region INPUT
10
+ isHidden = model(false);
11
+ label = input();
12
+ ignoreTitle = input();
13
+ hasCollapseBtn = input();
14
+ clickExactly = input();
15
+ configCard = input();
16
+ templateHeader = input(undefined);
17
+ classIncludeBody = input();
18
+ classIncludeHeader = input();
19
+ classIncludeHeaderWhenHiddenContent = input();
20
+ // #region OUTPUT
21
+ outChangeStateShowContent = output();
22
+ outFunctionsControl = output();
23
+ ngOnInit() {
24
+ this.outFunctionsControl.emit(this.FunctionsControl);
25
+ }
26
+ get FunctionsControl() {
27
+ return {
28
+ changeHidden: this.handlerHiddenOrShowByTemplateHeader.bind(this),
29
+ };
30
+ }
31
+ /* FUNCTIONS */
32
+ async handlerHiddenOrShowContent(event, clickExactly) {
33
+ event.stopPropagation();
34
+ if (!this.hasCollapseBtn() || (this.clickExactly() && !clickExactly)) {
35
+ return;
36
+ }
37
+ this.isHidden.update((value) => !value);
38
+ this.outChangeStateShowContent.emit(this.isHidden());
39
+ }
40
+ async handlerHiddenOrShowByTemplateHeader() {
41
+ if (!this.hasCollapseBtn) {
42
+ return;
43
+ }
44
+ this.isHidden.update((value) => !value);
45
+ this.outChangeStateShowContent.emit(this.isHidden());
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsCardComponent, isStandalone: true, selector: "libs_ui-components-card", inputs: { isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ignoreTitle: { classPropertyName: "ignoreTitle", publicName: "ignoreTitle", isSignal: true, isRequired: false, transformFunction: null }, hasCollapseBtn: { classPropertyName: "hasCollapseBtn", publicName: "hasCollapseBtn", isSignal: true, isRequired: false, transformFunction: null }, clickExactly: { classPropertyName: "clickExactly", publicName: "clickExactly", isSignal: true, isRequired: false, transformFunction: null }, configCard: { classPropertyName: "configCard", publicName: "configCard", isSignal: true, isRequired: false, transformFunction: null }, templateHeader: { classPropertyName: "templateHeader", publicName: "templateHeader", isSignal: true, isRequired: false, transformFunction: null }, classIncludeBody: { classPropertyName: "classIncludeBody", publicName: "classIncludeBody", isSignal: true, isRequired: false, transformFunction: null }, classIncludeHeader: { classPropertyName: "classIncludeHeader", publicName: "classIncludeHeader", isSignal: true, isRequired: false, transformFunction: null }, classIncludeHeaderWhenHiddenContent: { classPropertyName: "classIncludeHeaderWhenHiddenContent", publicName: "classIncludeHeaderWhenHiddenContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isHidden: "isHiddenChange", outChangeStateShowContent: "outChangeStateShowContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "@if (!ignoreTitle()) {\n <div\n class=\"libs-ui-card-header {{ classIncludeHeader() }} {{ isHidden() ? classIncludeHeaderWhenHiddenContent() : '' }}\"\n [class.pl-0]=\"configCard()?.ignorePaddingLeft\"\n [class.bg-[#e9f1fe]]=\"!configCard()?.ignoreBackgroundHeader\"\n [class.libs-ui-border-top-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-left-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-right-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-bottom-general]=\"!configCard()?.ignoreBorderHeader && isHidden()\"\n [class.rounded-[4px]]=\"!configCard()?.ignoreBorderRadiusHeader\"\n [class.cursor-pointer]=\"!clickExactly()\"\n (click)=\"handlerHiddenOrShowContent($event, false)\">\n @if (hasCollapseBtn() && !configCard()?.iconConRight) {\n <span\n (click)=\"handlerHiddenOrShowContent($event, true)\"\n [class]=\"\n 'cursor-pointer mr-[8px] ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right' : configCard()?.classIconWhenShowContent || ' rotate-[90deg] libs-ui-icon-chevron-right')\n \"></span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width || ''\">\n <libs_ui-components-label\n [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3s cursor-pointer'\"\n [required]=\"label()?.required\"\n [classInclude]=\"'cursor-pointer !mb-0'\"\n (outLabelLeftClick)=\"handlerHiddenOrShowContent($event, true)\" />\n </div>\n }\n @if (hasCollapseBtn() && configCard()?.iconConRight) {\n <span\n [class]=\"\n 'cursor-pointer ml-auto ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]' : configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]')\n \"\n (click)=\"handlerHiddenOrShowContent($event, true)\"></span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div\n class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\n}\n", styles: [".libs-ui-card-header{padding:6px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.libs-ui-card-body{background-color:#fff;padding:16px 0;overflow-x:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'libs_ui-components-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, NgTemplateOutlet, LibsUiComponentsLabelComponent], template: "@if (!ignoreTitle()) {\n <div\n class=\"libs-ui-card-header {{ classIncludeHeader() }} {{ isHidden() ? classIncludeHeaderWhenHiddenContent() : '' }}\"\n [class.pl-0]=\"configCard()?.ignorePaddingLeft\"\n [class.bg-[#e9f1fe]]=\"!configCard()?.ignoreBackgroundHeader\"\n [class.libs-ui-border-top-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-left-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-right-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-bottom-general]=\"!configCard()?.ignoreBorderHeader && isHidden()\"\n [class.rounded-[4px]]=\"!configCard()?.ignoreBorderRadiusHeader\"\n [class.cursor-pointer]=\"!clickExactly()\"\n (click)=\"handlerHiddenOrShowContent($event, false)\">\n @if (hasCollapseBtn() && !configCard()?.iconConRight) {\n <span\n (click)=\"handlerHiddenOrShowContent($event, true)\"\n [class]=\"\n 'cursor-pointer mr-[8px] ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right' : configCard()?.classIconWhenShowContent || ' rotate-[90deg] libs-ui-icon-chevron-right')\n \"></span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width || ''\">\n <libs_ui-components-label\n [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3s cursor-pointer'\"\n [required]=\"label()?.required\"\n [classInclude]=\"'cursor-pointer !mb-0'\"\n (outLabelLeftClick)=\"handlerHiddenOrShowContent($event, true)\" />\n </div>\n }\n @if (hasCollapseBtn() && configCard()?.iconConRight) {\n <span\n [class]=\"\n 'cursor-pointer ml-auto ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]' : configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]')\n \"\n (click)=\"handlerHiddenOrShowContent($event, true)\"></span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div\n class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\n}\n", styles: [".libs-ui-card-header{padding:6px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.libs-ui-card-body{background-color:#fff;padding:16px 0;overflow-x:hidden;overflow-y:auto}\n"] }]
53
+ }] });
54
+
55
+ class LibsUiComponentsCardWrapperComponent {
56
+ // #region INPUT
57
+ labelConfig = input();
58
+ borderError = input(false);
59
+ templateHeader = input();
60
+ hasCollapseBtn = input(true);
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LibsUiComponentsCardWrapperComponent, isStandalone: true, selector: "libs_ui-components-card-wrapper", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, templateHeader: { classPropertyName: "templateHeader", publicName: "templateHeader", isSignal: true, isRequired: false, transformFunction: null }, hasCollapseBtn: { classPropertyName: "hasCollapseBtn", publicName: "hasCollapseBtn", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n @let constHtmlLabel = labelConfig()?.labelLeft || ' ';\n <libs_ui-components-card\n [label]=\"labelConfig() ? { labelLeft: constHtmlLabel | translate | uppercase, required: labelConfig()?.required } : {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true,\n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4si !text-[#071631]',\n ignoreBorderBody: true,\n classIconInclude: '!text-[#071631] before:!text-[16px]',\n }\"\n [classIncludeHeader]=\"'!p-0'\"\n [hasCollapseBtn]=\"hasCollapseBtn()\"\n [classIncludeBody]=\"'!pb-0 ' + (labelConfig() || templateHeader() ? '' : '!p-0')\"\n [templateHeader]=\"templateHeader()\">\n <ng-content />\n </libs_ui-components-card>\n</div>\n", styles: [".libs-ui-components-card-wrapper-node-shadow{box-shadow:0 4px 8px #0014330a,0 1px 1px #00143305}\n"], dependencies: [{ kind: "component", type: LibsUiComponentsCardComponent, selector: "libs_ui-components-card", inputs: ["isHidden", "label", "ignoreTitle", "hasCollapseBtn", "clickExactly", "configCard", "templateHeader", "classIncludeBody", "classIncludeHeader", "classIncludeHeaderWhenHiddenContent"], outputs: ["isHiddenChange", "outChangeStateShowContent", "outFunctionsControl"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'libs_ui-components-card-wrapper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule], template: "<div\n class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n @let constHtmlLabel = labelConfig()?.labelLeft || ' ';\n <libs_ui-components-card\n [label]=\"labelConfig() ? { labelLeft: constHtmlLabel | translate | uppercase, required: labelConfig()?.required } : {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true,\n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4si !text-[#071631]',\n ignoreBorderBody: true,\n classIconInclude: '!text-[#071631] before:!text-[16px]',\n }\"\n [classIncludeHeader]=\"'!p-0'\"\n [hasCollapseBtn]=\"hasCollapseBtn()\"\n [classIncludeBody]=\"'!pb-0 ' + (labelConfig() || templateHeader() ? '' : '!p-0')\"\n [templateHeader]=\"templateHeader()\">\n <ng-content />\n </libs_ui-components-card>\n</div>\n", styles: [".libs-ui-components-card-wrapper-node-shadow{box-shadow:0 4px 8px #0014330a,0 1px 1px #00143305}\n"] }]
67
+ }] });
68
+
69
+ /**
70
+ * Generated bundle index. Do not edit.
71
+ */
72
+
73
+ export { LibsUiComponentsCardComponent, LibsUiComponentsCardWrapperComponent };
74
+ //# sourceMappingURL=libs-ui-components-card.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libs-ui-components-card.mjs","sources":["../../../../../libs-ui/components/card/src/card.component.ts","../../../../../libs-ui/components/card/src/card.component.html","../../../../../libs-ui/components/card/src/wrapper/wrapper.component.ts","../../../../../libs-ui/components/card/src/wrapper/wrapper.component.html","../../../../../libs-ui/components/card/src/libs-ui-components-card.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, OnInit, output, TemplateRef } from '@angular/core';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IConfigCard, IFunctionControlCard } from './interfaces/card.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, NgTemplateOutlet, LibsUiComponentsLabelComponent],\n})\nexport class LibsUiComponentsCardComponent implements OnInit {\n // #region INPUT\n readonly isHidden = model<boolean>(false);\n readonly label = input<ILabel>();\n readonly ignoreTitle = input<boolean>();\n readonly hasCollapseBtn = input<boolean>();\n readonly clickExactly = input<boolean>();\n readonly configCard = input<IConfigCard | undefined>();\n readonly templateHeader = input<TemplateRef<TYPE_TEMPLATE_REF> | undefined>(undefined);\n readonly classIncludeBody = input<string>();\n readonly classIncludeHeader = input<string>();\n readonly classIncludeHeaderWhenHiddenContent = input<string>();\n\n // #region OUTPUT\n readonly outChangeStateShowContent = output<boolean>();\n readonly outFunctionsControl = output<IFunctionControlCard>();\n\n ngOnInit(): void {\n this.outFunctionsControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IFunctionControlCard {\n return {\n changeHidden: this.handlerHiddenOrShowByTemplateHeader.bind(this),\n };\n }\n\n /* FUNCTIONS */\n protected async handlerHiddenOrShowContent(event: Event, clickExactly: boolean) {\n event.stopPropagation();\n if (!this.hasCollapseBtn() || (this.clickExactly() && !clickExactly)) {\n return;\n }\n this.isHidden.update((value) => !value);\n\n this.outChangeStateShowContent.emit(this.isHidden());\n }\n\n private async handlerHiddenOrShowByTemplateHeader() {\n if (!this.hasCollapseBtn) {\n return;\n }\n this.isHidden.update((value) => !value);\n this.outChangeStateShowContent.emit(this.isHidden());\n }\n}\n","@if (!ignoreTitle()) {\n <div\n class=\"libs-ui-card-header {{ classIncludeHeader() }} {{ isHidden() ? classIncludeHeaderWhenHiddenContent() : '' }}\"\n [class.pl-0]=\"configCard()?.ignorePaddingLeft\"\n [class.bg-[#e9f1fe]]=\"!configCard()?.ignoreBackgroundHeader\"\n [class.libs-ui-border-top-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-left-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-right-general]=\"!configCard()?.ignoreBorderHeader\"\n [class.libs-ui-border-bottom-general]=\"!configCard()?.ignoreBorderHeader && isHidden()\"\n [class.rounded-[4px]]=\"!configCard()?.ignoreBorderRadiusHeader\"\n [class.cursor-pointer]=\"!clickExactly()\"\n (click)=\"handlerHiddenOrShowContent($event, false)\">\n @if (hasCollapseBtn() && !configCard()?.iconConRight) {\n <span\n (click)=\"handlerHiddenOrShowContent($event, true)\"\n [class]=\"\n 'cursor-pointer mr-[8px] ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right' : configCard()?.classIconWhenShowContent || ' rotate-[90deg] libs-ui-icon-chevron-right')\n \"></span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width || ''\">\n <libs_ui-components-label\n [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3s cursor-pointer'\"\n [required]=\"label()?.required\"\n [classInclude]=\"'cursor-pointer !mb-0'\"\n (outLabelLeftClick)=\"handlerHiddenOrShowContent($event, true)\" />\n </div>\n }\n @if (hasCollapseBtn() && configCard()?.iconConRight) {\n <span\n [class]=\"\n 'cursor-pointer ml-auto ' +\n (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') +\n (isHidden() ? configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]' : configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]')\n \"\n (click)=\"handlerHiddenOrShowContent($event, true)\"></span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div\n class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\n}\n","import { UpperCasePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef } from '@angular/core';\nimport { TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LibsUiComponentsCardComponent } from '../card.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-card-wrapper',\n templateUrl: './wrapper.component.html',\n styles: ['.libs-ui-components-card-wrapper-node-shadow { box-shadow: 0px 4px 8px 0px rgba(0, 20, 51, 0.04), 0px 1px 1px 0px rgba(0, 20, 51, 0.02) }'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule],\n})\nexport class LibsUiComponentsCardWrapperComponent {\n // #region INPUT\n\n readonly labelConfig = input<{ labelLeft: string; required?: boolean }>();\n readonly borderError = input<boolean>(false);\n readonly templateHeader = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly hasCollapseBtn = input<boolean>(true);\n}\n","<div\n class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n @let constHtmlLabel = labelConfig()?.labelLeft || ' ';\n <libs_ui-components-card\n [label]=\"labelConfig() ? { labelLeft: constHtmlLabel | translate | uppercase, required: labelConfig()?.required } : {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true,\n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4si !text-[#071631]',\n ignoreBorderBody: true,\n classIconInclude: '!text-[#071631] before:!text-[16px]',\n }\"\n [classIncludeHeader]=\"'!p-0'\"\n [hasCollapseBtn]=\"hasCollapseBtn()\"\n [classIncludeBody]=\"'!pb-0 ' + (labelConfig() || templateHeader() ? '' : '!p-0')\"\n [templateHeader]=\"templateHeader()\">\n <ng-content />\n </libs_ui-components-card>\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 './card.component';
2
+ export * from './interfaces/card.interface';
3
+ export * from './wrapper/wrapper.component';
@@ -0,0 +1,16 @@
1
+ export interface IConfigCard {
2
+ ignorePaddingLeft?: boolean;
3
+ ignoreBorderHeader?: boolean;
4
+ ignoreBackgroundHeader?: boolean;
5
+ iconConRight?: boolean;
6
+ width?: string;
7
+ classIncludeLabel?: string;
8
+ classIconInclude?: string;
9
+ classIconWhenShowContent?: string;
10
+ classIconWhenHiddenContent?: string;
11
+ ignoreBorderRadiusHeader?: boolean;
12
+ ignoreBorderBody?: boolean;
13
+ }
14
+ export interface IFunctionControlCard {
15
+ changeHidden: () => Promise<void>;
16
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@libs-ui/components-card",
3
+ "version": "0.1.1-1",
4
+ "peerDependencies": {
5
+ "@angular/common": ">=18.0.0",
6
+ "@angular/core": ">=18.0.0",
7
+ "@libs-ui/components-label": "0.1.1-1",
8
+ "@libs-ui/interfaces-types": "0.1.1-1",
9
+ "@ngx-translate/core": "^15.0.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/libs-ui-components-card.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "esm2022": "./esm2022/libs-ui-components-card.mjs",
21
+ "esm": "./esm2022/libs-ui-components-card.mjs",
22
+ "default": "./fesm2022/libs-ui-components-card.mjs"
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "tslib": "^2.3.0"
27
+ }
28
+ }
@@ -0,0 +1,13 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LibsUiComponentsCardWrapperComponent {
4
+ readonly labelConfig: import("@angular/core").InputSignal<{
5
+ labelLeft: string;
6
+ required?: boolean;
7
+ } | undefined>;
8
+ readonly borderError: import("@angular/core").InputSignal<boolean>;
9
+ readonly templateHeader: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
10
+ readonly hasCollapseBtn: import("@angular/core").InputSignal<boolean>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsCardWrapperComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsCardWrapperComponent, "libs_ui-components-card-wrapper", never, { "labelConfig": { "alias": "labelConfig"; "required": false; "isSignal": true; }; "borderError": { "alias": "borderError"; "required": false; "isSignal": true; }; "templateHeader": { "alias": "templateHeader"; "required": false; "isSignal": true; }; "hasCollapseBtn": { "alias": "hasCollapseBtn"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
13
+ }