@libs-ui/components-inputs-quill2x-preview 0.2.356-8 → 0.2.357-0

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,26 +1,35 @@
1
- # Quill2x Preview Component
1
+ # @libs-ui/components-inputs-quill2x-preview
2
2
 
3
- `@libs-ui/components-inputs-quill2x-preview` một component chuyên dụng để hiển thị nội dung HTML được tạo ra từ trình soạn thảo Quill2x. đảm bảo nội dung được hiển thị nhất quán với trình soạn thảo, đồng thời hỗ trợ các tính năng như giới hạn chiều cao (view more/collapse) bảo mật nội dung.
3
+ > Component hiển thị nội dung Rich Text HTML từ trình soạn thảo Quill2x một cách an toàn, với tính năng Xem thêm / Thu gọn thông minh.
4
4
 
5
- ## Tính năng nổi bật
5
+ ## Giới thiệu
6
6
 
7
- - 🔍 **Consistent Rendering**: Hiển thị nội dung HTML với đầy đủ style tương ứng như khi soạn thảo trong Quill2x.
8
- - 🛡️ **HTML Security**: Sử dụng `LibsUiPipesSecurityTrustPipe` để sanitize nội dung HTML, ngăn chặn các cuộc tấn công XSS.
9
- - 📉 **View More / Collapse**: Tự động kiểm tra độ cao của nội dung. Nếu vượt quá `maxHeight`, component sẽ hiển thị nút "Xem thêm" và hiệu ứng gradient mờ dần ở đáy.
10
- - 🎨 **Custom Styling**: Cho phép truyền thêm class tùy biến cho container thông qua input `containerClass`.
11
- - ⚡ **Performance**: Sử dụng `ChangeDetectionStrategy.OnPush` để tối ưu hiệu năng render.
7
+ `@libs-ui/components-inputs-quill2x-preview` component chuyên dụng để render nội dung HTML được tạo ra bởi trình soạn thảo Quill2x. Component tự động sanitize nội dung qua `LibsUiPipesSecurityTrustPipe` để ngăn chặn XSS, đồng thời hỗ trợ cơ chế thu gọn / mở rộng thông minh khi nội dung quá dài. Styling được kế thừa từ Quill Snow theme đảm bảo nội dung hiển thị nhất quán với trình soạn thảo.
12
8
 
13
- ## Cài đặt
9
+ ## Tính năng
10
+
11
+ - ✅ **Hiển thị nhất quán** — Kế thừa Quill Snow theme styles, đảm bảo nội dung render giống hệt trình soạn thảo
12
+ - ✅ **Bảo mật XSS** — Tự động sanitize HTML qua `LibsUiPipesSecurityTrustPipe` với `useXssFilter: true`
13
+ - ✅ **Xem thêm / Thu gọn** — Tự động phát hiện nội dung vượt `maxHeight`, hiển thị nút điều khiển và hiệu ứng gradient mờ
14
+ - ✅ **Two-way binding** — `expand` là `model()` hỗ trợ kiểm soát trạng thái mở rộng từ bên ngoài
15
+ - ✅ **Custom class** — Cho phép truyền thêm CSS class vào container qua `containerClass`
16
+ - ✅ **Label tùy biến** — Nhãn nút Xem thêm / Thu gọn có thể tùy chỉnh hoặc dùng i18n key mặc định
17
+ - ✅ **Performance** — `ChangeDetectionStrategy.OnPush` + Signal API tối ưu hiệu năng render
18
+
19
+ ## Khi nào sử dụng
20
+
21
+ - Khi cần hiển thị nội dung được tạo ra bởi trình soạn thảo Quill2x (rich text, HTML)
22
+ - Khi cần render HTML từ API một cách an toàn mà không lo XSS
23
+ - Khi muốn giới hạn không gian hiển thị cho bài viết dài trong danh sách hoặc feed
24
+ - Khi cần hiển thị preview nội dung email, mô tả sản phẩm, bài viết blog có định dạng phong phú
14
25
 
15
- Sử dụng npm hoặc yarn để cài đặt:
26
+ ## Cài đặt
16
27
 
17
28
  ```bash
18
29
  npm install @libs-ui/components-inputs-quill2x-preview
19
30
  ```
20
31
 
21
- ## Cách sử dụng
22
-
23
- ### Import Module
32
+ ## Import
24
33
 
25
34
  ```typescript
26
35
  import { LibsUiComponentsInputsQuill2xPreviewComponent } from '@libs-ui/components-inputs-quill2x-preview';
@@ -33,43 +42,175 @@ import { LibsUiComponentsInputsQuill2xPreviewComponent } from '@libs-ui/componen
33
42
  export class YourComponent {}
34
43
  ```
35
44
 
