@edsis/ui 0.0.2 → 21.3.6
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/empty/README.md +1 -1
- package/fesm2022/edsis-ui-accordion.mjs +15 -15
- package/fesm2022/edsis-ui-alert-dialog.mjs +27 -27
- package/fesm2022/edsis-ui-alert.mjs +12 -12
- package/fesm2022/edsis-ui-aspect-ratio.mjs +3 -3
- package/fesm2022/edsis-ui-avatar.mjs +18 -18
- package/fesm2022/edsis-ui-badge.mjs +3 -3
- package/fesm2022/edsis-ui-breadcrumb.mjs +21 -21
- package/fesm2022/edsis-ui-button-group.mjs +9 -9
- package/fesm2022/edsis-ui-button.mjs +3 -3
- package/fesm2022/edsis-ui-calendar.mjs +3 -3
- package/fesm2022/edsis-ui-card.mjs +21 -21
- package/fesm2022/edsis-ui-carousel.mjs +18 -18
- package/fesm2022/edsis-ui-chart.mjs +80 -78
- package/fesm2022/edsis-ui-chart.mjs.map +1 -1
- package/fesm2022/edsis-ui-checkbox.mjs +3 -3
- package/fesm2022/edsis-ui-collapsible.mjs +12 -12
- package/fesm2022/edsis-ui-combobox.mjs +3 -3
- package/fesm2022/edsis-ui-command.mjs +41 -35
- package/fesm2022/edsis-ui-command.mjs.map +1 -1
- package/fesm2022/edsis-ui-composer.mjs +21 -21
- package/fesm2022/edsis-ui-context-menu.mjs +13 -7
- package/fesm2022/edsis-ui-context-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-date-picker.mjs +3 -3
- package/fesm2022/edsis-ui-dialog.mjs +27 -23
- package/fesm2022/edsis-ui-dialog.mjs.map +1 -1
- package/fesm2022/edsis-ui-dropdown-menu.mjs +58 -46
- package/fesm2022/edsis-ui-dropdown-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-editor.mjs +22 -20
- package/fesm2022/edsis-ui-editor.mjs.map +1 -1
- package/fesm2022/edsis-ui-empty.mjs +18 -18
- package/fesm2022/edsis-ui-form.mjs +38 -38
- package/fesm2022/edsis-ui-form.mjs.map +1 -1
- package/fesm2022/edsis-ui-hover-card.mjs +34 -13
- package/fesm2022/edsis-ui-hover-card.mjs.map +1 -1
- package/fesm2022/edsis-ui-input-group.mjs +18 -18
- package/fesm2022/edsis-ui-input-otp.mjs +15 -15
- package/fesm2022/edsis-ui-input.mjs +3 -3
- package/fesm2022/edsis-ui-item.mjs +30 -30
- package/fesm2022/edsis-ui-kanban.mjs +27 -27
- package/fesm2022/edsis-ui-kbd.mjs +6 -6
- package/fesm2022/edsis-ui-label.mjs +3 -3
- package/fesm2022/edsis-ui-layout-services.mjs +6 -0
- package/fesm2022/edsis-ui-layout-services.mjs.map +1 -0
- package/fesm2022/edsis-ui-layout-types.mjs +6 -0
- package/fesm2022/edsis-ui-layout-types.mjs.map +1 -0
- package/fesm2022/edsis-ui-layout.mjs +572 -0
- package/fesm2022/edsis-ui-layout.mjs.map +1 -0
- package/fesm2022/edsis-ui-menubar.mjs +22 -16
- package/fesm2022/edsis-ui-menubar.mjs.map +1 -1
- package/fesm2022/edsis-ui-native-select.mjs +9 -9
- package/fesm2022/edsis-ui-nav-service.mjs +343 -0
- package/fesm2022/edsis-ui-nav-service.mjs.map +1 -0
- package/fesm2022/edsis-ui-nav.mjs +2340 -0
- package/fesm2022/edsis-ui-nav.mjs.map +1 -0
- package/fesm2022/edsis-ui-navigation-menu.mjs +30 -24
- package/fesm2022/edsis-ui-navigation-menu.mjs.map +1 -1
- package/fesm2022/edsis-ui-page.mjs +397 -0
- package/fesm2022/edsis-ui-page.mjs.map +1 -0
- package/fesm2022/edsis-ui-pagination.mjs +3 -3
- package/fesm2022/edsis-ui-pillbox.mjs +16 -16
- package/fesm2022/edsis-ui-pillbox.mjs.map +1 -1
- package/fesm2022/edsis-ui-popover.mjs +16 -10
- package/fesm2022/edsis-ui-popover.mjs.map +1 -1
- package/fesm2022/edsis-ui-progress.mjs +3 -3
- package/fesm2022/edsis-ui-radio.mjs +6 -6
- package/fesm2022/edsis-ui-resizable.mjs +12 -12
- package/fesm2022/edsis-ui-scroll-area.mjs +3 -3
- package/fesm2022/edsis-ui-select.mjs +6 -6
- package/fesm2022/edsis-ui-separator.mjs +3 -3
- package/fesm2022/edsis-ui-sheet.mjs +27 -23
- package/fesm2022/edsis-ui-sheet.mjs.map +1 -1
- package/fesm2022/edsis-ui-skeleton.mjs +3 -3
- package/fesm2022/edsis-ui-slider.mjs +6 -6
- package/fesm2022/edsis-ui-spinner.mjs +3 -3
- package/fesm2022/edsis-ui-switch.mjs +3 -3
- package/fesm2022/edsis-ui-table.mjs +24 -24
- package/fesm2022/edsis-ui-tabs.mjs +18 -18
- package/fesm2022/edsis-ui-textarea.mjs +3 -3
- package/fesm2022/edsis-ui-theme.mjs +209 -0
- package/fesm2022/edsis-ui-theme.mjs.map +1 -0
- package/fesm2022/edsis-ui-timeline.mjs +18 -18
- package/fesm2022/edsis-ui-toast.mjs +3 -3
- package/fesm2022/edsis-ui-toggle-group.mjs +9 -9
- package/fesm2022/edsis-ui-toggle.mjs +3 -3
- package/fesm2022/edsis-ui-tooltip.mjs +12 -12
- package/layout/README.md +454 -0
- package/nav/README.md +96 -0
- package/package.json +31 -2
- package/page/README.md +46 -0
- package/types/edsis-ui-command.d.ts +4 -1
- package/types/edsis-ui-context-menu.d.ts +2 -1
- package/types/edsis-ui-dropdown-menu.d.ts +4 -1
- package/types/edsis-ui-editor.d.ts +1 -0
- package/types/edsis-ui-hover-card.d.ts +3 -1
- package/types/edsis-ui-layout-services.d.ts +1 -0
- package/types/edsis-ui-layout-types.d.ts +1 -0
- package/types/edsis-ui-layout.d.ts +153 -0
- package/types/edsis-ui-menubar.d.ts +2 -0
- package/types/edsis-ui-nav-service.d.ts +138 -0
- package/types/edsis-ui-nav.d.ts +205 -0
- package/types/edsis-ui-navigation-menu.d.ts +2 -0
- package/types/edsis-ui-page.d.ts +137 -0
- package/types/edsis-ui-popover.d.ts +2 -1
- package/types/edsis-ui-theme.d.ts +71 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, booleanAttribute, output, computed, ChangeDetectionStrategy, Component, inject, ElementRef, signal, forwardRef } from '@angular/core';
|
|
3
|
+
import { input, booleanAttribute, output, computed, ChangeDetectionStrategy, Component, inject, ElementRef, signal, SecurityContext, forwardRef } from '@angular/core';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
6
|
import { cn } from '@edsis/ui/utils';
|
|
6
7
|
|
|
7
8
|
const DEFAULT_EDITOR_TOOLBAR = 'heading | bold italic underline strike | bullet ordered blockquote link align ~ undo redo';
|
|
@@ -113,8 +114,8 @@ class EditorComponent {
|
|
|
113
114
|
this.content = null;
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
117
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
117
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EditorComponent, isStandalone: true, selector: "ui-editor", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { commandSelected: "commandSelected" }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor\"", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.inert": "disabled() ? \"\" : null" } }, ngImport: i0, template: `
|
|
118
119
|
<div
|
|
119
120
|
data-slot="editor-shell"
|
|
120
121
|
[class]="shellClasses()"
|
|
@@ -125,7 +126,7 @@ class EditorComponent {
|
|
|
125
126
|
</div>
|
|
126
127
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
127
128
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorComponent, decorators: [{
|
|
129
130
|
type: Component,
|
|
130
131
|
args: [{
|
|
131
132
|
selector: 'ui-editor',
|
|
@@ -178,8 +179,8 @@ class EditorToolbarComponent {
|
|
|
178
179
|
}
|
|
179
180
|
return part.track;
|
|
180
181
|
}
|
|
181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
182
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EditorToolbarComponent, isStandalone: true, selector: "ui-editor-toolbar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-toolbar\"", "attr.aria-label": "ariaLabel()", "attr.data-disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: `
|
|
183
184
|
@for (part of parts(); track trackPart(part, $index)) {
|
|
184
185
|
@switch (part.type) {
|
|
185
186
|
@case ('heading') {
|
|
@@ -261,7 +262,7 @@ class EditorToolbarComponent {
|
|
|
261
262
|
<ng-content />
|
|
262
263
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
263
264
|
}
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorToolbarComponent, decorators: [{
|
|
265
266
|
type: Component,
|
|
266
267
|
args: [{
|
|
267
268
|
selector: 'ui-editor-toolbar',
|
|
@@ -375,10 +376,10 @@ class EditorButtonComponent {
|
|
|
375
376
|
preserveSelection(event) {
|
|
376
377
|
event.preventDefault();
|
|
377
378
|
}
|
|
378
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
379
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
379
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
380
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EditorButtonComponent, isStandalone: true, selector: "button[ui-editor-button]", inputs: { command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "mousedown": "preserveSelection($event)", "click": "handleClick($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-button\"", "attr.title": "tooltip() || null", "attr.aria-pressed": "pressed() === null ? null : pressed()", "disabled": "disabled() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
380
381
|
}
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorButtonComponent, decorators: [{
|
|
382
383
|
type: Component,
|
|
383
384
|
args: [{
|
|
384
385
|
selector: 'button[ui-editor-button]',
|
|
@@ -399,10 +400,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
399
400
|
class EditorSeparatorComponent {
|
|
400
401
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
401
402
|
classes = computed(() => cn('mx-1 h-6 w-px shrink-0 bg-border', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
402
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
403
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
403
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
404
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EditorSeparatorComponent, isStandalone: true, selector: "ui-editor-separator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator", "aria-orientation": "vertical" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-separator\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
404
405
|
}
|
|
405
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorSeparatorComponent, decorators: [{
|
|
406
407
|
type: Component,
|
|
407
408
|
args: [{
|
|
408
409
|
selector: 'ui-editor-separator',
|
|
@@ -419,10 +420,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
419
420
|
class EditorSpacerComponent {
|
|
420
421
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
421
422
|
classes = computed(() => cn('min-w-2 flex-1', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
422
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
423
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
424
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EditorSpacerComponent, isStandalone: true, selector: "ui-editor-spacer", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor-spacer\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
424
425
|
}
|
|
425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorSpacerComponent, decorators: [{
|
|
426
427
|
type: Component,
|
|
427
428
|
args: [{
|
|
428
429
|
selector: 'ui-editor-spacer',
|
|
@@ -438,6 +439,7 @@ class EditorContentComponent {
|
|
|
438
439
|
el = inject(ElementRef);
|
|
439
440
|
editor = inject(EditorComponent, { optional: true });
|
|
440
441
|
document = inject(DOCUMENT);
|
|
442
|
+
sanitizer = inject(DomSanitizer);
|
|
441
443
|
placeholder = input('Write something...', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
442
444
|
ariaLabel = input('Rich text editor', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
443
445
|
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled', transform: booleanAttribute });
|
|
@@ -458,7 +460,7 @@ class EditorContentComponent {
|
|
|
458
460
|
this.editor?.unregisterContent(this);
|
|
459
461
|
}
|
|
460
462
|
writeValue(value) {
|
|
461
|
-
this.el.nativeElement.innerHTML = value ?? '';
|
|
463
|
+
this.el.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, value ?? '') ?? '';
|
|
462
464
|
queueMicrotask(() => this.syncEmptyState());
|
|
463
465
|
}
|
|
464
466
|
registerOnChange(fn) {
|
|
@@ -642,8 +644,8 @@ class EditorContentComponent {
|
|
|
642
644
|
return null;
|
|
643
645
|
}
|
|
644
646
|
}
|
|
645
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
646
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
647
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
648
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EditorContentComponent, isStandalone: true, selector: "ui-editor-content", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "handleInput()", "blur": "handleBlur()", "keydown": "handleKeydown($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-content\"", "attr.contenteditable": "disabled() ? \"false\" : \"true\"", "attr.role": "\"textbox\"", "attr.aria-multiline": "\"true\"", "attr.aria-label": "ariaLabel()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.data-empty": "empty() ? \"true\" : null", "attr.data-placeholder": "placeholder()", "attr.tabindex": "disabled() ? null : \"0\"" } }, providers: [
|
|
647
649
|
{
|
|
648
650
|
provide: NG_VALUE_ACCESSOR,
|
|
649
651
|
useExisting: forwardRef(() => EditorContentComponent),
|
|
@@ -651,7 +653,7 @@ class EditorContentComponent {
|
|
|
651
653
|
},
|
|
652
654
|
], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
653
655
|
}
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EditorContentComponent, decorators: [{
|
|
655
657
|
type: Component,
|
|
656
658
|
args: [{
|
|
657
659
|
selector: 'ui-editor-content',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edsis-ui-editor.mjs","sources":["../../../library/ui/editor/editor.component.ts","../../../library/ui/editor/edsis-ui-editor.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cn } from '@edsis/ui/utils';\n\nexport type EditorCommand =\n | 'paragraph'\n | 'heading-1'\n | 'heading-2'\n | 'heading-3'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strike'\n | 'bullet'\n | 'ordered'\n | 'blockquote'\n | 'subscript'\n | 'superscript'\n | 'highlight'\n | 'link'\n | 'code'\n | 'align-left'\n | 'align-center'\n | 'align-right'\n | 'undo'\n | 'redo';\n\nexport type EditorCommandSource = 'api' | 'toolbar' | 'shortcut';\n\nexport interface EditorCommandEvent {\n readonly command: EditorCommand;\n readonly source: EditorCommandSource;\n readonly originalEvent?: Event;\n}\n\ntype EditorToolbarPart =\n | { readonly type: 'button'; readonly command: EditorCommand; readonly label: string; readonly ariaLabel: string }\n | { readonly type: 'heading'; readonly track: string }\n | { readonly type: 'align'; readonly track: string }\n | { readonly type: 'separator'; readonly track: string }\n | { readonly type: 'spacer'; readonly track: string };\n\nconst DEFAULT_EDITOR_TOOLBAR =\n 'heading | bold italic underline strike | bullet ordered blockquote link align ~ undo redo';\n\nconst EDITOR_BASE = 'block w-full min-w-0 text-sm text-foreground';\n\nconst EDITOR_SHELL_BASE = [\n 'relative min-w-0 overflow-hidden rounded-md border border-input bg-background shadow-sm',\n 'transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-1 focus-within:ring-ring',\n 'aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive',\n 'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst EDITOR_TOOLBAR_BASE = [\n 'flex min-h-11 min-w-0 flex-wrap items-center gap-1 border-b border-border/70 bg-muted/30 px-2 py-1.5',\n 'data-[disabled=true]:pointer-events-none',\n].join(' ');\n\nconst EDITOR_TOOL_BUTTON_BASE = [\n 'inline-flex size-8 shrink-0 items-center justify-center rounded-md text-sm font-medium text-muted-foreground',\n 'transition-colors hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'aria-pressed:bg-accent aria-pressed:text-accent-foreground',\n].join(' ');\n\nconst EDITOR_SELECT_BASE = [\n 'h-8 rounded-md border border-transparent bg-transparent px-2 text-sm font-medium text-muted-foreground outline-none',\n 'transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n].join(' ');\n\nconst EDITOR_CONTENT_BASE = [\n 'block min-h-[200px] max-h-[500px] w-full overflow-y-auto px-4 py-3 text-sm leading-6 outline-none',\n '[&_p]:my-2 [&_h1]:mb-2 [&_h1]:mt-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h2]:mb-2 [&_h2]:mt-4 [&_h2]:text-xl [&_h2]:font-semibold [&_h3]:mb-2 [&_h3]:mt-4 [&_h3]:text-lg [&_h3]:font-semibold',\n '[&_blockquote]:my-3 [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground [&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-6 [&_pre]:my-3 [&_pre]:overflow-x-auto [&_pre]:rounded-md [&_pre]:bg-muted [&_pre]:p-3 [&_pre]:font-mono [&_pre]:text-xs',\n 'data-[empty=true]:before:pointer-events-none data-[empty=true]:before:text-muted-foreground data-[empty=true]:before:content-[attr(data-placeholder)]',\n 'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst toolbarButtons: Partial<Record<EditorCommand, { readonly label: string; readonly ariaLabel: string }>> = {\n bold: { label: 'B', ariaLabel: 'Bold' },\n italic: { label: 'I', ariaLabel: 'Italic' },\n underline: { label: 'U', ariaLabel: 'Underline' },\n strike: { label: 'S', ariaLabel: 'Strikethrough' },\n bullet: { label: 'UL', ariaLabel: 'Bulleted list' },\n ordered: { label: '1.', ariaLabel: 'Numbered list' },\n blockquote: { label: 'Q', ariaLabel: 'Block quote' },\n subscript: { label: 'Sub', ariaLabel: 'Subscript' },\n superscript: { label: 'Sup', ariaLabel: 'Superscript' },\n highlight: { label: 'H', ariaLabel: 'Highlight' },\n link: { label: 'Link', ariaLabel: 'Insert link' },\n code: { label: '</>', ariaLabel: 'Code block' },\n undo: { label: 'Undo', ariaLabel: 'Undo' },\n redo: { label: 'Redo', ariaLabel: 'Redo' },\n};\n\nconst toolbarItemAliases: Record<string, EditorCommand> = {\n bold: 'bold',\n italic: 'italic',\n strike: 'strike',\n underline: 'underline',\n bullet: 'bullet',\n ordered: 'ordered',\n blockquote: 'blockquote',\n subscript: 'subscript',\n superscript: 'superscript',\n highlight: 'highlight',\n link: 'link',\n code: 'code',\n undo: 'undo',\n redo: 'redo',\n};\n\nconst parseToolbarItems = (items: string): EditorToolbarPart[] => {\n const tokens = items.split(/\\s+/).filter(Boolean);\n\n return tokens.flatMap((token, index): EditorToolbarPart[] => {\n if (token === '|') {\n return [{ type: 'separator', track: `separator-${index}` }];\n }\n\n if (token === '~') {\n return [{ type: 'spacer', track: `spacer-${index}` }];\n }\n\n if (token === 'heading') {\n return [{ type: 'heading', track: `heading-${index}` }];\n }\n\n if (token === 'align') {\n return [{ type: 'align', track: `align-${index}` }];\n }\n\n const command = toolbarItemAliases[token];\n const button = command ? toolbarButtons[command] : undefined;\n if (!command || !button) {\n return [];\n }\n\n return [{ type: 'button', command, label: button.label, ariaLabel: button.ariaLabel }];\n });\n};\n\n@Component({\n selector: 'ui-editor',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor\"',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-invalid]': 'invalid() ? \"true\" : null',\n '[attr.inert]': 'disabled() ? \"\" : null',\n },\n template: `\n <div\n data-slot=\"editor-shell\"\n [class]=\"shellClasses()\"\n [attr.data-disabled]=\"disabled() ? 'true' : null\"\n [attr.aria-invalid]=\"invalid() ? 'true' : null\">\n <ng-content select=\"ui-editor-toolbar\" />\n <ng-content select=\"ui-editor-content\" />\n </div>\n `,\n})\nexport class EditorComponent {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly class = input<string>('');\n\n readonly commandSelected = output<EditorCommandEvent>();\n\n private content: EditorContentComponent | null = null;\n\n protected readonly classes = computed(() => cn(EDITOR_BASE, this.class()));\n protected readonly shellClasses = computed(() => cn(EDITOR_SHELL_BASE));\n\n execute(command: EditorCommand, source: EditorCommandSource = 'api', originalEvent?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n this.content?.execute(command);\n this.commandSelected.emit({ command, source, originalEvent });\n }\n\n registerContent(content: EditorContentComponent): void {\n this.content = content;\n }\n\n unregisterContent(content: EditorContentComponent): void {\n if (this.content === content) {\n this.content = null;\n }\n }\n}\n\n@Component({\n selector: 'ui-editor-toolbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-toolbar\"',\n role: 'toolbar',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n },\n template: `\n @for (part of parts(); track trackPart(part, $index)) {\n @switch (part.type) {\n @case ('heading') {\n <select\n [class]=\"selectClasses\"\n [disabled]=\"disabled()\"\n aria-label=\"Text style\"\n (change)=\"handleSelect($event)\">\n <option value=\"paragraph\">Text</option>\n <option value=\"heading-1\">Heading 1</option>\n <option value=\"heading-2\">Heading 2</option>\n <option value=\"heading-3\">Heading 3</option>\n </select>\n }\n @case ('align') {\n <select\n [class]=\"selectClasses\"\n [disabled]=\"disabled()\"\n aria-label=\"Text alignment\"\n (change)=\"handleSelect($event)\">\n <option value=\"align-left\">Left</option>\n <option value=\"align-center\">Center</option>\n <option value=\"align-right\">Right</option>\n </select>\n }\n @case ('separator') {\n <span\n data-slot=\"editor-separator\"\n class=\"mx-1 h-6 w-px shrink-0 bg-border\"\n role=\"separator\"\n aria-orientation=\"vertical\"></span>\n }\n @case ('spacer') {\n <span data-slot=\"editor-spacer\" class=\"min-w-2 flex-1\"></span>\n }\n @case ('button') {\n <button\n type=\"button\"\n data-slot=\"editor-button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"part.ariaLabel\"\n [attr.title]=\"part.ariaLabel\"\n (mousedown)=\"preserveSelection($event)\"\n (click)=\"execute(part.command, $event)\">\n @if (part.command === 'undo') {\n <svg\n aria-hidden=\"true\"\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path d=\"M9 14 4 9l5-5\" />\n <path d=\"M4 9h10a6 6 0 0 1 0 12h-2\" />\n </svg>\n } @else if (part.command === 'redo') {\n <svg\n aria-hidden=\"true\"\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path d=\"m15 14 5-5-5-5\" />\n <path d=\"M20 9H10a6 6 0 0 0 0 12h2\" />\n </svg>\n } @else {\n <span aria-hidden=\"true\">{{ part.label }}</span>\n }\n </button>\n }\n }\n }\n <ng-content />\n `,\n})\nexport class EditorToolbarComponent {\n private readonly editor = inject(EditorComponent, { optional: true });\n\n readonly items = input(DEFAULT_EDITOR_TOOLBAR);\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly ariaLabel = input('Formatting', { alias: 'aria-label' });\n readonly class = input<string>('');\n\n protected readonly buttonClasses = EDITOR_TOOL_BUTTON_BASE;\n protected readonly selectClasses = EDITOR_SELECT_BASE;\n protected readonly disabled = computed(() => this.disabledInput() || this.editor?.disabled() === true);\n protected readonly parts = computed(() => parseToolbarItems(this.items()));\n protected readonly classes = computed(() => cn(EDITOR_TOOLBAR_BASE, this.class()));\n\n protected execute(command: EditorCommand, event: MouseEvent): void {\n this.editor?.execute(command, 'toolbar', event);\n }\n\n protected handleSelect(event: Event): void {\n const select = event.target as HTMLSelectElement;\n this.editor?.execute(select.value as EditorCommand, 'toolbar', event);\n select.selectedIndex = 0;\n }\n\n protected preserveSelection(event: MouseEvent): void {\n event.preventDefault();\n }\n\n protected trackPart(part: EditorToolbarPart, index: number): string {\n if (part.type === 'button') {\n return `${part.command}-${index}`;\n }\n\n return part.track;\n }\n}\n\n@Component({\n selector: 'button[ui-editor-button]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-button\"',\n '[attr.title]': 'tooltip() || null',\n '[attr.aria-pressed]': 'pressed() === null ? null : pressed()',\n '[disabled]': 'disabled() || null',\n type: 'button',\n '(mousedown)': 'preserveSelection($event)',\n '(click)': 'handleClick($event)',\n },\n template: `<ng-content />`,\n})\nexport class EditorButtonComponent {\n private readonly editor = inject(EditorComponent, { optional: true });\n\n readonly command = input<EditorCommand | null>(null);\n readonly pressed = input<boolean | null>(null);\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly tooltip = input<string>('');\n readonly class = input<string>('');\n\n protected readonly disabled = computed(() => this.disabledInput() || this.editor?.disabled() === true);\n protected readonly classes = computed(() => cn(EDITOR_TOOL_BUTTON_BASE, this.class()));\n\n protected handleClick(event: MouseEvent): void {\n const command = this.command();\n if (!command) {\n return;\n }\n\n this.editor?.execute(command, 'toolbar', event);\n }\n\n protected preserveSelection(event: MouseEvent): void {\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'ui-editor-separator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-separator\"',\n role: 'separator',\n 'aria-orientation': 'vertical',\n },\n template: '',\n})\nexport class EditorSeparatorComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('mx-1 h-6 w-px shrink-0 bg-border', this.class()));\n}\n\n@Component({\n selector: 'ui-editor-spacer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-spacer\"',\n },\n template: '',\n})\nexport class EditorSpacerComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('min-w-2 flex-1', this.class()));\n}\n\n@Component({\n selector: 'ui-editor-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorContentComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-content\"',\n '[attr.contenteditable]': 'disabled() ? \"false\" : \"true\"',\n '[attr.role]': '\"textbox\"',\n '[attr.aria-multiline]': '\"true\"',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-empty]': 'empty() ? \"true\" : null',\n '[attr.data-placeholder]': 'placeholder()',\n '[attr.tabindex]': 'disabled() ? null : \"0\"',\n '(input)': 'handleInput()',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeydown($event)',\n },\n template: `<ng-content />`,\n})\nexport class EditorContentComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly editor = inject(EditorComponent, { optional: true });\n private readonly document = inject(DOCUMENT);\n\n readonly placeholder = input('Write something...');\n readonly ariaLabel = input('Rich text editor', { alias: 'aria-label' });\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly invalidInput = input(false, { alias: 'aria-invalid', transform: booleanAttribute });\n readonly class = input<string>('');\n\n private readonly disabledState = signal(false);\n protected readonly empty = signal(true);\n protected readonly disabled = computed(\n () => this.disabledInput() || this.disabledState() || this.editor?.disabled() === true,\n );\n protected readonly invalid = computed(() => this.invalidInput() || this.editor?.invalid() === true);\n protected readonly classes = computed(() => cn(EDITOR_CONTENT_BASE, this.class()));\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngAfterViewInit(): void {\n this.editor?.registerContent(this);\n queueMicrotask(() => this.syncEmptyState());\n }\n\n ngOnDestroy(): void {\n this.editor?.unregisterContent(this);\n }\n\n writeValue(value: string | null): void {\n this.el.nativeElement.innerHTML = value ?? '';\n queueMicrotask(() => this.syncEmptyState());\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n execute(command: EditorCommand): void {\n if (this.disabled()) {\n return;\n }\n\n this.el.nativeElement.focus();\n\n switch (command) {\n case 'paragraph':\n this.exec('formatBlock', 'p');\n break;\n case 'heading-1':\n this.exec('formatBlock', 'h1');\n break;\n case 'heading-2':\n this.exec('formatBlock', 'h2');\n break;\n case 'heading-3':\n this.exec('formatBlock', 'h3');\n break;\n case 'bold':\n this.exec('bold');\n break;\n case 'italic':\n this.exec('italic');\n break;\n case 'underline':\n this.exec('underline');\n break;\n case 'strike':\n this.exec('strikeThrough');\n break;\n case 'bullet':\n this.exec('insertUnorderedList');\n break;\n case 'ordered':\n this.exec('insertOrderedList');\n break;\n case 'blockquote':\n this.exec('formatBlock', 'blockquote');\n break;\n case 'subscript':\n this.exec('subscript');\n break;\n case 'superscript':\n this.exec('superscript');\n break;\n case 'highlight':\n this.exec('backColor', '#fef08a');\n break;\n case 'link':\n this.exec('createLink', '#');\n break;\n case 'code':\n this.exec('formatBlock', 'pre');\n break;\n case 'align-left':\n this.exec('justifyLeft');\n break;\n case 'align-center':\n this.exec('justifyCenter');\n break;\n case 'align-right':\n this.exec('justifyRight');\n break;\n case 'undo':\n this.exec('undo');\n break;\n case 'redo':\n this.exec('redo');\n break;\n }\n\n this.handleInput();\n }\n\n focus(): void {\n this.el.nativeElement.focus();\n }\n\n protected handleInput(): void {\n this.syncEmptyState();\n this.onChange(this.el.nativeElement.innerHTML);\n }\n\n protected handleBlur(): void {\n this.onTouched();\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n const command = this.shortcutCommand(event);\n if (!command) {\n return;\n }\n\n event.preventDefault();\n if (this.editor) {\n this.editor.execute(command, 'shortcut', event);\n return;\n }\n\n this.execute(command);\n }\n\n private exec(command: string, value?: string): void {\n if (typeof this.document.execCommand !== 'function') {\n return;\n }\n\n this.document.execCommand(command, false, value);\n }\n\n private syncEmptyState(): void {\n const element = this.el.nativeElement;\n const html = element.innerHTML\n .replace(/<br\\s*\\/?\\>/gi, '')\n .replace(/ /g, '')\n .trim();\n const text = element.textContent?.replace(/\\u00a0/g, '').trim() ?? '';\n this.empty.set(html.length === 0 && text.length === 0);\n }\n\n private shortcutCommand(event: KeyboardEvent): EditorCommand | null {\n const modifier = event.metaKey || event.ctrlKey;\n if (!modifier) {\n return null;\n }\n\n const key = event.key.toLowerCase();\n\n if (event.altKey && !event.shiftKey) {\n if (key === '0') {\n return 'paragraph';\n }\n if (key === '1') {\n return 'heading-1';\n }\n if (key === '2') {\n return 'heading-2';\n }\n if (key === '3') {\n return 'heading-3';\n }\n }\n\n if (event.shiftKey && !event.altKey) {\n switch (key) {\n case 'x':\n return 'strike';\n case '7':\n return 'ordered';\n case '8':\n return 'bullet';\n case 'b':\n return 'blockquote';\n case 'h':\n return 'highlight';\n case 'l':\n return 'align-left';\n case 'e':\n return 'align-center';\n case 'r':\n return 'align-right';\n case 'z':\n return 'redo';\n }\n }\n\n if (event.altKey || event.shiftKey) {\n return null;\n }\n\n switch (key) {\n case 'b':\n return 'bold';\n case 'i':\n return 'italic';\n case 'u':\n return 'underline';\n case 'e':\n return 'code';\n case 'z':\n return 'undo';\n default:\n return null;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edsis-ui-editor.mjs","sources":["../../../library/ui/editor/editor.component.ts","../../../library/ui/editor/edsis-ui-editor.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n SecurityContext,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { cn } from '@edsis/ui/utils';\n\nexport type EditorCommand =\n | 'paragraph'\n | 'heading-1'\n | 'heading-2'\n | 'heading-3'\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strike'\n | 'bullet'\n | 'ordered'\n | 'blockquote'\n | 'subscript'\n | 'superscript'\n | 'highlight'\n | 'link'\n | 'code'\n | 'align-left'\n | 'align-center'\n | 'align-right'\n | 'undo'\n | 'redo';\n\nexport type EditorCommandSource = 'api' | 'toolbar' | 'shortcut';\n\nexport interface EditorCommandEvent {\n readonly command: EditorCommand;\n readonly source: EditorCommandSource;\n readonly originalEvent?: Event;\n}\n\ntype EditorToolbarPart =\n | { readonly type: 'button'; readonly command: EditorCommand; readonly label: string; readonly ariaLabel: string }\n | { readonly type: 'heading'; readonly track: string }\n | { readonly type: 'align'; readonly track: string }\n | { readonly type: 'separator'; readonly track: string }\n | { readonly type: 'spacer'; readonly track: string };\n\nconst DEFAULT_EDITOR_TOOLBAR =\n 'heading | bold italic underline strike | bullet ordered blockquote link align ~ undo redo';\n\nconst EDITOR_BASE = 'block w-full min-w-0 text-sm text-foreground';\n\nconst EDITOR_SHELL_BASE = [\n 'relative min-w-0 overflow-hidden rounded-md border border-input bg-background shadow-sm',\n 'transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-1 focus-within:ring-ring',\n 'aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive',\n 'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst EDITOR_TOOLBAR_BASE = [\n 'flex min-h-11 min-w-0 flex-wrap items-center gap-1 border-b border-border/70 bg-muted/30 px-2 py-1.5',\n 'data-[disabled=true]:pointer-events-none',\n].join(' ');\n\nconst EDITOR_TOOL_BUTTON_BASE = [\n 'inline-flex size-8 shrink-0 items-center justify-center rounded-md text-sm font-medium text-muted-foreground',\n 'transition-colors hover:bg-accent hover:text-accent-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'aria-pressed:bg-accent aria-pressed:text-accent-foreground',\n].join(' ');\n\nconst EDITOR_SELECT_BASE = [\n 'h-8 rounded-md border border-transparent bg-transparent px-2 text-sm font-medium text-muted-foreground outline-none',\n 'transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n].join(' ');\n\nconst EDITOR_CONTENT_BASE = [\n 'block min-h-[200px] max-h-[500px] w-full overflow-y-auto px-4 py-3 text-sm leading-6 outline-none',\n '[&_p]:my-2 [&_h1]:mb-2 [&_h1]:mt-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h2]:mb-2 [&_h2]:mt-4 [&_h2]:text-xl [&_h2]:font-semibold [&_h3]:mb-2 [&_h3]:mt-4 [&_h3]:text-lg [&_h3]:font-semibold',\n '[&_blockquote]:my-3 [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground [&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-6 [&_pre]:my-3 [&_pre]:overflow-x-auto [&_pre]:rounded-md [&_pre]:bg-muted [&_pre]:p-3 [&_pre]:font-mono [&_pre]:text-xs',\n 'data-[empty=true]:before:pointer-events-none data-[empty=true]:before:text-muted-foreground data-[empty=true]:before:content-[attr(data-placeholder)]',\n 'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst toolbarButtons: Partial<Record<EditorCommand, { readonly label: string; readonly ariaLabel: string }>> = {\n bold: { label: 'B', ariaLabel: 'Bold' },\n italic: { label: 'I', ariaLabel: 'Italic' },\n underline: { label: 'U', ariaLabel: 'Underline' },\n strike: { label: 'S', ariaLabel: 'Strikethrough' },\n bullet: { label: 'UL', ariaLabel: 'Bulleted list' },\n ordered: { label: '1.', ariaLabel: 'Numbered list' },\n blockquote: { label: 'Q', ariaLabel: 'Block quote' },\n subscript: { label: 'Sub', ariaLabel: 'Subscript' },\n superscript: { label: 'Sup', ariaLabel: 'Superscript' },\n highlight: { label: 'H', ariaLabel: 'Highlight' },\n link: { label: 'Link', ariaLabel: 'Insert link' },\n code: { label: '</>', ariaLabel: 'Code block' },\n undo: { label: 'Undo', ariaLabel: 'Undo' },\n redo: { label: 'Redo', ariaLabel: 'Redo' },\n};\n\nconst toolbarItemAliases: Record<string, EditorCommand> = {\n bold: 'bold',\n italic: 'italic',\n strike: 'strike',\n underline: 'underline',\n bullet: 'bullet',\n ordered: 'ordered',\n blockquote: 'blockquote',\n subscript: 'subscript',\n superscript: 'superscript',\n highlight: 'highlight',\n link: 'link',\n code: 'code',\n undo: 'undo',\n redo: 'redo',\n};\n\nconst parseToolbarItems = (items: string): EditorToolbarPart[] => {\n const tokens = items.split(/\\s+/).filter(Boolean);\n\n return tokens.flatMap((token, index): EditorToolbarPart[] => {\n if (token === '|') {\n return [{ type: 'separator', track: `separator-${index}` }];\n }\n\n if (token === '~') {\n return [{ type: 'spacer', track: `spacer-${index}` }];\n }\n\n if (token === 'heading') {\n return [{ type: 'heading', track: `heading-${index}` }];\n }\n\n if (token === 'align') {\n return [{ type: 'align', track: `align-${index}` }];\n }\n\n const command = toolbarItemAliases[token];\n const button = command ? toolbarButtons[command] : undefined;\n if (!command || !button) {\n return [];\n }\n\n return [{ type: 'button', command, label: button.label, ariaLabel: button.ariaLabel }];\n });\n};\n\n@Component({\n selector: 'ui-editor',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor\"',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-invalid]': 'invalid() ? \"true\" : null',\n '[attr.inert]': 'disabled() ? \"\" : null',\n },\n template: `\n <div\n data-slot=\"editor-shell\"\n [class]=\"shellClasses()\"\n [attr.data-disabled]=\"disabled() ? 'true' : null\"\n [attr.aria-invalid]=\"invalid() ? 'true' : null\">\n <ng-content select=\"ui-editor-toolbar\" />\n <ng-content select=\"ui-editor-content\" />\n </div>\n `,\n})\nexport class EditorComponent {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly class = input<string>('');\n\n readonly commandSelected = output<EditorCommandEvent>();\n\n private content: EditorContentComponent | null = null;\n\n protected readonly classes = computed(() => cn(EDITOR_BASE, this.class()));\n protected readonly shellClasses = computed(() => cn(EDITOR_SHELL_BASE));\n\n execute(command: EditorCommand, source: EditorCommandSource = 'api', originalEvent?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n this.content?.execute(command);\n this.commandSelected.emit({ command, source, originalEvent });\n }\n\n registerContent(content: EditorContentComponent): void {\n this.content = content;\n }\n\n unregisterContent(content: EditorContentComponent): void {\n if (this.content === content) {\n this.content = null;\n }\n }\n}\n\n@Component({\n selector: 'ui-editor-toolbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-toolbar\"',\n role: 'toolbar',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n },\n template: `\n @for (part of parts(); track trackPart(part, $index)) {\n @switch (part.type) {\n @case ('heading') {\n <select\n [class]=\"selectClasses\"\n [disabled]=\"disabled()\"\n aria-label=\"Text style\"\n (change)=\"handleSelect($event)\">\n <option value=\"paragraph\">Text</option>\n <option value=\"heading-1\">Heading 1</option>\n <option value=\"heading-2\">Heading 2</option>\n <option value=\"heading-3\">Heading 3</option>\n </select>\n }\n @case ('align') {\n <select\n [class]=\"selectClasses\"\n [disabled]=\"disabled()\"\n aria-label=\"Text alignment\"\n (change)=\"handleSelect($event)\">\n <option value=\"align-left\">Left</option>\n <option value=\"align-center\">Center</option>\n <option value=\"align-right\">Right</option>\n </select>\n }\n @case ('separator') {\n <span\n data-slot=\"editor-separator\"\n class=\"mx-1 h-6 w-px shrink-0 bg-border\"\n role=\"separator\"\n aria-orientation=\"vertical\"></span>\n }\n @case ('spacer') {\n <span data-slot=\"editor-spacer\" class=\"min-w-2 flex-1\"></span>\n }\n @case ('button') {\n <button\n type=\"button\"\n data-slot=\"editor-button\"\n [class]=\"buttonClasses\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"part.ariaLabel\"\n [attr.title]=\"part.ariaLabel\"\n (mousedown)=\"preserveSelection($event)\"\n (click)=\"execute(part.command, $event)\">\n @if (part.command === 'undo') {\n <svg\n aria-hidden=\"true\"\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path d=\"M9 14 4 9l5-5\" />\n <path d=\"M4 9h10a6 6 0 0 1 0 12h-2\" />\n </svg>\n } @else if (part.command === 'redo') {\n <svg\n aria-hidden=\"true\"\n class=\"size-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path d=\"m15 14 5-5-5-5\" />\n <path d=\"M20 9H10a6 6 0 0 0 0 12h2\" />\n </svg>\n } @else {\n <span aria-hidden=\"true\">{{ part.label }}</span>\n }\n </button>\n }\n }\n }\n <ng-content />\n `,\n})\nexport class EditorToolbarComponent {\n private readonly editor = inject(EditorComponent, { optional: true });\n\n readonly items = input(DEFAULT_EDITOR_TOOLBAR);\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly ariaLabel = input('Formatting', { alias: 'aria-label' });\n readonly class = input<string>('');\n\n protected readonly buttonClasses = EDITOR_TOOL_BUTTON_BASE;\n protected readonly selectClasses = EDITOR_SELECT_BASE;\n protected readonly disabled = computed(() => this.disabledInput() || this.editor?.disabled() === true);\n protected readonly parts = computed(() => parseToolbarItems(this.items()));\n protected readonly classes = computed(() => cn(EDITOR_TOOLBAR_BASE, this.class()));\n\n protected execute(command: EditorCommand, event: MouseEvent): void {\n this.editor?.execute(command, 'toolbar', event);\n }\n\n protected handleSelect(event: Event): void {\n const select = event.target as HTMLSelectElement;\n this.editor?.execute(select.value as EditorCommand, 'toolbar', event);\n select.selectedIndex = 0;\n }\n\n protected preserveSelection(event: MouseEvent): void {\n event.preventDefault();\n }\n\n protected trackPart(part: EditorToolbarPart, index: number): string {\n if (part.type === 'button') {\n return `${part.command}-${index}`;\n }\n\n return part.track;\n }\n}\n\n@Component({\n selector: 'button[ui-editor-button]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-button\"',\n '[attr.title]': 'tooltip() || null',\n '[attr.aria-pressed]': 'pressed() === null ? null : pressed()',\n '[disabled]': 'disabled() || null',\n type: 'button',\n '(mousedown)': 'preserveSelection($event)',\n '(click)': 'handleClick($event)',\n },\n template: `<ng-content />`,\n})\nexport class EditorButtonComponent {\n private readonly editor = inject(EditorComponent, { optional: true });\n\n readonly command = input<EditorCommand | null>(null);\n readonly pressed = input<boolean | null>(null);\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly tooltip = input<string>('');\n readonly class = input<string>('');\n\n protected readonly disabled = computed(() => this.disabledInput() || this.editor?.disabled() === true);\n protected readonly classes = computed(() => cn(EDITOR_TOOL_BUTTON_BASE, this.class()));\n\n protected handleClick(event: MouseEvent): void {\n const command = this.command();\n if (!command) {\n return;\n }\n\n this.editor?.execute(command, 'toolbar', event);\n }\n\n protected preserveSelection(event: MouseEvent): void {\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'ui-editor-separator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-separator\"',\n role: 'separator',\n 'aria-orientation': 'vertical',\n },\n template: '',\n})\nexport class EditorSeparatorComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('mx-1 h-6 w-px shrink-0 bg-border', this.class()));\n}\n\n@Component({\n selector: 'ui-editor-spacer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-spacer\"',\n },\n template: '',\n})\nexport class EditorSpacerComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('min-w-2 flex-1', this.class()));\n}\n\n@Component({\n selector: 'ui-editor-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorContentComponent),\n multi: true,\n },\n ],\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"editor-content\"',\n '[attr.contenteditable]': 'disabled() ? \"false\" : \"true\"',\n '[attr.role]': '\"textbox\"',\n '[attr.aria-multiline]': '\"true\"',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-empty]': 'empty() ? \"true\" : null',\n '[attr.data-placeholder]': 'placeholder()',\n '[attr.tabindex]': 'disabled() ? null : \"0\"',\n '(input)': 'handleInput()',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeydown($event)',\n },\n template: `<ng-content />`,\n})\nexport class EditorContentComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly editor = inject(EditorComponent, { optional: true });\n private readonly document = inject(DOCUMENT);\n private readonly sanitizer = inject(DomSanitizer);\n\n readonly placeholder = input('Write something...');\n readonly ariaLabel = input('Rich text editor', { alias: 'aria-label' });\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly invalidInput = input(false, { alias: 'aria-invalid', transform: booleanAttribute });\n readonly class = input<string>('');\n\n private readonly disabledState = signal(false);\n protected readonly empty = signal(true);\n protected readonly disabled = computed(\n () => this.disabledInput() || this.disabledState() || this.editor?.disabled() === true,\n );\n protected readonly invalid = computed(() => this.invalidInput() || this.editor?.invalid() === true);\n protected readonly classes = computed(() => cn(EDITOR_CONTENT_BASE, this.class()));\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngAfterViewInit(): void {\n this.editor?.registerContent(this);\n queueMicrotask(() => this.syncEmptyState());\n }\n\n ngOnDestroy(): void {\n this.editor?.unregisterContent(this);\n }\n\n writeValue(value: string | null): void {\n this.el.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, value ?? '') ?? '';\n queueMicrotask(() => this.syncEmptyState());\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n execute(command: EditorCommand): void {\n if (this.disabled()) {\n return;\n }\n\n this.el.nativeElement.focus();\n\n switch (command) {\n case 'paragraph':\n this.exec('formatBlock', 'p');\n break;\n case 'heading-1':\n this.exec('formatBlock', 'h1');\n break;\n case 'heading-2':\n this.exec('formatBlock', 'h2');\n break;\n case 'heading-3':\n this.exec('formatBlock', 'h3');\n break;\n case 'bold':\n this.exec('bold');\n break;\n case 'italic':\n this.exec('italic');\n break;\n case 'underline':\n this.exec('underline');\n break;\n case 'strike':\n this.exec('strikeThrough');\n break;\n case 'bullet':\n this.exec('insertUnorderedList');\n break;\n case 'ordered':\n this.exec('insertOrderedList');\n break;\n case 'blockquote':\n this.exec('formatBlock', 'blockquote');\n break;\n case 'subscript':\n this.exec('subscript');\n break;\n case 'superscript':\n this.exec('superscript');\n break;\n case 'highlight':\n this.exec('backColor', '#fef08a');\n break;\n case 'link':\n this.exec('createLink', '#');\n break;\n case 'code':\n this.exec('formatBlock', 'pre');\n break;\n case 'align-left':\n this.exec('justifyLeft');\n break;\n case 'align-center':\n this.exec('justifyCenter');\n break;\n case 'align-right':\n this.exec('justifyRight');\n break;\n case 'undo':\n this.exec('undo');\n break;\n case 'redo':\n this.exec('redo');\n break;\n }\n\n this.handleInput();\n }\n\n focus(): void {\n this.el.nativeElement.focus();\n }\n\n protected handleInput(): void {\n this.syncEmptyState();\n this.onChange(this.el.nativeElement.innerHTML);\n }\n\n protected handleBlur(): void {\n this.onTouched();\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n const command = this.shortcutCommand(event);\n if (!command) {\n return;\n }\n\n event.preventDefault();\n if (this.editor) {\n this.editor.execute(command, 'shortcut', event);\n return;\n }\n\n this.execute(command);\n }\n\n private exec(command: string, value?: string): void {\n if (typeof this.document.execCommand !== 'function') {\n return;\n }\n\n this.document.execCommand(command, false, value);\n }\n\n private syncEmptyState(): void {\n const element = this.el.nativeElement;\n const html = element.innerHTML\n .replace(/<br\\s*\\/?\\>/gi, '')\n .replace(/ /g, '')\n .trim();\n const text = element.textContent?.replace(/\\u00a0/g, '').trim() ?? '';\n this.empty.set(html.length === 0 && text.length === 0);\n }\n\n private shortcutCommand(event: KeyboardEvent): EditorCommand | null {\n const modifier = event.metaKey || event.ctrlKey;\n if (!modifier) {\n return null;\n }\n\n const key = event.key.toLowerCase();\n\n if (event.altKey && !event.shiftKey) {\n if (key === '0') {\n return 'paragraph';\n }\n if (key === '1') {\n return 'heading-1';\n }\n if (key === '2') {\n return 'heading-2';\n }\n if (key === '3') {\n return 'heading-3';\n }\n }\n\n if (event.shiftKey && !event.altKey) {\n switch (key) {\n case 'x':\n return 'strike';\n case '7':\n return 'ordered';\n case '8':\n return 'bullet';\n case 'b':\n return 'blockquote';\n case 'h':\n return 'highlight';\n case 'l':\n return 'align-left';\n case 'e':\n return 'align-center';\n case 'r':\n return 'align-right';\n case 'z':\n return 'redo';\n }\n }\n\n if (event.altKey || event.shiftKey) {\n return null;\n }\n\n switch (key) {\n case 'b':\n return 'bold';\n case 'i':\n return 'italic';\n case 'u':\n return 'underline';\n case 'e':\n return 'code';\n case 'z':\n return 'undo';\n default:\n return null;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AA0DA,MAAM,sBAAsB,GAC1B,2FAA2F;AAE7F,MAAM,WAAW,GAAG,8CAA8C;AAElE,MAAM,iBAAiB,GAAG;IACxB,yFAAyF;IACzF,0GAA0G;IAC1G,0FAA0F;IAC1F,yEAAyE;AAC1E,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,sGAAsG;IACtG,0CAA0C;AAC3C,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,uBAAuB,GAAG;IAC9B,8GAA8G;IAC9G,gEAAgE;IAChE,yEAAyE;IACzE,kDAAkD;IAClD,4DAA4D;AAC7D,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,kBAAkB,GAAG;IACzB,qHAAqH;IACrH,6GAA6G;IAC7G,kDAAkD;AACnD,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,mGAAmG;IACnG,iMAAiM;IACjM,iVAAiV;IACjV,uJAAuJ;IACvJ,yEAAyE;AAC1E,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,cAAc,GAA2F;IAC7G,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE;IACvC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC3C,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE;IACjD,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE;IAClD,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE;IACnD,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE;IACpD,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE;IACpD,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE;IACnD,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;IACvD,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE;IACjD,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE;IACjD,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE;IAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IAC1C,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;CAC3C;AAED,MAAM,kBAAkB,GAAkC;AACxD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;CACb;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAyB;AAC/D,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAEjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAyB;AAC1D,QAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACjB,YAAA,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA,UAAA,EAAa,KAAK,CAAA,CAAE,EAAE,CAAC;QAC7D;AAEA,QAAA,IAAI,KAAK,KAAK,GAAG,EAAE;AACjB,YAAA,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE,EAAE,CAAC;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA,QAAA,EAAW,KAAK,CAAA,CAAE,EAAE,CAAC;QACzD;AAEA,QAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,YAAA,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE,EAAE,CAAC;QACrD;AAEA,QAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACzC,QAAA,MAAM,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5D,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,EAAE;QACX;QAEA,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AACxF,IAAA,CAAC,CAAC;AACJ,CAAC;MAwBY,eAAe,CAAA;IACjB,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvD,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEzB,eAAe,GAAG,MAAM,EAAsB;IAE/C,OAAO,GAAkC,IAAI;AAElC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;IACvD,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAEvE,IAAA,OAAO,CAAC,OAAsB,EAAE,MAAA,GAA8B,KAAK,EAAE,aAAqB,EAAA;AACxF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC/D;AAEA,IAAA,eAAe,CAAC,OAA+B,EAAA;AAC7C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AAEA,IAAA,iBAAiB,CAAC,OAA+B,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;IACF;wGA7BW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXhB;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;oBACrB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,cAAc,EAAE,wBAAwB;AACzC,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA;;MA6HY,sBAAsB,CAAA;IAChB,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE5D,IAAA,KAAK,GAAG,KAAK,CAAC,sBAAsB,4EAAC;AACrC,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,GAAG;IAChF,SAAS,GAAG,KAAK,CAAC,YAAY,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;AACxD,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEf,aAAa,GAAG,uBAAuB;IACvC,aAAa,GAAG,kBAAkB;IAClC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,+EAAC;AACnF,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,4EAAC;AACvD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;IAExE,OAAO,CAAC,OAAsB,EAAE,KAAiB,EAAA;QACzD,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;IACjD;AAEU,IAAA,YAAY,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA2B;AAChD,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAsB,EAAE,SAAS,EAAE,KAAK,CAAC;AACrE,QAAA,MAAM,CAAC,aAAa,GAAG,CAAC;IAC1B;AAEU,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE;IACxB;IAEU,SAAS,CAAC,IAAuB,EAAE,KAAa,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,KAAK,EAAE;QACnC;QAEA,OAAO,IAAI,CAAC,KAAK;IACnB;wGAlCW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlFvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA5FlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,kBAAkB;AACtC,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,sBAAsB,EAAE,4BAA4B;AACrD,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFT,EAAA,CAAA;AACF,iBAAA;;MAqDY,qBAAqB,CAAA;IACf,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE5D,IAAA,OAAO,GAAG,KAAK,CAAuB,IAAI,8EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAiB,IAAI,8EAAC;AACrC,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,GAAG;AAChF,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,8EAAC;AAC3B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;IAEf,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,+EAAC;AACnF,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;AAE5E,IAAA,WAAW,CAAC,KAAiB,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;QAEA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;IACjD;AAEU,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE;IACxB;wGAvBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,kjCAFtB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,iBAAiB;AACrC,wBAAA,cAAc,EAAE,mBAAmB;AACnC,wBAAA,qBAAqB,EAAE,uCAAuC;AAC9D,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,aAAa,EAAE,2BAA2B;AAC1C,wBAAA,SAAS,EAAE,qBAAqB;AACjC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAsCY,wBAAwB,CAAA;AAC1B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAHtF,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,kXAFzB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAED,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAXpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,oBAAoB;AACxC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,kBAAkB,EAAE,UAAU;AAC/B,qBAAA;AACD,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;MAgBY,qBAAqB,CAAA;AACvB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;wGAHpE,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,uSAFtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAED,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,iBAAiB;AACtC,qBAAA;AACD,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;MAoCY,sBAAsB,CAAA;AAChB,IAAA,EAAE,GAAG,MAAM,CAA0B,UAAU,CAAC;IAChD,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpD,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAExC,IAAA,WAAW,GAAG,KAAK,CAAC,oBAAoB,kFAAC;IACzC,SAAS,GAAG,KAAK,CAAC,kBAAkB,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;AAC9D,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,GAAG;AAChF,IAAA,YAAY,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,GAAG;AACnF,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEjB,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC3B,IAAA,KAAK,GAAG,MAAM,CAAC,IAAI,4EAAC;IACpB,QAAQ,GAAG,QAAQ,CACpC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACvF;IACkB,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,8EAAC;AAChF,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,8EAAC;AAE1E,IAAA,QAAQ,GAA4B,MAAK,EAAE,CAAC;AAC5C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;IAExC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC;QAClC,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7C;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC;IACtC;AAEA,IAAA,UAAU,CAAC,KAAoB,EAAA;QAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE;QAClG,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IACpC;AAEA,IAAA,OAAO,CAAC,OAAsB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;QAE7B,QAAQ,OAAO;AACb,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;gBAC7B;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAC9B;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAC9B;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAC9B;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjB;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnB;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBACtB;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC1B;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAChC;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBAC9B;AACF,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;gBACtC;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBACtB;AACF,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACxB;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;gBACjC;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;gBAC5B;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;gBAC/B;AACF,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACxB;AACF,YAAA,KAAK,cAAc;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC1B;AACF,YAAA,KAAK,aAAa;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBACzB;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjB;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACjB;;QAGJ,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC/B;IAEU,WAAW,GAAA;QACnB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;IAChD;IAEU,UAAU,GAAA;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEU,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QAEA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;QAEA,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC;YAC/C;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACvB;IAEQ,IAAI,CAAC,OAAe,EAAE,KAAc,EAAA;QAC1C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE;YACnD;QACF;QAEA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;IAClD;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AACrC,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC;AAClB,aAAA,OAAO,CAAC,eAAe,EAAE,EAAE;AAC3B,aAAA,OAAO,CAAC,SAAS,EAAE,EAAE;AACrB,aAAA,IAAI,EAAE;AACT,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACrE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACxD;AAEQ,IAAA,eAAe,CAAC,KAAoB,EAAA;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;QAC/C,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;QAEnC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACnC,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,OAAO,WAAW;YACpB;AACA,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,OAAO,WAAW;YACpB;AACA,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,OAAO,WAAW;YACpB;AACA,YAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,gBAAA,OAAO,WAAW;YACpB;QACF;QAEA,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACnC,QAAQ,GAAG;AACT,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,QAAQ;AACjB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,SAAS;AAClB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,QAAQ;AACjB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,YAAY;AACrB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,WAAW;AACpB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,YAAY;AACrB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,cAAc;AACvB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,aAAa;AACtB,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,MAAM;;QAEnB;QAEA,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClC,YAAA,OAAO,IAAI;QACb;QAEA,QAAQ,GAAG;AACT,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,MAAM;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,QAAQ;AACjB,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,WAAW;AACpB,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,MAAM;AACf,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,MAAM;AACf,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;wGA/OW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,mCAAA,EAAA,WAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,SAAA,EA1BtB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAkBS,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA7BlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,kBAAkB;AACtC,wBAAA,wBAAwB,EAAE,+BAA+B;AACzD,wBAAA,aAAa,EAAE,WAAW;AAC1B,wBAAA,uBAAuB,EAAE,QAAQ;AACjC,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,mBAAmB,EAAE,yBAAyB;AAC9C,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,iBAAiB,EAAE,yBAAyB;AAC5C,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,WAAW,EAAE,uBAAuB;AACrC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;AC7bD;;AAEG;;;;"}
|
|
@@ -22,10 +22,10 @@ const emptyMediaVariants = cva('flex shrink-0 items-center justify-center', {
|
|
|
22
22
|
class EmptyComponent {
|
|
23
23
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
24
24
|
classes = computed(() => cn(emptyVariants(), this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyComponent, isStandalone: true, selector: "ui-empty", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: 'ui-empty',
|
|
@@ -39,10 +39,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
39
39
|
class EmptyHeaderComponent {
|
|
40
40
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
41
41
|
classes = computed(() => cn('flex w-full max-w-xl flex-col items-center gap-3 text-center', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
42
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
43
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyHeaderComponent, isStandalone: true, selector: "ui-empty-header", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyHeaderComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{
|
|
48
48
|
selector: 'ui-empty-header',
|
|
@@ -57,10 +57,10 @@ class EmptyMediaComponent {
|
|
|
57
57
|
variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
58
58
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
59
59
|
classes = computed(() => cn(emptyMediaVariants({ variant: this.variant() }), this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
60
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyMediaComponent, isStandalone: true, selector: "ui-empty-media", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-variant": "variant()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyMediaComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{
|
|
66
66
|
selector: 'ui-empty-media',
|
|
@@ -75,10 +75,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
75
75
|
class EmptyTitleComponent {
|
|
76
76
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
77
77
|
classes = computed(() => cn('block text-xl font-semibold tracking-tight text-foreground sm:text-2xl', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
78
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
79
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
78
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyTitleComponent, isStandalone: true, selector: "ui-empty-title", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyTitleComponent, decorators: [{
|
|
82
82
|
type: Component,
|
|
83
83
|
args: [{
|
|
84
84
|
selector: 'ui-empty-title',
|
|
@@ -92,10 +92,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
92
92
|
class EmptyDescriptionComponent {
|
|
93
93
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
94
94
|
classes = computed(() => cn('block max-w-lg text-sm leading-6 text-muted-foreground', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
95
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
96
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
95
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyDescriptionComponent, isStandalone: true, selector: "ui-empty-description", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
97
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyDescriptionComponent, decorators: [{
|
|
99
99
|
type: Component,
|
|
100
100
|
args: [{
|
|
101
101
|
selector: 'ui-empty-description',
|
|
@@ -109,10 +109,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
109
109
|
class EmptyContentComponent {
|
|
110
110
|
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
111
111
|
classes = computed(() => cn('flex w-full flex-col items-center justify-center gap-3', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
112
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
113
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: EmptyContentComponent, isStandalone: true, selector: "ui-empty-content", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EmptyContentComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{
|
|
118
118
|
selector: 'ui-empty-content',
|