@libs-ui/components-card 0.2.29 → 0.2.30-6.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 CHANGED
@@ -1,3 +1,144 @@
1
- # card
1
+ # Card
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
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
+ ```typescript
122
+ export interface IConfigCard {
123
+ ignorePaddingLeft?: boolean;
124
+ ignoreBorderHeader?: boolean;
125
+ ignoreBackgroundHeader?: boolean;
126
+ iconConRight?: boolean;
127
+ width?: string;
128
+ classIncludeLabel?: string;
129
+ classIconInclude?: string;
130
+ classIconWhenShowContent?: string;
131
+ classIconWhenHiddenContent?: string;
132
+ ignoreBorderRadiusHeader?: boolean;
133
+ ignoreBorderBody?: boolean;
134
+ }
135
+ ```
136
+ Mô tả: Cấu hình các thuộc tính hiển thị của Card.
137
+
138
+ #### IFunctionControlCard
139
+ ```typescript
140
+ export interface IFunctionControlCard {
141
+ changeHidden: () => Promise<void>;
142
+ }
143
+ ```
144
+ Mô tả: Interface cho phép điều khiển trạng thái hiển thị (collapse/expand) từ bên ngoài.
@@ -3,7 +3,7 @@ import { ILabel } from '@libs-ui/components-label';
3
3
  import { IConfigCard, IFunctionControlCard } from './interfaces/card.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LibsUiComponentsCardComponent implements OnInit {
6
- protected isHidden: import("@angular/core").WritableSignal<boolean>;
6
+ readonly isHidden: import("@angular/core").ModelSignal<boolean>;
7
7
  readonly label: import("@angular/core").InputSignal<ILabel | undefined>;
8
8
  readonly ignoreTitle: import("@angular/core").InputSignal<boolean | undefined>;
9
9
  readonly hasCollapseBtn: import("@angular/core").InputSignal<boolean | undefined>;