36
- ### Ví dụ bản
45
+ ## Ví dụ sử dụng
46
+
47
+ ### Ví dụ 1 — Hiển thị cơ bản
48
+
49
+ ```typescript
50
+ // component.ts
51
+ import { Component, signal } from '@angular/core';
52
+ import { LibsUiComponentsInputsQuill2xPreviewComponent } from '@libs-ui/components-inputs-quill2x-preview';
53
+
54
+ @Component({
55
+ standalone: true,
56
+ imports: [LibsUiComponentsInputsQuill2xPreviewComponent],
57
+ templateUrl: './article-detail.component.html',
58
+ })
59
+ export class ArticleDetailComponent {
60
+ protected articleContent = signal<string>(
61
+ '<h2>Tiêu đề bài viết</h2><p>Đây là nội dung bài viết với <strong>in đậm</strong> và <em>in nghiêng</em>.</p>'
62
+ );
63
+ }
64
+ ```
37
65
 
38
66
  ```html
39
- <libs_ui-components-inputs-quill2x-preview [data]="htmlContent"></libs_ui-components-inputs-quill2x-preview>
67
+ <!-- article-detail.component.html -->
68
+ <libs_ui-components-inputs-quill2x-preview
69
+ [data]="articleContent()">
70
+ </libs_ui-components-inputs-quill2x-preview>
71
+ ```
72
+
73
+ ### Ví dụ 2 — Xem thêm / Thu gọn cho nội dung dài
74
+
75
+ ```typescript
76
+ // component.ts
77
+ import { Component, signal } from '@angular/core';
78
+ import { LibsUiComponentsInputsQuill2xPreviewComponent } from '@libs-ui/components-inputs-quill2x-preview';
79
+
80
+ @Component({
81
+ standalone: true,
82
+ imports: [LibsUiComponentsInputsQuill2xPreviewComponent],
83
+ templateUrl: './news-feed.component.html',
84
+ })
85
+ export class NewsFeedComponent {
86
+ protected postContent = signal<string>(`
87
+ <h3>Thông báo quan trọng</h3>
88
+ <p>Đây là nội dung bài viết rất dài với nhiều đoạn văn...</p>
89
+ <ul>
90
+ <li>Điểm thứ nhất cần chú ý</li>
91
+ <li>Điểm thứ hai cần chú ý</li>
92
+ <li>Điểm thứ ba cần chú ý</li>
93
+ <li>Điểm thứ tư cần chú ý</li>
94
+ <li>Điểm thứ năm cần chú ý</li>
95
+ </ul>
96
+ <p>Kết luận của bài viết.</p>
97
+ `);
98
+ protected isExpanded = signal<boolean>(false);
99
+ }
100
+ ```
101
+
102
+ ```html
103
+ <!-- news-feed.component.html -->
104
+ <libs_ui-components-inputs-quill2x-preview
105
+ [data]="postContent()"
106
+ [maxHeight]="120"
107
+ [hasButtonCollapseExpand]="true"
108
+ [labelButtonViewMore]="'Xem toàn bộ bài viết'"
109
+ [labelButtonCollapse]="'Thu gọn bài viết'"
110
+ [(expand)]="isExpanded()">
111
+ </libs_ui-components-inputs-quill2x-preview>
40
112
  ```
41
113
 
42
- ### Giới hạn chiều cao với nút Xem thêm
114
+ ### dụ 3 Tùy biến CSS class và kiểm soát expand từ bên ngoài
115
+
116
+ ```typescript
117
+ // component.ts
118
+ import { Component, signal } from '@angular/core';
119
+ import { LibsUiComponentsInputsQuill2xPreviewComponent } from '@libs-ui/components-inputs-quill2x-preview';
120
+
121
+ @Component({
122
+ standalone: true,
123
+ imports: [LibsUiComponentsInputsQuill2xPreviewComponent],
124
+ templateUrl: './product-description.component.html',
125
+ })
126
+ export class ProductDescriptionComponent {
127
+ protected description = signal<string>(
128
+ '<p style="color: #ee2d41; font-size: 18px;"><strong>Sản phẩm nổi bật</strong></p><p>Mô tả chi tiết sản phẩm với nhiều thông tin hữu ích.</p>'
129
+ );
130
+ protected isOpen = signal<boolean>(false);
131
+
132
+ protected handlerToggleExpand(event: Event): void {
133
+ event.stopPropagation();
134
+ this.isOpen.update((val) => !val);
135
+ }
136
+ }
137
+ ```
43
138
 
44
139
  ```html
140
+ <!-- product-description.component.html -->
141
+ <button (click)="handlerToggleExpand($event)">
142
+ {{ isOpen() ? 'Thu gọn' : 'Mở rộng' }}
143
+ </button>
144
+
45
145
  <libs_ui-components-inputs-quill2x-preview
46
- [data]="longHtmlContent"
146
+ [data]="description()"
147
+ [containerClass]="'border border-gray-200 rounded p-2'"
47
148
  [maxHeight]="200"
48
149
  [hasButtonCollapseExpand]="true"
49
- [labelButtonViewMore]="'Xem thêm nội dung'"
50
- [labelButtonCollapse]="'Thu gọn'"></libs_ui-components-inputs-quill2x-preview>
150
+ [(expand)]="isOpen()">
151
+ </libs_ui-components-inputs-quill2x-preview>
51
152
  ```
52
153
 
53
- ## API Reference
154
+ ## @Input()
155
+
156
+ | Input | Type | Default | Mô tả | Ví dụ |
157
+ |---|---|---|---|---|
158
+ | `data` | `string` | **(Required)** | Chuỗi HTML cần hiển thị. Nội dung sẽ được tự động sanitize trước khi render | `[data]="articleHtml()"` |
159
+ | `containerClass` | `string` | `undefined` | Class CSS bổ sung cho thẻ `.ql-container` bên trong. Dùng để override style hoặc thêm border/padding | `[containerClass]="'border rounded p-2'"` |
160
+ | `expand` | `boolean` | `undefined` | Trạng thái mở rộng / thu gọn. Là `model()` — hỗ trợ two-way binding `[(expand)]` | `[(expand)]="isExpanded()"` |
161
+ | `hasButtonCollapseExpand` | `boolean` | `undefined` (falsy) | Bật tính năng giới hạn chiều cao và nút Xem thêm / Thu gọn. Khi `true`, component đo chiều cao sau render | `[hasButtonCollapseExpand]="true"` |
162
+ | `maxHeight` | `number` | `160` | Chiều cao tối đa tính bằng pixel trước khi kích hoạt nút Xem thêm. Nếu truyền `undefined` hoặc `0`, mặc định về `160` | `[maxHeight]="200"` |
163
+ | `labelButtonViewMore` | `string` | `'i18n_view_more'` | Nhãn hiển thị trên nút Xem thêm. Nếu không truyền, dùng i18n key `i18n_view_more` | `[labelButtonViewMore]="'Xem toàn bộ'"` |
164
+ | `labelButtonCollapse` | `string` | `'i18n_collapse'` | Nhãn hiển thị trên nút Thu gọn. Nếu không truyền, dùng i18n key `i18n_collapse` | `[labelButtonCollapse]="'Thu gọn lại'"` |
54
165
 
55
- ### Inputs
166
+ ## Logic ngầm quan trọng
56
167
 
57
- | Thuộc tính | Kiểu dữ liệu | Mặc định | Mô tả |
58
- | :------------------------ | :----------- | :----------------- | :-------------------------------------------------------- |
59
- | `data` | `string` | **(Required)** | Nội dung HTML cần hiển thị. |
60
- | `containerClass` | `string` | `undefined` | Class CSS bổ sung cho container. |
61
- | `expand` | `boolean` | **(Model)** | Trạng thái mở rộng hoặc thu gọn của component. |
62
- | `hasButtonCollapseExpand` | `boolean` | `false` | Bật/tắt tính năng giới hạn chiều cao và nút Xem thêm. |
63
- | `maxHeight` | `number` | `160` | Chiều cao tối đa (pixel) trước khi hiển thị nút Xem thêm. |
64
- | `labelButtonCollapse` | `string` | `'i18n_collapse'` | Nhãn cho nút thu gọn. |
65
- | `labelButtonViewMore` | `string` | `'i18n_view_more'` | Nhãn cho nút xem thêm. |
168
+ ### Tự động phát hiện nội dung dài
169
+
170
+ Khi `hasButtonCollapseExpand` `true`, trong `ngAfterViewInit` component dùng `timer(250)` chờ DOM render xong rồi so sánh `offsetHeight` của container với `maxHeight + 28`:
171
+
172
+ ```typescript
173
+ timer(250)
174
+ .pipe(takeUntilDestroyed(this.destroyRef))
175
+ .subscribe(() => {
176
+ this.hasShowMore.set(
177
+ this.previewRef().nativeElement.offsetHeight > this.maxHeight() + 28
178
+ );
179
+ });
180
+ ```
66
181
 
67
- ## Tech Stack
182
+ Delay 250ms là cần thiết để Quill styles được áp dụng đầy đủ trước khi đo chiều cao. Nếu nội dung **không** vượt ngưỡng, nút Xem thêm **không** xuất hiện dù `hasButtonCollapseExpand = true`.
68
183
 
69
- - **Core**: Angular 18+ (Signals)
70
- - **Styles**: Quill "snow" theme compatible styles
71
- - **Pipes**: `@libs-ui/pipes-security-trust`
184
+ ### Hiệu ứng gradient fade
72
185
 