@@ -19,5 +19,5 @@ export declare class LibsUiComponentsCardComponent implements OnInit {
19
19
  protected handlerHiddenOrShowContent(event: Event, clickExactly: boolean): Promise<void>;
20
20
  private handlerHiddenOrShowByTemplateHeader;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsCardComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsCardComponent, "libs_ui-components-card", never, { "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; }; }, { "outChangeStateShowContent": "outChangeStateShowContent"; "outFunctionsControl": "outFunctionsControl"; }, never, ["*"], true, never>;
22
+ 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>;
23
23
  }
@@ -1,12 +1,11 @@
1
- import { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input, model, output } from '@angular/core';
2
2
  import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
3
- import { TranslateModule } from '@ngx-translate/core';
4
3
  import { NgTemplateOutlet } from '@angular/common';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
5
  import * as i0 from "@angular/core";
6
6
  export class LibsUiComponentsCardComponent {
7
- /* PROPERTY */
8
- isHidden = signal(false);
9
- /* INPUT */
7
+ // #region INPUT
8
+ isHidden = model(false);
10
9
  label = input();
11
10
  ignoreTitle = input();
12
11
  hasCollapseBtn = input();
@@ -16,7 +15,7 @@ export class LibsUiComponentsCardComponent {
16
15
  classIncludeBody = input();
17
16
  classIncludeHeader = input();
18
17
  classIncludeHeaderWhenHiddenContent = input();
19
- /* OUTPUT */
18
+ // #region OUTPUT
20
19
  outChangeStateShowContent = output();
21
20
  outFunctionsControl = output();
22
21
  ngOnInit() {
@@ -41,13 +40,13 @@ export class LibsUiComponentsCardComponent {
41
40
  this.outChangeStateShowContent.emit(this.isHidden());
42
41
  }
43
42
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsCardComponent, isStandalone: true, selector: "libs_ui-components-card", inputs: { 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: { outChangeStateShowContent: "outChangeStateShowContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right' : 'rotate-[90deg] libs-ui-icon-chevron-right')\">\n </span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width ||''\">\n <libs_ui-components-label [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3si 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 [class]=\"'cursor-pointer text-[10px] ml-auto ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right rotate-[90deg]' : 'libs-ui-icon-chevron-right -rotate-[90deg]')\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\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 });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (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 [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]=\"'cursor-pointer ml-auto ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (isHidden() ? (configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]') : (configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]'))\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div 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 });
45
44
  }
46
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardComponent, decorators: [{
47
46
  type: Component,
48
47
  args: [{ selector: 'libs_ui-components-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
49
48
  TranslateModule, NgTemplateOutlet,
50
49
  LibsUiComponentsLabelComponent
51
- ], template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right' : 'rotate-[90deg] libs-ui-icon-chevron-right')\">\n </span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width ||''\">\n <libs_ui-components-label [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3si 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 [class]=\"'cursor-pointer text-[10px] ml-auto ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right rotate-[90deg]' : 'libs-ui-icon-chevron-right -rotate-[90deg]')\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\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"] }]
50
+ ], template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (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 [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]=\"'cursor-pointer ml-auto ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (isHidden() ? (configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]') : (configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]'))\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div 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"] }]
52
51
  }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBVSw4QkFBOEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFjbkQsTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxjQUFjO0lBQ0osUUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUU1QyxXQUFXO0lBQ0YsS0FBSyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ3hCLFdBQVcsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUMvQixjQUFjLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ2hDLFVBQVUsR0FBRyxLQUFLLEVBQTJCLENBQUM7SUFFOUMsY0FBYyxHQUFHLEtBQUssQ0FBNkMsU0FBUyxDQUFDLENBQUM7SUFHOUUsZ0JBQWdCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDbkMsa0JBQWtCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDckMsbUNBQW1DLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFFL0QsWUFBWTtJQUNILHlCQUF5QixHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQzlDLG1CQUFtQixHQUFHLE1BQU0sRUFBd0IsQ0FBQztJQUU5RCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUM1QixZQUFZLEVBQUUsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDTCxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBWSxFQUFFLFlBQXFCO1FBQzVFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25FLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQ0FBbUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7d0dBOUNVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLHNoRENwQjFDLDh1RUEwQ0MscVFEMUJHLGVBQWUsK0JBQUUsZ0JBQWdCLG9KQUNqQyw4QkFBOEI7OzRGQUdyQiw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBRUUseUJBQXlCLGNBR3ZCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTGFiZWwsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGFiZWwnO1xuaW1wb3J0IHsgVFlQRV9URU1QTEFURV9SRUYgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJQ29uZmlnQ2FyZCwgSUZ1bmN0aW9uQ29udHJvbENhcmQgfSBmcm9tICcuL2ludGVyZmFjZXMvY2FyZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKiBQUk9QRVJUWSAqL1xuICBwcm90ZWN0ZWQgaXNIaWRkZW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qIElOUFVUICovXG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQ8SUxhYmVsPigpO1xuICByZWFkb25seSBpZ25vcmVUaXRsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGhhc0NvbGxhcHNlQnRuID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY2xpY2tFeGFjdGx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY29uZmlnQ2FyZCA9IGlucHV0PElDb25maWdDYXJkIHwgdW5kZWZpbmVkPigpO1xuXG4gIHJlYWRvbmx5IHRlbXBsYXRlSGVhZGVyID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuIFxuXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUJvZHkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUhlYWRlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSGVhZGVyV2hlbkhpZGRlbkNvbnRlbnQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgLyogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dENoYW5nZVN0YXRlU2hvd0NvbnRlbnQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0RnVuY3Rpb25zQ29udHJvbCA9IG91dHB1dDxJRnVuY3Rpb25Db250cm9sQ2FyZD4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh7XG4gICAgICBjaGFuZ2VIaWRkZW46IHRoaXMuaGFuZGxlckhpZGRlbk9yU2hvd0J5VGVtcGxhdGVIZWFkZXIuYmluZCh0aGlzKVxuICAgIH0pO1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVySGlkZGVuT3JTaG93Q29udGVudChldmVudDogRXZlbnQsIGNsaWNrRXhhY3RseTogYm9vbGVhbikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5oYXNDb2xsYXBzZUJ0bigpIHx8IHRoaXMuY2xpY2tFeGFjdGx5KCkgJiYgIWNsaWNrRXhhY3RseSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzSGlkZGVuLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuXG4gICAgdGhpcy5vdXRDaGFuZ2VTdGF0ZVNob3dDb250ZW50LmVtaXQodGhpcy5pc0hpZGRlbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlckhpZGRlbk9yU2hvd0J5VGVtcGxhdGVIZWFkZXIoKSB7XG4gICAgaWYgKCF0aGlzLmhhc0NvbGxhcHNlQnRuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNIaWRkZW4udXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgdGhpcy5vdXRDaGFuZ2VTdGF0ZVNob3dDb250ZW50LmVtaXQodGhpcy5pc0hpZGRlbigpKTtcbiAgfVxuXG59IiwiQGlmICghaWdub3JlVGl0bGUoKSkge1xuICA8ZGl2IGNsYXNzPVwibGlicy11aS1jYXJkLWhlYWRlciB7eyBjbGFzc0luY2x1ZGVIZWFkZXIoKSB9fSB7eyBpc0hpZGRlbigpID8gY2xhc3NJbmNsdWRlSGVhZGVyV2hlbkhpZGRlbkNvbnRlbnQoKSA6ICcnIH19XCJcbiAgICBbY2xhc3MucGwtMF09XCJjb25maWdDYXJkKCk/Lmlnbm9yZVBhZGRpbmdMZWZ0XCJcbiAgICBbY2xhc3MuYmctWyNlOWYxZmVdXT1cIiFjb25maWdDYXJkKCk/Lmlnbm9yZUJhY2tncm91bmRIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci10b3AtZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1sZWZ0LWdlbmVyYWxdPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVySGVhZGVyXCJcbiAgICBbY2xhc3MubGlicy11aS1ib3JkZXItcmlnaHQtZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1ib3R0b20tZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXIgJiYgaXNIaWRkZW4oKVwiXG4gICAgW2NsYXNzLnJvdW5kZWQtWzRweF1dPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVyUmFkaXVzSGVhZGVyXCJcbiAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwiIWNsaWNrRXhhY3RseSgpXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlckhpZGRlbk9yU2hvd0NvbnRlbnQoJGV2ZW50LGZhbHNlKVwiPlxuICAgIEBpZiAoaGFzQ29sbGFwc2VCdG4oKSAmJiAhY29uZmlnQ2FyZCgpPy5pY29uQ29uUmlnaHQpIHtcbiAgICAgIDxzcGFuIChjbGljayk9XCJoYW5kbGVySGlkZGVuT3JTaG93Q29udGVudCgkZXZlbnQsdHJ1ZSlcIlxuICAgICAgICBbY2xhc3NdPVwiJ2N1cnNvci1wb2ludGVyIG1yLVs4cHhdICcgKyAoY29uZmlnQ2FyZCgpPy5jbGFzc0luY2x1ZGVJY29uID8/ICcnKSArIChpc0hpZGRlbigpID8gJ2xpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0JyA6ICdyb3RhdGUtWzkwZGVnXSBsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCcpXCI+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoIXRlbXBsYXRlSGVhZGVyKCkpIHtcbiAgICAgIDxkaXYgW3N0eWxlLndpZHRoXT1cImNvbmZpZ0NhcmQoKT8ud2lkdGggfHwnJ1wiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWxhYmVsIFtwb3BvdmVyXT1cImxhYmVsKCk/LnBvcG92ZXJcIlxuICAgICAgICAgIFtsYWJlbExlZnRdPVwibGFiZWwoKT8ubGFiZWxMZWZ0XCJcbiAgICAgICAgICBbbGFiZWxMZWZ0Q2xhc3NdPVwiY29uZmlnQ2FyZCgpPy5jbGFzc0luY2x1ZGVMYWJlbCB8fCAnbGlicy11aS1mb250LWgzc2kgY3Vyc29yLXBvaW50ZXInXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwibGFiZWwoKT8ucmVxdWlyZWRcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ2N1cnNvci1wb2ludGVyICFtYi0wJ1wiXG4gICAgICAgICAgKG91dExhYmVsTGVmdENsaWNrKT1cImhhbmRsZXJIaWRkZW5PclNob3dDb250ZW50KCRldmVudCx0cnVlKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChoYXNDb2xsYXBzZUJ0bigpICYmIGNvbmZpZ0NhcmQoKT8uaWNvbkNvblJpZ2h0KSB7XG4gICAgICA8c3BhbiBbY2xhc3NdPVwiJ2N1cnNvci1wb2ludGVyIHRleHQtWzEwcHhdIG1sLWF1dG8gJyArIChjb25maWdDYXJkKCk/LmNsYXNzSW5jbHVkZUljb24gPz8gJycpICsgKGlzSGlkZGVuKCkgPyAnbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgcm90YXRlLVs5MGRlZ10nIDogJ2xpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0IC1yb3RhdGUtWzkwZGVnXScpXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJIaWRkZW5PclNob3dDb250ZW50KCRldmVudCx0cnVlKVwiPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKHRlbXBsYXRlSGVhZGVyKCk7IGFzIHRlbXBsYXRlSGVhZGVyKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVIZWFkZXJcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbkBpZiAoIWlzSGlkZGVuKCkpIHtcbiAgPGRpdiBjbGFzcz1cImxpYnMtdWktY2FyZC1ib2R5IHt7IGNsYXNzSW5jbHVkZUJvZHkoKSB9fVwiXG4gICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWdlbmVyYWxdPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVyQm9keVwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxufSJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBVSw4QkFBOEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRW5GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFldEQsTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLEtBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN4QixXQUFXLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDL0IsY0FBYyxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ2xDLFlBQVksR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNoQyxVQUFVLEdBQUcsS0FBSyxFQUEyQixDQUFDO0lBQzlDLGNBQWMsR0FBRyxLQUFLLENBQTZDLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLGdCQUFnQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ25DLGtCQUFrQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ3JDLG1DQUFtQyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRS9ELGlCQUFpQjtJQUNSLHlCQUF5QixHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQzlDLG1CQUFtQixHQUFHLE1BQU0sRUFBd0IsQ0FBQztJQUU5RCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUM1QixZQUFZLEVBQUUsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDTCxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBWSxFQUFFLFlBQXFCO1FBQzVFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25FLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQ0FBbUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7d0dBekNVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLG1yRENuQjFDLGs5RUE0Q0EscVFEN0JJLGVBQWUsK0JBQUUsZ0JBQWdCLG9KQUNqQyw4QkFBOEI7OzRGQUdyQiw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBRUUseUJBQXlCLGNBR3ZCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBUWVBFX1RFTVBMQVRFX1JFRiB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElDb25maWdDYXJkLCBJRnVuY3Rpb25Db250cm9sQ2FyZCB9IGZyb20gJy4vaW50ZXJmYWNlcy9jYXJkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGlzSGlkZGVuID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBsYWJlbCA9IGlucHV0PElMYWJlbD4oKTtcbiAgcmVhZG9ubHkgaWdub3JlVGl0bGUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBoYXNDb2xsYXBzZUJ0biA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGNsaWNrRXhhY3RseSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGNvbmZpZ0NhcmQgPSBpbnB1dDxJQ29uZmlnQ2FyZCB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVIZWFkZXIgPSBpbnB1dDxUZW1wbGF0ZVJlZjxUWVBFX1RFTVBMQVRFX1JFRj4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUJvZHkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUhlYWRlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSGVhZGVyV2hlbkhpZGRlbkNvbnRlbnQgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlU3RhdGVTaG93Q29udGVudCA9IG91dHB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbnNDb250cm9sID0gb3V0cHV0PElGdW5jdGlvbkNvbnRyb2xDYXJkPigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoYW5nZUhpZGRlbjogdGhpcy5oYW5kbGVySGlkZGVuT3JTaG93QnlUZW1wbGF0ZUhlYWRlci5iaW5kKHRoaXMpXG4gICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJIaWRkZW5PclNob3dDb250ZW50KGV2ZW50OiBFdmVudCwgY2xpY2tFeGFjdGx5OiBib29sZWFuKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmhhc0NvbGxhcHNlQnRuKCkgfHwgdGhpcy5jbGlja0V4YWN0bHkoKSAmJiAhY2xpY2tFeGFjdGx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNIaWRkZW4udXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XG5cbiAgICB0aGlzLm91dENoYW5nZVN0YXRlU2hvd0NvbnRlbnQuZW1pdCh0aGlzLmlzSGlkZGVuKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVySGlkZGVuT3JTaG93QnlUZW1wbGF0ZUhlYWRlcigpIHtcbiAgICBpZiAoIXRoaXMuaGFzQ29sbGFwc2VCdG4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0hpZGRlbi51cGRhdGUodmFsdWUgPT4gIXZhbHVlKTtcbiAgICB0aGlzLm91dENoYW5nZVN0YXRlU2hvd0NvbnRlbnQuZW1pdCh0aGlzLmlzSGlkZGVuKCkpO1xuICB9XG5cbn0iLCJAaWYgKCFpZ25vcmVUaXRsZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWNhcmQtaGVhZGVyIHt7IGNsYXNzSW5jbHVkZUhlYWRlcigpIH19IHt7IGlzSGlkZGVuKCkgPyBjbGFzc0luY2x1ZGVIZWFkZXJXaGVuSGlkZGVuQ29udGVudCgpIDogJycgfX1cIlxuICAgIFtjbGFzcy5wbC0wXT1cImNvbmZpZ0NhcmQoKT8uaWdub3JlUGFkZGluZ0xlZnRcIlxuICAgIFtjbGFzcy5iZy1bI2U5ZjFmZV1dPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQmFja2dyb3VuZEhlYWRlclwiXG4gICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLXRvcC1nZW5lcmFsXT1cIiFjb25maWdDYXJkKCk/Lmlnbm9yZUJvcmRlckhlYWRlclwiXG4gICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWxlZnQtZ2VuZXJhbF09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJIZWFkZXJcIlxuICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1yaWdodC1nZW5lcmFsXT1cIiFjb25maWdDYXJkKCk/Lmlnbm9yZUJvcmRlckhlYWRlclwiXG4gICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWJvdHRvbS1nZW5lcmFsXT1cIiFjb25maWdDYXJkKCk/Lmlnbm9yZUJvcmRlckhlYWRlciAmJiBpc0hpZGRlbigpXCJcbiAgICBbY2xhc3Mucm91bmRlZC1bNHB4XV09XCIhY29uZmlnQ2FyZCgpPy5pZ25vcmVCb3JkZXJSYWRpdXNIZWFkZXJcIlxuICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhY2xpY2tFeGFjdGx5KClcIlxuICAgIChjbGljayk9XCJoYW5kbGVySGlkZGVuT3JTaG93Q29udGVudCgkZXZlbnQsZmFsc2UpXCI+XG4gICAgQGlmIChoYXNDb2xsYXBzZUJ0bigpICYmICFjb25maWdDYXJkKCk/Lmljb25Db25SaWdodCkge1xuICAgICAgPHNwYW4gKGNsaWNrKT1cImhhbmRsZXJIaWRkZW5PclNob3dDb250ZW50KCRldmVudCx0cnVlKVwiXG4gICAgICAgIFtjbGFzc109XCInY3Vyc29yLXBvaW50ZXIgbXItWzhweF0gJyArIChjb25maWdDYXJkKCk/LmNsYXNzSWNvbkluY2x1ZGUgPz8gJ2JlZm9yZTohdGV4dC1bIzZhNzM4M10gJykgKyAoaXNIaWRkZW4oKSA/IChjb25maWdDYXJkKCk/LmNsYXNzSWNvbldoZW5IaWRkZW5Db250ZW50IHx8ICcgbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQnKSA6IChjb25maWdDYXJkKCk/LmNsYXNzSWNvbldoZW5TaG93Q29udGVudCB8fCAnIHJvdGF0ZS1bOTBkZWddIGxpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0JykpXCI+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoIXRlbXBsYXRlSGVhZGVyKCkpIHtcbiAgICAgIDxkaXYgW3N0eWxlLndpZHRoXT1cImNvbmZpZ0NhcmQoKT8ud2lkdGggfHwnJ1wiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWxhYmVsIFtwb3BvdmVyXT1cImxhYmVsKCk/LnBvcG92ZXJcIlxuICAgICAgICAgIFtsYWJlbExlZnRdPVwibGFiZWwoKT8ubGFiZWxMZWZ0XCJcbiAgICAgICAgICBbbGFiZWxMZWZ0Q2xhc3NdPVwiY29uZmlnQ2FyZCgpPy5jbGFzc0luY2x1ZGVMYWJlbCB8fCAnbGlicy11aS1mb250LWgzcyBjdXJzb3ItcG9pbnRlcidcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJsYWJlbCgpPy5yZXF1aXJlZFwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInY3Vyc29yLXBvaW50ZXIgIW1iLTAnXCJcbiAgICAgICAgICAob3V0TGFiZWxMZWZ0Q2xpY2spPVwiaGFuZGxlckhpZGRlbk9yU2hvd0NvbnRlbnQoJGV2ZW50LHRydWUpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGhhc0NvbGxhcHNlQnRuKCkgJiYgY29uZmlnQ2FyZCgpPy5pY29uQ29uUmlnaHQpIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIFtjbGFzc109XCInY3Vyc29yLXBvaW50ZXIgbWwtYXV0byAnICsgKGNvbmZpZ0NhcmQoKT8uY2xhc3NJY29uSW5jbHVkZSA/PyAnYmVmb3JlOiF0ZXh0LVsjNmE3MzgzXSAnKSArIChpc0hpZGRlbigpID8gKGNvbmZpZ0NhcmQoKT8uY2xhc3NJY29uV2hlbkhpZGRlbkNvbnRlbnQgfHwgJyBsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCByb3RhdGUtWzkwZGVnXScpIDogKGNvbmZpZ0NhcmQoKT8uY2xhc3NJY29uV2hlblNob3dDb250ZW50IHx8ICcgbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgLXJvdGF0ZS1bOTBkZWddJykpXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJIaWRkZW5PclNob3dDb250ZW50KCRldmVudCx0cnVlKVwiPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKHRlbXBsYXRlSGVhZGVyKCk7IGFzIHRlbXBsYXRlSGVhZGVyKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVIZWFkZXJcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbkBpZiAoIWlzSGlkZGVuKCkpIHtcbiAgPGRpdiBjbGFzcz1cImxpYnMtdWktY2FyZC1ib2R5IHt7IGNsYXNzSW5jbHVkZUJvZHkoKSB9fVwiXG4gICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWdlbmVyYWxdPVwiIWNvbmZpZ0NhcmQoKT8uaWdub3JlQm9yZGVyQm9keVwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvaW50ZXJmYWNlcy9jYXJkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnQ2FyZCB7XG4gIGlnbm9yZVBhZGRpbmdMZWZ0PzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVySGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQmFja2dyb3VuZEhlYWRlcj86IGJvb2xlYW47XG4gIGljb25Db25SaWdodD86IGJvb2xlYW47XG4gIHdpZHRoPzogc3RyaW5nO1xuICBjbGFzc0luY2x1ZGVMYWJlbD86IHN0cmluZztcbiAgY2xhc3NJbmNsdWRlSWNvbj86IHN0cmluZztcbiAgaWdub3JlQm9yZGVyUmFkaXVzSGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVyQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZ1bmN0aW9uQ29udHJvbENhcmQge1xuICBjaGFuZ2VIaWRkZW46ICgpID0+IFByb21pc2U8dm9pZD47XG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvaW50ZXJmYWNlcy9jYXJkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnQ2FyZCB7XG4gIGlnbm9yZVBhZGRpbmdMZWZ0PzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVySGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQmFja2dyb3VuZEhlYWRlcj86IGJvb2xlYW47XG4gIGljb25Db25SaWdodD86IGJvb2xlYW47XG4gIHdpZHRoPzogc3RyaW5nO1xuICBjbGFzc0luY2x1ZGVMYWJlbD86IHN0cmluZztcbiAgY2xhc3NJY29uSW5jbHVkZT86IHN0cmluZztcbiAgY2xhc3NJY29uV2hlblNob3dDb250ZW50Pzogc3RyaW5nO1xuICBjbGFzc0ljb25XaGVuSGlkZGVuQ29udGVudD86IHN0cmluZztcbiAgaWdub3JlQm9yZGVyUmFkaXVzSGVhZGVyPzogYm9vbGVhbjtcbiAgaWdub3JlQm9yZGVyQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZ1bmN0aW9uQ29udHJvbENhcmQge1xuICBjaGFuZ2VIaWRkZW46ICgpID0+IFByb21pc2U8dm9pZD47XG59Il19
@@ -5,17 +5,18 @@ import { LibsUiComponentsCardComponent } from '../card.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ngx-translate/core";
7
7
  export class LibsUiComponentsCardWrapperComponent {
8
- /* INPUT */
8
+ // #region INPUT
9
9
  labelConfig = input();
10
10
  borderError = input(false);
11
11
  templateHeader = input();
12
+ hasCollapseBtn = input(true);
12
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", 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 } }, ngImport: i0, template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | translate | uppercase, required: labelConfig()?.required}: {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true, \n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4s !text-[#071631]',\n ignoreBorderBody: true\n }\"\n [classIncludeHeader]=\"'!p-0'\"\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: ["label", "ignoreTitle", "hasCollapseBtn", "clickExactly", "configCard", "templateHeader", "classIncludeBody", "classIncludeHeader", "classIncludeHeaderWhenHiddenContent"], outputs: ["outChangeStateShowContent", "outFunctionsControl"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", 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 class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | 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 });
14
15
  }
15
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, decorators: [{
16
17
  type: Component,
17
18
  args: [{ selector: 'libs_ui-components-card-wrapper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
18
19
  LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule
19
- ], template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | translate | uppercase, required: labelConfig()?.required}: {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true, \n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4s !text-[#071631]',\n ignoreBorderBody: true\n }\"\n [classIncludeHeader]=\"'!p-0'\"\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"] }]
20
+ ], template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | 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"] }]
20
21
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvd3JhcHBlci93cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jYXJkL3NyYy93cmFwcGVyL3dyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBZWxFLE1BQU0sT0FBTyxvQ0FBb0M7SUFFL0MsV0FBVztJQUVGLFdBQVcsR0FBRyxLQUFLLEVBQTZDLENBQUM7SUFDakUsV0FBVyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNwQyxjQUFjLEdBQUcsS0FBSyxFQUFrQyxDQUFDO3dHQU52RCxvQ0FBb0M7NEZBQXBDLG9DQUFvQyw4Z0JDbkJqRCwyekJBZ0JBLDRKREFJLDZCQUE2QixtVEFBRSxhQUFhLGlEQUFFLGVBQWU7OzRGQUdwRCxvQ0FBb0M7a0JBYmhELFNBQVM7K0JBRUUsaUNBQWlDLGNBSy9CLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCw2QkFBNkIsRUFBRSxhQUFhLEVBQUUsZUFBZTtxQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9URU1QTEFURV9SRUYgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0NhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1jYXJkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgICcubGlicy11aS1jb21wb25lbnRzLWNhcmQtd3JhcHBlci1ub2RlLXNoYWRvdyB7IGJveC1zaGFkb3c6IDBweCA0cHggOHB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wNCksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDIwLCA1MSwgMC4wMikgfSdcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBMaWJzVWlDb21wb25lbnRzQ2FyZENvbXBvbmVudCwgVXBwZXJDYXNlUGlwZSwgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0NhcmRXcmFwcGVyQ29tcG9uZW50IHtcblxuICAvKiBJTlBVVCAqL1xuXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8eyBsYWJlbExlZnQ6IHN0cmluZywgcmVxdWlyZWQ/OiBib29sZWFuIH0+KCk7XG4gIHJlYWRvbmx5IGJvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0ZW1wbGF0ZUhlYWRlciA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJiZy1bI2ZmZmZmZl0gcC1bMTZweF0gcm91bmRlZC1bOHB4XSBsaWJzLXVpLWNvbXBvbmVudHMtY2FyZC13cmFwcGVyLW5vZGUtc2hhZG93XCJcbiAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWVycm9yLWdlbmVyYWxdPVwiYm9yZGVyRXJyb3IoKVwiPlxuICA8bGlic191aS1jb21wb25lbnRzLWNhcmQgW2xhYmVsXT1cImxhYmVsQ29uZmlnKCk/IHtsYWJlbExlZnQ6IChsYWJlbENvbmZpZygpPy5sYWJlbExlZnQgfHwgJycpIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlLCByZXF1aXJlZDogbGFiZWxDb25maWcoKT8ucmVxdWlyZWR9OiB7fVwiXG4gICAgW2lnbm9yZVRpdGxlXT1cInRlbXBsYXRlSGVhZGVyKCkgfHwgbGFiZWxDb25maWcoKSA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgW2NvbmZpZ0NhcmRdPVwie1xuICAgICAgICBpZ25vcmVCb3JkZXJIZWFkZXI6IHRydWUsIFxuICAgICAgICBpZ25vcmVCYWNrZ3JvdW5kSGVhZGVyOiB0cnVlLFxuICAgICAgICBjbGFzc0luY2x1ZGVMYWJlbDogJ2xpYnMtdWktZm9udC1oNHMgIXRleHQtWyMwNzE2MzFdJyxcbiAgICAgICAgaWdub3JlQm9yZGVyQm9keTogdHJ1ZVxuICAgICAgfVwiXG4gICAgW2NsYXNzSW5jbHVkZUhlYWRlcl09XCInIXAtMCdcIlxuICAgIFtjbGFzc0luY2x1ZGVCb2R5XT1cIichcGItMCAnICsgKChsYWJlbENvbmZpZygpIHx8IHRlbXBsYXRlSGVhZGVyKCkpID8gJycgOiAnIXAtMCcpXCJcbiAgICBbdGVtcGxhdGVIZWFkZXJdPVwidGVtcGxhdGVIZWFkZXIoKVwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvbGlic191aS1jb21wb25lbnRzLWNhcmQ+XG48L2Rpdj5cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2FyZC9zcmMvd3JhcHBlci93cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jYXJkL3NyYy93cmFwcGVyL3dyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBZWxFLE1BQU0sT0FBTyxvQ0FBb0M7SUFFL0MsZ0JBQWdCO0lBRVAsV0FBVyxHQUFHLEtBQUssRUFBNkMsQ0FBQztJQUNqRSxXQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLGNBQWMsR0FBRyxLQUFLLEVBQWtDLENBQUM7SUFDekQsY0FBYyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQzt3R0FQcEMsb0NBQW9DOzRGQUFwQyxvQ0FBb0MsaXFCQ25CakQseTZCQWtCQSw0SkRGSSw2QkFBNkIsaVZBQUUsYUFBYSxpREFBRSxlQUFlOzs0RkFHcEQsb0NBQW9DO2tCQWJoRCxTQUFTOytCQUVFLGlDQUFpQyxjQUsvQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsNkJBQTZCLEVBQUUsYUFBYSxFQUFFLGVBQWU7cUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXBwZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRZUEVfVEVNUExBVEVfUkVGIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtY2FyZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtcbiAgICAnLmxpYnMtdWktY29tcG9uZW50cy1jYXJkLXdyYXBwZXItbm9kZS1zaGFkb3cgeyBib3gtc2hhZG93OiAwcHggNHB4IDhweCAwcHggcmdiYSgwLCAyMCwgNTEsIDAuMDQpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAyMCwgNTEsIDAuMDIpIH0nXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTGlic1VpQ29tcG9uZW50c0NhcmRDb21wb25lbnQsIFVwcGVyQ2FzZVBpcGUsIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNDYXJkV3JhcHBlckNvbXBvbmVudCB7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8eyBsYWJlbExlZnQ6IHN0cmluZywgcmVxdWlyZWQ/OiBib29sZWFuIH0+KCk7XG4gIHJlYWRvbmx5IGJvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0ZW1wbGF0ZUhlYWRlciA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbiAgcmVhZG9ubHkgaGFzQ29sbGFwc2VCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxufVxuIiwiPGRpdiBjbGFzcz1cImJnLVsjZmZmZmZmXSBwLVsxNnB4XSByb3VuZGVkLVs4cHhdIGxpYnMtdWktY29tcG9uZW50cy1jYXJkLXdyYXBwZXItbm9kZS1zaGFkb3dcIlxuICBbY2xhc3MubGlicy11aS1ib3JkZXItZXJyb3ItZ2VuZXJhbF09XCJib3JkZXJFcnJvcigpXCI+XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtY2FyZCBbbGFiZWxdPVwibGFiZWxDb25maWcoKT8ge2xhYmVsTGVmdDogKGxhYmVsQ29uZmlnKCk/LmxhYmVsTGVmdCB8fCAnJykgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UsIHJlcXVpcmVkOiBsYWJlbENvbmZpZygpPy5yZXF1aXJlZH06IHt9XCJcbiAgICBbaWdub3JlVGl0bGVdPVwidGVtcGxhdGVIZWFkZXIoKSB8fCBsYWJlbENvbmZpZygpID8gZmFsc2UgOiB0cnVlXCJcbiAgICBbY29uZmlnQ2FyZF09XCJ7XG4gICAgICAgIGlnbm9yZUJvcmRlckhlYWRlcjogdHJ1ZSwgXG4gICAgICAgIGlnbm9yZUJhY2tncm91bmRIZWFkZXI6IHRydWUsXG4gICAgICAgIGNsYXNzSW5jbHVkZUxhYmVsOiAnbGlicy11aS1mb250LWg0c2kgIXRleHQtWyMwNzE2MzFdJyxcbiAgICAgICAgaWdub3JlQm9yZGVyQm9keTogdHJ1ZSxcbiAgICAgICAgY2xhc3NJY29uSW5jbHVkZTogJyF0ZXh0LVsjMDcxNjMxXSBiZWZvcmU6IXRleHQtWzE2cHhdJ1xuICAgICAgfVwiXG4gICAgW2NsYXNzSW5jbHVkZUhlYWRlcl09XCInIXAtMCdcIlxuICAgIFtoYXNDb2xsYXBzZUJ0bl09XCJoYXNDb2xsYXBzZUJ0bigpXCJcbiAgICBbY2xhc3NJbmNsdWRlQm9keV09XCInIXBiLTAgJyArICgobGFiZWxDb25maWcoKSB8fCB0ZW1wbGF0ZUhlYWRlcigpKSA/ICcnIDogJyFwLTAnKVwiXG4gICAgW3RlbXBsYXRlSGVhZGVyXT1cInRlbXBsYXRlSGVhZGVyKClcIj5cbiAgICA8bmctY29udGVudCAvPlxuICA8L2xpYnNfdWktY29tcG9uZW50cy1jYXJkPlxuPC9kaXY+XG4iXX0=
@@ -1,14 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, input, output, Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { model, input, output, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
4
+ import { NgTemplateOutlet, UpperCasePipe } from '@angular/common';
4
5
  import * as i1 from '@ngx-translate/core';
5
6
  import { TranslateModule } from '@ngx-translate/core';
6
- import { NgTemplateOutlet, UpperCasePipe } from '@angular/common';
7
7
 
8
8
  class LibsUiComponentsCardComponent {
9
- /* PROPERTY */
10
- isHidden = signal(false);
11
- /* INPUT */
9
+ // #region INPUT
10
+ isHidden = model(false);
12
11
  label = input();
13
12
  ignoreTitle = input();
14
13
  hasCollapseBtn = input();
@@ -18,7 +17,7 @@ class LibsUiComponentsCardComponent {
18
17
  classIncludeBody = input();
19
18
  classIncludeHeader = input();
20
19
  classIncludeHeaderWhenHiddenContent = input();
21
- /* OUTPUT */
20
+ // #region OUTPUT
22
21
  outChangeStateShowContent = output();
23
22
  outFunctionsControl = output();
24
23
  ngOnInit() {
@@ -43,29 +42,30 @@ class LibsUiComponentsCardComponent {
43
42
  this.outChangeStateShowContent.emit(this.isHidden());
44
43
  }
45
44
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsCardComponent, isStandalone: true, selector: "libs_ui-components-card", inputs: { 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: { outChangeStateShowContent: "outChangeStateShowContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right' : 'rotate-[90deg] libs-ui-icon-chevron-right')\">\n </span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width ||''\">\n <libs_ui-components-label [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3si 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 [class]=\"'cursor-pointer text-[10px] ml-auto ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right rotate-[90deg]' : 'libs-ui-icon-chevron-right -rotate-[90deg]')\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\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 });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (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 [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]=\"'cursor-pointer ml-auto ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (isHidden() ? (configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]') : (configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]'))\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div 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
46
  }
48
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardComponent, decorators: [{
49
48
  type: Component,
50
49
  args: [{ selector: 'libs_ui-components-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
51
50
  TranslateModule, NgTemplateOutlet,
52
51
  LibsUiComponentsLabelComponent
53
- ], template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right' : 'rotate-[90deg] libs-ui-icon-chevron-right')\">\n </span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width ||''\">\n <libs_ui-components-label [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3si 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 [class]=\"'cursor-pointer text-[10px] ml-auto ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right rotate-[90deg]' : 'libs-ui-icon-chevron-right -rotate-[90deg]')\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\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"] }]
52
+ ], template: "@if (!ignoreTitle()) {\n <div 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (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 [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]=\"'cursor-pointer ml-auto ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (isHidden() ? (configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]') : (configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]'))\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div 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"] }]
54
53
  }] });
55
54
 
56
55
  class LibsUiComponentsCardWrapperComponent {
57
- /* INPUT */
56
+ // #region INPUT
58
57
  labelConfig = input();
59
58
  borderError = input(false);
60
59
  templateHeader = input();
60
+ hasCollapseBtn = input(true);
61
61
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", 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 } }, ngImport: i0, template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | translate | uppercase, required: labelConfig()?.required}: {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true, \n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4s !text-[#071631]',\n ignoreBorderBody: true\n }\"\n [classIncludeHeader]=\"'!p-0'\"\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: ["label", "ignoreTitle", "hasCollapseBtn", "clickExactly", "configCard", "templateHeader", "classIncludeBody", "classIncludeHeader", "classIncludeHeaderWhenHiddenContent"], outputs: ["outChangeStateShowContent", "outFunctionsControl"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", 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 class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | 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
63
  }
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsCardWrapperComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{ selector: 'libs_ui-components-card-wrapper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
67
67
  LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule
68
- ], template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | translate | uppercase, required: labelConfig()?.required}: {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true, \n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4s !text-[#071631]',\n ignoreBorderBody: true\n }\"\n [classIncludeHeader]=\"'!p-0'\"\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"] }]
68
+ ], template: "<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | 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"] }]
69
69
  }] });