73
- ## License
186
+ Khi nội dung bị thu gọn (`hasShowMore() && !expand()`), một lớp overlay gradient trắng được chèn tuyệt đối ở đáy container tạo hiệu ứng chuyển tiếp mượt mà:
187
+
188
+ ```html
189
+ <div class="absolute bottom-[28px] w-full h-[40px] opacity-[0.5]
190
+ bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]">
191
+ </div>
192
+ ```
193
+
194
+ ### CSS fix Quill 2.x list rendering
195
+
196
+ Component có SCSS override phức tạp để sửa lỗi đánh số tự động bị sai trong Quill 2.x khi xen kẽ giữa danh sách ordered và bullet. Sử dụng `counter-reset` và `counter-increment` tùy chỉnh thay vì dựa vào CSS mặc định của Quill.
197
+
198
+ ## Lưu ý quan trọng
199
+
200
+ ⚠️ **Sanitization tự động**: Component dùng `LibsUiPipesSecurityTrustPipe` với `useXssFilter: true` để sanitize HTML. Không cần sanitize thủ công trước khi truyền vào `[data]`.
201
+
202
+ ⚠️ **Quill CSS dependency**: Component yêu cầu Quill Snow theme CSS được load trên trang để styles hiển thị đúng. Nếu không có, nội dung vẫn render nhưng có thể mất một số định dạng.
203
+
204
+ ⚠️ **maxHeight transform**: Input `maxHeight` có transform — nếu truyền `undefined` hoặc `0`, giá trị sẽ tự động về `160`. Đây là hành vi có chủ đích để tránh container bị thu gọn về 0px.
205
+
206
+ ⚠️ **expand là model()**: `expand` dùng `model()` thay vì `input()`. Sử dụng `[(expand)]` cho two-way binding. Nếu chỉ cần one-way, dùng `[expand]`.
207
+
208
+ ⚠️ **hasButtonCollapseExpand + ngAfterViewInit**: Nút Xem thêm chỉ hiển thị sau khi DOM render xong (sau 250ms). Không nên kiểm tra `hasShowMore` đồng bộ ngay khi component khởi tạo.
209
+
210
+ ## Demo
211
+
212
+ ```bash
213
+ npx nx serve core-ui
214
+ ```
74
215
 
75
- MIT
216
+ Truy cập: http://localhost:4500/components/inputs/quill2x-preview
@@ -48,10 +48,10 @@ export class LibsUiComponentsInputsQuill2xPreviewComponent {
48
48
  this.expand.update((value) => !value);
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsQuill2xPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsInputsQuill2xPreviewComponent, isStandalone: true, selector: "libs_ui-components-inputs-quill2x-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, hasButtonCollapseExpand: { classPropertyName: "hasButtonCollapseExpand", publicName: "hasButtonCollapseExpand", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, labelButtonCollapse: { classPropertyName: "labelButtonCollapse", publicName: "labelButtonCollapse", isSignal: true, isRequired: false, transformFunction: null }, labelButtonViewMore: { classPropertyName: "labelButtonViewMore", publicName: "labelButtonViewMore", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expand: "expandChange" }, viewQueries: [{ propertyName: "previewRef", first: true, predicate: ["preview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),\"Arial\"!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"], dependencies: [{ kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsInputsQuill2xPreviewComponent, isStandalone: true, selector: "libs_ui-components-inputs-quill2x-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, hasButtonCollapseExpand: { classPropertyName: "hasButtonCollapseExpand", publicName: "hasButtonCollapseExpand", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, labelButtonCollapse: { classPropertyName: "labelButtonCollapse", publicName: "labelButtonCollapse", isSignal: true, isRequired: false, transformFunction: null }, labelButtonViewMore: { classPropertyName: "labelButtonViewMore", publicName: "labelButtonViewMore", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expand: "expandChange" }, viewQueries: [{ propertyName: "previewRef", first: true, predicate: ["preview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),Arial,sans-serif!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"], dependencies: [{ kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsQuill2xPreviewComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'libs_ui-components-inputs-quill2x-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent], template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),\"Arial\"!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"] }]
55
+ args: [{ selector: 'libs_ui-components-inputs-quill2x-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent], template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),Arial,sans-serif!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"] }]
56
56
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3F1aWxsMngtcHJldmlldy9zcmMvaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3F1aWxsMngtcHJldmlldy9zcmMvaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVzdCLE1BQU0sT0FBTyw2Q0FBNkM7SUFDeEQsa0JBQWtCO0lBQ1Isc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ08sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLGdCQUFnQixJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDTyxXQUFXLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9DLFdBQVc7SUFDWCxnQkFBZ0I7SUFDTixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLFdBQVc7SUFDWCxlQUFlO0lBQ04sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxjQUFjLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDakMsTUFBTSxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzFCLHVCQUF1QixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzNDLFNBQVMsR0FBRyxLQUFLLENBQTZCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0YsbUJBQW1CLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDdEMsbUJBQW1CLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDL0MsV0FBVztJQUNYLG1CQUFtQjtJQUNWLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFdBQVc7SUFFWCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzt3R0E3Q1UsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMscXdDQ2hCMUQsc3hCQW1CQSxpL0NETFksNEJBQTRCLGdFQUFFLFNBQVMsOENBQUUsc0NBQXNDOzs0RkFFOUUsNkNBQTZDO2tCQVR6RCxTQUFTOytCQUVFLDJDQUEyQyxjQUN6QyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUgfSBmcm9tICdAbGlicy11aS9waXBlcy1zZWN1cml0eS10cnVzdCc7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXF1aWxsMngtcHJldmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dHMtcXVpbGwyeC1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2lucHV0cy1xdWlsbDJ4LXByZXZpZXcuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0xpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUsIEFzeW5jUGlwZSwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzUXVpbGwyeFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLy9yZWdpb24gUHJvdGVjdGVkXG4gIHByb3RlY3RlZCBjb250YWluZXJTdHlsZUNvbXB1dGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmhhc1Nob3dNb3JlKCkgJiYgIXRoaXMuZXhwYW5kKCkpIHtcbiAgICAgIHJldHVybiB7ICdtYXgtaGVpZ2h0JzogYCR7dGhpcy5tYXhIZWlnaHQoKX1weGAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH0pO1xuICBwcm90ZWN0ZWQgY29udGFpbmVyQ2xhc3NDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5oYXNTaG93TW9yZSgpICYmICF0aGlzLmV4cGFuZCgpKSB7XG4gICAgICByZXR1cm4gYHFsLWNvbnRhaW5lciAke3RoaXMuY29udGFpbmVyQ2xhc3MoKSB8fCAnJ30gb3ZlcmZsb3ctaGlkZGVuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYHFsLWNvbnRhaW5lciAke3RoaXMuY29udGFpbmVyQ2xhc3MoKSB8fCAnJ31gO1xuICB9KTtcbiAgcHJvdGVjdGVkIGhhc1Nob3dNb3JlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gUHJpdmF0ZVxuICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gSW5wdXRzXG4gIHJlYWRvbmx5IGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNvbnRhaW5lckNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBleHBhbmQgPSBtb2RlbDxib29sZWFuPigpO1xuICByZWFkb25seSBoYXNCdXR0b25Db2xsYXBzZUV4cGFuZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG1heEhlaWdodCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgdW5kZWZpbmVkPigxNjAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDE2MCB9KTtcbiAgcmVhZG9ubHkgbGFiZWxCdXR0b25Db2xsYXBzZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbGFiZWxCdXR0b25WaWV3TW9yZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gVmlldyBjaGlsZFxuICByZWFkb25seSBwcmV2aWV3UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdwcmV2aWV3Jyk7XG4gIC8vZW5kcmVnaW9uXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5oYXNCdXR0b25Db2xsYXBzZUV4cGFuZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDI1MClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhc1Nob3dNb3JlLnNldCh0aGlzLnByZXZpZXdSZWYoKS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA+IHRoaXMubWF4SGVpZ2h0KCkgKyAyOCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFeHBhbmQoKSB7XG4gICAgdGhpcy5leHBhbmQudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdlxuICAjcHJldmlld1xuICBjbGFzcz1cInJlbGF0aXZlXCI+XG4gIDxkaXZcbiAgICBbc3R5bGVdPVwiY29udGFpbmVyU3R5bGVDb21wdXRlZCgpXCJcbiAgICBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NDb21wdXRlZCgpXCJcbiAgICBbaW5uZXJIVE1MXT1cImRhdGEoKSB8IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGU6ICdodG1sJyA6IHRydWUgfCBhc3luY1wiPjwvZGl2PlxuICBAaWYgKGhhc1Nob3dNb3JlKCkgJiYgIWV4cGFuZCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS1bMjhweF0gdy1mdWxsIGgtWzQwcHhdIG9wYWNpdHktWzAuNV0gYmctW2xpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgyNTUsMjU1LDI1NSwwKV8wJSxyZ2JhKDI1NSwyNTUsMjU1LDAuOTUpXzUxLjU2JSwjZmZmXzEwMCUpXVwiPjwvZGl2PlxuICB9XG4gIEBpZiAoaGFzU2hvd01vcmUoKSkge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAgICAgIFtzaXplQnV0dG9uXT1cIidzbWFsbGVyJ1wiXG4gICAgICBbdHlwZV09XCInYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgW2xhYmVsXT1cImV4cGFuZCgpID8gbGFiZWxCdXR0b25Db2xsYXBzZSgpIHx8ICdpMThuX2NvbGxhcHNlJyA6IGxhYmVsQnV0dG9uVmlld01vcmUoKSB8fCAnaTE4bl92aWV3X21vcmUnXCJcbiAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyFwLTAgbXQtWzEycHhdJ1wiXG4gICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckV4cGFuZCgpXCIgLz5cbiAgfVxuPC9kaXY+XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3F1aWxsMngtcHJldmlldy9zcmMvaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3F1aWxsMngtcHJldmlldy9zcmMvaW5wdXRzLXF1aWxsMngtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVzdCLE1BQU0sT0FBTyw2Q0FBNkM7SUFDeEQsa0JBQWtCO0lBQ1Isc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ08sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLGdCQUFnQixJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDTyxXQUFXLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9DLFdBQVc7SUFDWCxnQkFBZ0I7SUFDTixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLFdBQVc7SUFDWCxlQUFlO0lBQ04sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxjQUFjLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDakMsTUFBTSxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzFCLHVCQUF1QixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzNDLFNBQVMsR0FBRyxLQUFLLENBQTZCLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0YsbUJBQW1CLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDdEMsbUJBQW1CLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDL0MsV0FBVztJQUNYLG1CQUFtQjtJQUNWLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFdBQVc7SUFFWCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzt3R0E3Q1UsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMscXdDQ2hCMUQsc3hCQW1CQSx3L0NETFksNEJBQTRCLGdFQUFFLFNBQVMsOENBQUUsc0NBQXNDOzs0RkFFOUUsNkNBQTZDO2tCQVR6RCxTQUFTOytCQUVFLDJDQUEyQyxjQUN6QyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUgfSBmcm9tICdAbGlicy11aS9waXBlcy1zZWN1cml0eS10cnVzdCc7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXF1aWxsMngtcHJldmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dHMtcXVpbGwyeC1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2lucHV0cy1xdWlsbDJ4LXByZXZpZXcuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0xpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUsIEFzeW5jUGlwZSwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzUXVpbGwyeFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLy9yZWdpb24gUHJvdGVjdGVkXG4gIHByb3RlY3RlZCBjb250YWluZXJTdHlsZUNvbXB1dGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmhhc1Nob3dNb3JlKCkgJiYgIXRoaXMuZXhwYW5kKCkpIHtcbiAgICAgIHJldHVybiB7ICdtYXgtaGVpZ2h0JzogYCR7dGhpcy5tYXhIZWlnaHQoKX1weGAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH0pO1xuICBwcm90ZWN0ZWQgY29udGFpbmVyQ2xhc3NDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5oYXNTaG93TW9yZSgpICYmICF0aGlzLmV4cGFuZCgpKSB7XG4gICAgICByZXR1cm4gYHFsLWNvbnRhaW5lciAke3RoaXMuY29udGFpbmVyQ2xhc3MoKSB8fCAnJ30gb3ZlcmZsb3ctaGlkZGVuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYHFsLWNvbnRhaW5lciAke3RoaXMuY29udGFpbmVyQ2xhc3MoKSB8fCAnJ31gO1xuICB9KTtcbiAgcHJvdGVjdGVkIGhhc1Nob3dNb3JlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gUHJpdmF0ZVxuICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gSW5wdXRzXG4gIHJlYWRvbmx5IGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNvbnRhaW5lckNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBleHBhbmQgPSBtb2RlbDxib29sZWFuPigpO1xuICByZWFkb25seSBoYXNCdXR0b25Db2xsYXBzZUV4cGFuZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG1heEhlaWdodCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgdW5kZWZpbmVkPigxNjAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDE2MCB9KTtcbiAgcmVhZG9ubHkgbGFiZWxCdXR0b25Db2xsYXBzZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbGFiZWxCdXR0b25WaWV3TW9yZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgLy9lbmRyZWdpb25cbiAgLy9yZWdpb24gVmlldyBjaGlsZFxuICByZWFkb25seSBwcmV2aWV3UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdwcmV2aWV3Jyk7XG4gIC8vZW5kcmVnaW9uXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5oYXNCdXR0b25Db2xsYXBzZUV4cGFuZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDI1MClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhc1Nob3dNb3JlLnNldCh0aGlzLnByZXZpZXdSZWYoKS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA+IHRoaXMubWF4SGVpZ2h0KCkgKyAyOCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFeHBhbmQoKSB7XG4gICAgdGhpcy5leHBhbmQudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdlxuICAjcHJldmlld1xuICBjbGFzcz1cInJlbGF0aXZlXCI+XG4gIDxkaXZcbiAgICBbc3R5bGVdPVwiY29udGFpbmVyU3R5bGVDb21wdXRlZCgpXCJcbiAgICBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NDb21wdXRlZCgpXCJcbiAgICBbaW5uZXJIVE1MXT1cImRhdGEoKSB8IExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGU6ICdodG1sJyA6IHRydWUgfCBhc3luY1wiPjwvZGl2PlxuICBAaWYgKGhhc1Nob3dNb3JlKCkgJiYgIWV4cGFuZCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS1bMjhweF0gdy1mdWxsIGgtWzQwcHhdIG9wYWNpdHktWzAuNV0gYmctW2xpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgyNTUsMjU1LDI1NSwwKV8wJSxyZ2JhKDI1NSwyNTUsMjU1LDAuOTUpXzUxLjU2JSwjZmZmXzEwMCUpXVwiPjwvZGl2PlxuICB9XG4gIEBpZiAoaGFzU2hvd01vcmUoKSkge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAgICAgIFtzaXplQnV0dG9uXT1cIidzbWFsbGVyJ1wiXG4gICAgICBbdHlwZV09XCInYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgW2xhYmVsXT1cImV4cGFuZCgpID8gbGFiZWxCdXR0b25Db2xsYXBzZSgpIHx8ICdpMThuX2NvbGxhcHNlJyA6IGxhYmVsQnV0dG9uVmlld01vcmUoKSB8fCAnaTE4bl92aWV3X21vcmUnXCJcbiAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyFwLTAgbXQtWzEycHhdJ1wiXG4gICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckV4cGFuZCgpXCIgLz5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { AsyncPipe } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { computed, signal, inject, DestroyRef, input, model, viewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { computed, signal, inject, DestroyRef, input, model, viewChild, Component, ChangeDetectionStrategy } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
6
6
  import { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';
@@ -49,11 +49,11 @@ class LibsUiComponentsInputsQuill2xPreviewComponent {
49
49
  this.expand.update((value) => !value);
50
50
  }
51
51
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsQuill2xPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsInputsQuill2xPreviewComponent, isStandalone: true, selector: "libs_ui-components-inputs-quill2x-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, hasButtonCollapseExpand: { classPropertyName: "hasButtonCollapseExpand", publicName: "hasButtonCollapseExpand", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, labelButtonCollapse: { classPropertyName: "labelButtonCollapse", publicName: "labelButtonCollapse", isSignal: true, isRequired: false, transformFunction: null }, labelButtonViewMore: { classPropertyName: "labelButtonViewMore", publicName: "labelButtonViewMore", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expand: "expandChange" }, viewQueries: [{ propertyName: "previewRef", first: true, predicate: ["preview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),\"Arial\"!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"], dependencies: [{ kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsInputsQuill2xPreviewComponent, isStandalone: true, selector: "libs_ui-components-inputs-quill2x-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, hasButtonCollapseExpand: { classPropertyName: "hasButtonCollapseExpand", publicName: "hasButtonCollapseExpand", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, labelButtonCollapse: { classPropertyName: "labelButtonCollapse", publicName: "labelButtonCollapse", isSignal: true, isRequired: false, transformFunction: null }, labelButtonViewMore: { classPropertyName: "labelButtonViewMore", publicName: "labelButtonViewMore", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expand: "expandChange" }, viewQueries: [{ propertyName: "previewRef", first: true, predicate: ["preview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),Arial,sans-serif!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"], dependencies: [{ kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsInputsQuill2xPreviewComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'libs_ui-components-inputs-quill2x-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent], template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),\"Arial\"!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"] }]
56
+ args: [{ selector: 'libs_ui-components-inputs-quill2x-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent], template: "<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ql-container{font-family:var(--libs-ui-font-family-name),Arial,sans-serif!important;font-weight:400;height:auto}:host ::ng-deep .ql-container ol,:host ::ng-deep .ql-container ul{list-style:none!important;padding-left:0!important;margin-left:0!important}:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li{list-style-type:none!important}:host ::ng-deep .ql-container li,:host ::ng-deep .ql-container ol li,:host ::ng-deep .ql-container ul li,:host ::ng-deep .ql-container li[data-list]{counter-reset:none!important;counter-increment:none!important;counter-set:none!important}@supports (counter-set: none){:host ::ng-deep .ql-container li[data-list]{counter-set:none!important}}:host ::ng-deep .ql-container ol li:not(.ql-direction-rtl){counter-increment:none!important}:host ::ng-deep .ql-container ol{counter-reset:my-counter 0!important}:host ::ng-deep .ql-container ol>li[data-list=ordered]{counter-increment:my-counter 1!important;position:relative;padding-left:8px}:host ::ng-deep .ql-container ol>li[data-list=ordered]:before{content:counter(my-counter) \". \"}:host ::ng-deep .ql-container ol li span:before{content:\"\"!important}:host ::ng-deep .ql-container ol li[data-list=bullet]:before{content:\"\\2022 \"!important}:host ::ng-deep .ql-container ol li[data-list=unchecked]:before{content:\"\\2610 \"!important}:host ::ng-deep .ql-container ol li[data-list=checked]:before{content:\"\\2611 \"!important}\n"] }]
57
57
  }] });