70
70
 
71
71
  /**
@@ -1 +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, OnInit, output, signal, TemplateRef } from '@angular/core';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IConfigCard, IFunctionControlCard } from './interfaces/card.interface';\nimport { NgTemplateOutlet } from '@angular/common';\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: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsLabelComponent\n ]\n})\nexport class LibsUiComponentsCardComponent implements OnInit {\n\n /* PROPERTY */\n protected isHidden = signal<boolean>(false);\n\n /* INPUT */\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\n readonly templateHeader = input<TemplateRef<TYPE_TEMPLATE_REF> | undefined>(undefined);\n \n\n readonly classIncludeBody = input<string>();\n readonly classIncludeHeader = input<string>();\n readonly classIncludeHeaderWhenHiddenContent = input<string>();\n\n /* OUTPUT */\n readonly outChangeStateShowContent = output<boolean>();\n readonly outFunctionsControl = output<IFunctionControlCard>();\n\n ngOnInit(): void {\n this.outFunctionsControl.emit({\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 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right' : 'rotate-[90deg] libs-ui-icon-chevron-right')\">\n </span>\n }\n @if (!templateHeader()) {\n <div [style.width]=\"configCard()?.width ||''\">\n <libs_ui-components-label [popover]=\"label()?.popover\"\n [labelLeft]=\"label()?.labelLeft\"\n [labelLeftClass]=\"configCard()?.classIncludeLabel || 'libs-ui-font-h3si 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 [class]=\"'cursor-pointer text-[10px] ml-auto ' + (configCard()?.classIncludeIcon ?? '') + (isHidden() ? 'libs-ui-icon-chevron-right rotate-[90deg]' : 'libs-ui-icon-chevron-right -rotate-[90deg]')\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div class=\"libs-ui-card-body {{ classIncludeBody() }}\"\n [class.libs-ui-border-general]=\"!configCard()?.ignoreBorderBody\">\n <ng-content />\n </div>\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: [\n '.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 ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule\n ]\n})\nexport class LibsUiComponentsCardWrapperComponent {\n\n /* 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}\n","<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | translate | uppercase, required: labelConfig()?.required}: {}\"\n [ignoreTitle]=\"templateHeader() || labelConfig() ? false : true\"\n [configCard]=\"{\n ignoreBorderHeader: true, \n ignoreBackgroundHeader: true,\n classIncludeLabel: 'libs-ui-font-h4s !text-[#071631]',\n ignoreBorderBody: true\n }\"\n [classIncludeHeader]=\"'!p-0'\"\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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"}
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: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsLabelComponent\n ]\n})\nexport class LibsUiComponentsCardComponent implements OnInit {\n\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({\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 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 (click)=\"handlerHiddenOrShowContent($event,true)\"\n [class]=\"'cursor-pointer mr-[8px] ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (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 [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]=\"'cursor-pointer ml-auto ' + (configCard()?.classIconInclude ?? 'before:!text-[#6a7383] ') + (isHidden() ? (configCard()?.classIconWhenHiddenContent || ' libs-ui-icon-chevron-right rotate-[90deg]') : (configCard()?.classIconWhenShowContent || ' libs-ui-icon-chevron-right -rotate-[90deg]'))\"\n (click)=\"handlerHiddenOrShowContent($event,true)\">\n </span>\n }\n @if (templateHeader(); as templateHeader) {\n <ng-container *ngTemplateOutlet=\"templateHeader\" />\n }\n </div>\n}\n\n@if (!isHidden()) {\n <div 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: [\n '.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 ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsCardComponent, UpperCasePipe, TranslateModule\n ]\n})\nexport class LibsUiComponentsCardWrapperComponent {\n\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}\n","<div class=\"bg-[#ffffff] p-[16px] rounded-[8px] libs-ui-components-card-wrapper-node-shadow\"\n [class.libs-ui-border-error-general]=\"borderError()\">\n <libs_ui-components-card [label]=\"labelConfig()? {labelLeft: (labelConfig()?.labelLeft || '') | 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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"}
@@ -5,7 +5,9 @@ export interface IConfigCard {
5
5
  iconConRight?: boolean;
6
6
  width?: string;
7
7
  classIncludeLabel?: string;
8
- classIncludeIcon?: string;
8
+ classIconInclude?: string;
9
+ classIconWhenShowContent?: string;
10
+ classIconWhenHiddenContent?: string;
9
11
  ignoreBorderRadiusHeader?: boolean;
10
12
  ignoreBorderBody?: boolean;
11
13
  }
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@libs-ui/components-card",
3
- "version": "0.2.29",
3
+ "version": "0.2.306.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.2.0",
6
- "@angular/core": "^18.2.0"
5
+ "@angular/common": ">=18.0.0",
6
+ "@angular/core": ">=18.0.0",
7
+ "@libs-ui/components-label": "0.2.306.1",
8
+ "@libs-ui/interfaces-types": "0.2.306.1",
9
+ "@ngx-translate/core": "^15.0.0"
7
10
  },
8
11
  "sideEffects": false,
9
12
  "module": "fesm2022/libs-ui-components-card.mjs",
@@ -7,6 +7,7 @@ export declare class LibsUiComponentsCardWrapperComponent {
7
7
  } | undefined>;
8
8
  readonly borderError: import("@angular/core").InputSignal<boolean>;
9
9
  readonly templateHeader: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
10
+ readonly hasCollapseBtn: import("@angular/core").InputSignal<boolean>;
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsCardWrapperComponent, never>;
11
- 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; }; }, {}, never, ["*"], true, 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>;
12
13
  }