58
58
 
59
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-quill2x-preview.mjs","sources":["../../../../../../libs-ui/components/inputs/quill2x-preview/src/inputs-quill2x-preview.component.ts","../../../../../../libs-ui/components/inputs/quill2x-preview/src/inputs-quill2x-preview.component.html","../../../../../../libs-ui/components/inputs/quill2x-preview/src/libs-ui-components-inputs-quill2x-preview.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, computed, DestroyRef, ElementRef, inject, input, model, signal, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';\nimport { timer } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill2x-preview',\n standalone: true,\n templateUrl: './inputs-quill2x-preview.component.html',\n styleUrl: './inputs-quill2x-preview.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent],\n})\nexport class LibsUiComponentsInputsQuill2xPreviewComponent implements AfterViewInit {\n //region Protected\n protected containerStyleComputed = computed(() => {\n if (this.hasShowMore() && !this.expand()) {\n return { 'max-height': `${this.maxHeight()}px` };\n }\n\n return {};\n });\n protected containerClassComputed = computed(() => {\n if (this.hasShowMore() && !this.expand()) {\n return `ql-container ${this.containerClass() || ''} overflow-hidden`;\n }\n\n return `ql-container ${this.containerClass() || ''}`;\n });\n protected hasShowMore = signal<boolean>(false);\n //endregion\n //region Private\n protected destroyRef = inject(DestroyRef);\n //endregion\n //region Inputs\n readonly data = input.required<string>();\n readonly containerClass = input<string>();\n readonly expand = model<boolean>();\n readonly hasButtonCollapseExpand = input<boolean>();\n readonly maxHeight = input<number, number | undefined>(160, { transform: (value) => value || 160 });\n readonly labelButtonCollapse = input<string>();\n readonly labelButtonViewMore = input<string>();\n //endregion\n //region View child\n readonly previewRef = viewChild.required<ElementRef>('preview');\n //endregion\n\n ngAfterViewInit() {\n if (!this.hasButtonCollapseExpand()) {\n return;\n }\n timer(250)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.hasShowMore.set(this.previewRef().nativeElement.offsetHeight > this.maxHeight() + 28));\n }\n\n protected handlerExpand() {\n this.expand.update((value) => !value);\n }\n}\n","<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\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-inputs-quill2x-preview.mjs","sources":["../../../../../../libs-ui/components/inputs/quill2x-preview/src/inputs-quill2x-preview.component.ts","../../../../../../libs-ui/components/inputs/quill2x-preview/src/inputs-quill2x-preview.component.html","../../../../../../libs-ui/components/inputs/quill2x-preview/src/libs-ui-components-inputs-quill2x-preview.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, computed, DestroyRef, ElementRef, inject, input, model, signal, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';\nimport { timer } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill2x-preview',\n standalone: true,\n templateUrl: './inputs-quill2x-preview.component.html',\n styleUrl: './inputs-quill2x-preview.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiPipesSecurityTrustPipe, AsyncPipe, LibsUiComponentsButtonsButtonComponent],\n})\nexport class LibsUiComponentsInputsQuill2xPreviewComponent implements AfterViewInit {\n //region Protected\n protected containerStyleComputed = computed(() => {\n if (this.hasShowMore() && !this.expand()) {\n return { 'max-height': `${this.maxHeight()}px` };\n }\n\n return {};\n });\n protected containerClassComputed = computed(() => {\n if (this.hasShowMore() && !this.expand()) {\n return `ql-container ${this.containerClass() || ''} overflow-hidden`;\n }\n\n return `ql-container ${this.containerClass() || ''}`;\n });\n protected hasShowMore = signal<boolean>(false);\n //endregion\n //region Private\n protected destroyRef = inject(DestroyRef);\n //endregion\n //region Inputs\n readonly data = input.required<string>();\n readonly containerClass = input<string>();\n readonly expand = model<boolean>();\n readonly hasButtonCollapseExpand = input<boolean>();\n readonly maxHeight = input<number, number | undefined>(160, { transform: (value) => value || 160 });\n readonly labelButtonCollapse = input<string>();\n readonly labelButtonViewMore = input<string>();\n //endregion\n //region View child\n readonly previewRef = viewChild.required<ElementRef>('preview');\n //endregion\n\n ngAfterViewInit() {\n if (!this.hasButtonCollapseExpand()) {\n return;\n }\n timer(250)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.hasShowMore.set(this.previewRef().nativeElement.offsetHeight > this.maxHeight() + 28));\n }\n\n protected handlerExpand() {\n this.expand.update((value) => !value);\n }\n}\n","<div\n #preview\n class=\"relative\">\n <div\n [style]=\"containerStyleComputed()\"\n [class]=\"containerClassComputed()\"\n [innerHTML]=\"data() | LibsUiPipesSecurityTrustPipe: 'html' : true | async\"></div>\n @if (hasShowMore() && !expand()) {\n <div class=\"absolute bottom-[28px] w-full h-[40px] opacity-[0.5] bg-[linear-gradient(180deg,rgba(255,255,255,0)_0%,rgba(255,255,255,0.95)_51.56%,#fff_100%)]\"></div>\n }\n @if (hasShowMore()) {\n <libs_ui-components-buttons-button\n [sizeButton]=\"'smaller'\"\n [type]=\"'button-link-primary'\"\n [label]=\"expand() ? labelButtonCollapse() || 'i18n_collapse' : labelButtonViewMore() || 'i18n_view_more'\"\n [classInclude]=\"'!p-0 mt-[12px]'\"\n (outClick)=\"handlerExpand()\" />\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-quill2x-preview",
3
- "version": "0.2.356-8",
3
+ "version": "0.2.357-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
- "@angular/core": "^18.2.0"
6
+ "@angular/core": "^18.2.0",
7
+ "@libs-ui/components-buttons-button": "0.2.357-0",
8
+ "@libs-ui/pipes-security-trust": "0.2.357-0",
9
+ "rxjs": "~7.8.0"
7
10
  },
8
11
  "sideEffects": false,
9
12
  "module": "fesm2022/libs-ui-components-inputs-quill2x-preview.mjs",