@cuby-ui/core 0.0.558 → 0.0.561
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/components/date-range-calendar/date-range-calendar.component.d.ts +53 -0
- package/components/date-range-calendar/date-range-calendar.interfaces.d.ts +1 -0
- package/components/date-range-calendar/date-range-calendar.module.d.ts +7 -0
- package/components/date-range-calendar/index.d.ts +3 -0
- package/components/filter-bar/components/add-filter-button/add-filter-button.component.d.ts +10 -0
- package/components/filter-bar/components/date-filter/date-filter.component.d.ts +32 -0
- package/components/filter-bar/components/filter-remove-button/filter-remove-button.component.d.ts +8 -0
- package/components/filter-bar/components/index.d.ts +7 -0
- package/components/filter-bar/components/multiselect-filter/multiselect-filter.component.d.ts +16 -0
- package/components/filter-bar/components/range-filter/range-filter.component.d.ts +23 -0
- package/components/filter-bar/components/select-filter/select-filter.component.d.ts +17 -0
- package/components/filter-bar/components/string-filter/string-filter.component.d.ts +17 -0
- package/components/filter-bar/filter-bar.component.d.ts +14 -0
- package/components/filter-bar/filter-bar.interfaces.d.ts +89 -0
- package/components/filter-bar/filter-bar.module.d.ts +7 -0
- package/components/filter-bar/filter-bar.utils.d.ts +3 -0
- package/components/filter-bar/index.d.ts +3 -0
- package/components/index.d.ts +2 -0
- package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
- package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
- package/esm2022/components/date-range-calendar/date-range-calendar.component.mjs +206 -0
- package/esm2022/components/date-range-calendar/date-range-calendar.interfaces.mjs +2 -0
- package/esm2022/components/date-range-calendar/date-range-calendar.module.mjs +16 -0
- package/esm2022/components/date-range-calendar/index.mjs +3 -0
- package/esm2022/components/filter-bar/components/add-filter-button/add-filter-button.component.mjs +25 -0
- package/esm2022/components/filter-bar/components/date-filter/date-filter.component.mjs +147 -0
- package/esm2022/components/filter-bar/components/filter-remove-button/filter-remove-button.component.mjs +20 -0
- package/esm2022/components/filter-bar/components/index.mjs +8 -0
- package/esm2022/components/filter-bar/components/multiselect-filter/multiselect-filter.component.mjs +70 -0
- package/esm2022/components/filter-bar/components/range-filter/range-filter.component.mjs +99 -0
- package/esm2022/components/filter-bar/components/select-filter/select-filter.component.mjs +63 -0
- package/esm2022/components/filter-bar/components/string-filter/string-filter.component.mjs +66 -0
- package/esm2022/components/filter-bar/filter-bar.component.mjs +52 -0
- package/esm2022/components/filter-bar/filter-bar.interfaces.mjs +3 -0
- package/esm2022/components/filter-bar/filter-bar.module.mjs +16 -0
- package/esm2022/components/filter-bar/filter-bar.utils.mjs +114 -0
- package/esm2022/components/filter-bar/index.mjs +3 -0
- package/esm2022/components/index.mjs +3 -1
- package/fesm2022/cuby-ui-core.mjs +828 -18
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/package.json +4 -4
- package/widgets/ui/categories/components/category-item/category-item.component.d.ts +2 -2
- package/widgets/ui/loader/components/stated-loader/stated-loader.component.d.ts +1 -1
- package/widgets/ui/storage-list/components/storage-list-item/storage-list-item.component.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ChangeDetectionStrategy, inject, Renderer2, input, model, effect, Directive, InjectionToken, Input, HostBinding, ChangeDetectorRef, ViewChild, EventEmitter, Output, NgModule, Injector, Injectable, SkipSelf, Optional, DestroyRef, NgZone, signal, Self, INJECTOR, TemplateRef, forwardRef, ViewEncapsulation, computed, ContentChildren, ElementRef, HostListener, ViewContainerRef, booleanAttribute, untracked, Pipe, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, viewChild
|
|
2
|
+
import { Component, ChangeDetectionStrategy, inject, Renderer2, input, model, effect, Directive, InjectionToken, Input, HostBinding, ChangeDetectorRef, ViewChild, EventEmitter, Output, NgModule, Injector, Injectable, SkipSelf, Optional, DestroyRef, NgZone, signal, Self, INJECTOR, TemplateRef, forwardRef, ViewEncapsulation, computed, ContentChildren, output, ElementRef, HostListener, ViewContainerRef, booleanAttribute, untracked, Pipe, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, viewChild } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, DOCUMENT, NgForOf, NgIf, NgComponentOutlet, NgTemplateOutlet, NgFor, NgClass, Location, UpperCasePipe, AsyncPipe, KeyValuePipe, LowerCasePipe, TitleCasePipe } from '@angular/common';
|
|
5
5
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -15,7 +15,7 @@ import { CuiExchangeContextApiService, CuiJTextApiService, CuiTreeStructNavigato
|
|
|
15
15
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
16
16
|
import * as i4 from '@jsverse/transloco';
|
|
17
17
|
import { TranslocoService, TranslocoModule, TranslocoDirective, TranslocoPipe } from '@jsverse/transloco';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i5 from '@angular/forms';
|
|
19
19
|
import { Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, FormControl, NonNullableFormBuilder } from '@angular/forms';
|
|
20
20
|
import * as i2 from '@taiga-ui/polymorpheus';
|
|
21
21
|
import { PolymorpheusComponent, injectContext, PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
@@ -2536,6 +2536,219 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2536
2536
|
args: [{ selector: 'header[cuiContentHeader]', imports: [CuiSvgModule, CuiTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"wrapper\">\n <span class=\"heading\">\n {{ heading() }}\n\n @if (tooltip(); as tooltip) {\n <cui-svg\n icon=\"cuiIconQuestionCircleBold\"\n [cuiTooltip]=\"tooltip\"\n />\n }\n </span>\n\n @if (subheading(); as subheading) {\n <h2 class=\"subheading\">{{ subheading }}</h2>\n }\n</div>\n\n<ng-content />\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;gap:12px}.wrapper{display:flex;flex-direction:column;gap:4px}.heading{display:flex;flex-direction:row;gap:4px;align-items:center;justify-content:flex-start;font-weight:500;font-size:16px;line-height:24px}.subheading{font-weight:400;font-size:14px;line-height:20px;color:var(--cui-base-500)}\n"] }]
|
|
2537
2537
|
}] });
|
|
2538
2538
|
|
|
2539
|
+
class CuiDateRangeCalendarComponent {
|
|
2540
|
+
constructor() {
|
|
2541
|
+
/** Selection mode: 'range' for date range, 'single' for single date */
|
|
2542
|
+
this.mode = input('range');
|
|
2543
|
+
/** Start date of the range */
|
|
2544
|
+
this.startDate = input(null);
|
|
2545
|
+
/** End date of the range */
|
|
2546
|
+
this.endDate = input(null);
|
|
2547
|
+
/** Selected date (for single mode) */
|
|
2548
|
+
this.selectedDate = input(null);
|
|
2549
|
+
/** Emitted when a date range is applied */
|
|
2550
|
+
this.rangeSelected = output();
|
|
2551
|
+
/** Emitted when a single date is applied */
|
|
2552
|
+
this.dateSelected = output();
|
|
2553
|
+
/** Emitted when the user cancels */
|
|
2554
|
+
this.cancelled = output();
|
|
2555
|
+
/** Currently displayed month */
|
|
2556
|
+
this.currentMonth = signal(new Date());
|
|
2557
|
+
/** Temporary start date (during range selection) */
|
|
2558
|
+
this.tmpStartDate = signal(null);
|
|
2559
|
+
/** Temporary end date (during range selection) */
|
|
2560
|
+
this.tmpEndDate = signal(null);
|
|
2561
|
+
/** Temporary selected date (for single mode) */
|
|
2562
|
+
this.tmpSelectedDate = signal(null);
|
|
2563
|
+
/** Week day labels */
|
|
2564
|
+
this.weekDays = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
|
|
2565
|
+
/** Current month display name */
|
|
2566
|
+
this.currentMonthName = computed(() => {
|
|
2567
|
+
const date = this.currentMonth();
|
|
2568
|
+
return date.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });
|
|
2569
|
+
});
|
|
2570
|
+
/** Calendar days grid */
|
|
2571
|
+
this.calendarDays = computed(() => {
|
|
2572
|
+
const date = this.currentMonth();
|
|
2573
|
+
const year = date.getFullYear();
|
|
2574
|
+
const month = date.getMonth();
|
|
2575
|
+
const firstDay = new Date(year, month, 1);
|
|
2576
|
+
const lastDay = new Date(year, month + 1, 0);
|
|
2577
|
+
// Get the day of the week for the first day (0 = Sunday, convert so Monday = 0)
|
|
2578
|
+
let startDayOfWeek = firstDay.getDay() - 1;
|
|
2579
|
+
if (startDayOfWeek < 0) {
|
|
2580
|
+
startDayOfWeek = 6;
|
|
2581
|
+
}
|
|
2582
|
+
const days = [];
|
|
2583
|
+
// Add previous month's trailing days
|
|
2584
|
+
const prevMonthLastDay = new Date(year, month, 0).getDate();
|
|
2585
|
+
for (let i = startDayOfWeek - 1; i >= 0; i--) {
|
|
2586
|
+
days.push({
|
|
2587
|
+
date: new Date(year, month - 1, prevMonthLastDay - i),
|
|
2588
|
+
isCurrentMonth: false
|
|
2589
|
+
});
|
|
2590
|
+
}
|
|
2591
|
+
// Add current month's days
|
|
2592
|
+
for (let i = 1; i <= lastDay.getDate(); i++) {
|
|
2593
|
+
days.push({
|
|
2594
|
+
date: new Date(year, month, i),
|
|
2595
|
+
isCurrentMonth: true
|
|
2596
|
+
});
|
|
2597
|
+
}
|
|
2598
|
+
// Add next month's leading days to fill the grid (6 rows x 7 days = 42)
|
|
2599
|
+
const remainingDays = 42 - days.length;
|
|
2600
|
+
for (let i = 1; i <= remainingDays; i++) {
|
|
2601
|
+
days.push({
|
|
2602
|
+
date: new Date(year, month + 1, i),
|
|
2603
|
+
isCurrentMonth: false
|
|
2604
|
+
});
|
|
2605
|
+
}
|
|
2606
|
+
return days;
|
|
2607
|
+
});
|
|
2608
|
+
// Initialize temporary values from inputs via effect (signal inputs are not resolved in constructor)
|
|
2609
|
+
effect(() => {
|
|
2610
|
+
if (this.mode() === 'range') {
|
|
2611
|
+
const start = this.startDate();
|
|
2612
|
+
const end = this.endDate();
|
|
2613
|
+
if (start) {
|
|
2614
|
+
this.tmpStartDate.set(start);
|
|
2615
|
+
this.currentMonth.set(new Date(start.getFullYear(), start.getMonth(), 1));
|
|
2616
|
+
}
|
|
2617
|
+
if (end) {
|
|
2618
|
+
this.tmpEndDate.set(end);
|
|
2619
|
+
}
|
|
2620
|
+
}
|
|
2621
|
+
else {
|
|
2622
|
+
const selected = this.selectedDate();
|
|
2623
|
+
if (selected) {
|
|
2624
|
+
this.tmpSelectedDate.set(selected);
|
|
2625
|
+
this.currentMonth.set(new Date(selected.getFullYear(), selected.getMonth(), 1));
|
|
2626
|
+
}
|
|
2627
|
+
}
|
|
2628
|
+
});
|
|
2629
|
+
}
|
|
2630
|
+
goToPrevMonth() {
|
|
2631
|
+
const current = this.currentMonth();
|
|
2632
|
+
this.currentMonth.set(new Date(current.getFullYear(), current.getMonth() - 1, 1));
|
|
2633
|
+
}
|
|
2634
|
+
goToNextMonth() {
|
|
2635
|
+
const current = this.currentMonth();
|
|
2636
|
+
this.currentMonth.set(new Date(current.getFullYear(), current.getMonth() + 1, 1));
|
|
2637
|
+
}
|
|
2638
|
+
selectDate(date) {
|
|
2639
|
+
if (this.mode() !== 'range') {
|
|
2640
|
+
// Single date mode - just select the date
|
|
2641
|
+
this.tmpSelectedDate.set(date);
|
|
2642
|
+
return;
|
|
2643
|
+
}
|
|
2644
|
+
// Range mode
|
|
2645
|
+
const start = this.tmpStartDate();
|
|
2646
|
+
const end = this.tmpEndDate();
|
|
2647
|
+
if (!start || (start && end)) {
|
|
2648
|
+
// Start a new selection
|
|
2649
|
+
this.tmpStartDate.set(date);
|
|
2650
|
+
this.tmpEndDate.set(null);
|
|
2651
|
+
}
|
|
2652
|
+
else {
|
|
2653
|
+
// Complete the selection
|
|
2654
|
+
if (date < start) {
|
|
2655
|
+
// If selected date is before start, swap them
|
|
2656
|
+
this.tmpEndDate.set(start);
|
|
2657
|
+
this.tmpStartDate.set(date);
|
|
2658
|
+
}
|
|
2659
|
+
else {
|
|
2660
|
+
this.tmpEndDate.set(date);
|
|
2661
|
+
}
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
isSelected(date) {
|
|
2665
|
+
if (this.mode() !== 'range') {
|
|
2666
|
+
// Single date mode
|
|
2667
|
+
const selected = this.tmpSelectedDate();
|
|
2668
|
+
return selected !== null && this.isSameDay(date, selected);
|
|
2669
|
+
}
|
|
2670
|
+
// Range mode
|
|
2671
|
+
const start = this.tmpStartDate();
|
|
2672
|
+
const end = this.tmpEndDate();
|
|
2673
|
+
if (start && this.isSameDay(date, start)) {
|
|
2674
|
+
return true;
|
|
2675
|
+
}
|
|
2676
|
+
if (end && this.isSameDay(date, end)) {
|
|
2677
|
+
return true;
|
|
2678
|
+
}
|
|
2679
|
+
return false;
|
|
2680
|
+
}
|
|
2681
|
+
isInRange(date) {
|
|
2682
|
+
const start = this.tmpStartDate();
|
|
2683
|
+
const end = this.tmpEndDate();
|
|
2684
|
+
if (!start || !end) {
|
|
2685
|
+
return false;
|
|
2686
|
+
}
|
|
2687
|
+
return date > start && date < end;
|
|
2688
|
+
}
|
|
2689
|
+
isRangeStart(date) {
|
|
2690
|
+
const start = this.tmpStartDate();
|
|
2691
|
+
return start !== null && this.isSameDay(date, start);
|
|
2692
|
+
}
|
|
2693
|
+
isRangeEnd(date) {
|
|
2694
|
+
const end = this.tmpEndDate();
|
|
2695
|
+
return end !== null && this.isSameDay(date, end);
|
|
2696
|
+
}
|
|
2697
|
+
isToday(date) {
|
|
2698
|
+
return this.isSameDay(date, new Date());
|
|
2699
|
+
}
|
|
2700
|
+
apply() {
|
|
2701
|
+
if (this.mode() !== 'range') {
|
|
2702
|
+
// Single date mode
|
|
2703
|
+
const selected = this.tmpSelectedDate();
|
|
2704
|
+
if (selected) {
|
|
2705
|
+
this.dateSelected.emit(selected);
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
else {
|
|
2709
|
+
// Range mode
|
|
2710
|
+
const start = this.tmpStartDate();
|
|
2711
|
+
const end = this.tmpEndDate();
|
|
2712
|
+
if (start && end) {
|
|
2713
|
+
this.rangeSelected.emit({ start, end });
|
|
2714
|
+
}
|
|
2715
|
+
}
|
|
2716
|
+
}
|
|
2717
|
+
cancel() {
|
|
2718
|
+
this.cancelled.emit();
|
|
2719
|
+
}
|
|
2720
|
+
hasSelection() {
|
|
2721
|
+
if (this.mode() !== 'range') {
|
|
2722
|
+
return this.tmpSelectedDate() !== null;
|
|
2723
|
+
}
|
|
2724
|
+
return this.tmpStartDate() !== null;
|
|
2725
|
+
}
|
|
2726
|
+
isSameDay(date1, date2) {
|
|
2727
|
+
return (date1.getFullYear() === date2.getFullYear() &&
|
|
2728
|
+
date1.getMonth() === date2.getMonth() &&
|
|
2729
|
+
date1.getDate() === date2.getDate());
|
|
2730
|
+
}
|
|
2731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiDateRangeCalendarComponent, isStandalone: true, selector: "cui-date-range-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rangeSelected: "rangeSelected", dateSelected: "dateSelected", cancelled: "cancelled" }, ngImport: i0, template: "<div class=\"cui-calendar\">\n <div class=\"cui-calendar__header\">\n <button\n type=\"button\"\n class=\"cui-calendar__nav-btn\"\n (click)=\"goToPrevMonth()\"\n >\n <cui-svg icon=\"cuiIconChevronLeft\" />\n </button>\n <span class=\"cui-calendar__month-name\">{{ currentMonthName() }}</span>\n <button\n type=\"button\"\n class=\"cui-calendar__nav-btn\"\n (click)=\"goToNextMonth()\"\n >\n <cui-svg icon=\"cuiIconChevronRight\" />\n </button>\n </div>\n\n <div class=\"cui-calendar__weekdays\">\n @for (day of weekDays; track day) {\n <div class=\"cui-calendar__weekday\">{{ day }}</div>\n }\n </div>\n\n <div class=\"cui-calendar__days\">\n @for (day of calendarDays(); track day.date.getTime()) {\n <button\n type=\"button\"\n class=\"cui-calendar__day\"\n [class.cui-calendar__day--other-month]=\"!day.isCurrentMonth\"\n [class.cui-calendar__day--selected]=\"isSelected(day.date)\"\n [class.cui-calendar__day--in-range]=\"isInRange(day.date)\"\n [class.cui-calendar__day--range-start]=\"isRangeStart(day.date)\"\n [class.cui-calendar__day--range-end]=\"isRangeEnd(day.date)\"\n [class.cui-calendar__day--today]=\"isToday(day.date)\"\n (click)=\"selectDate(day.date)\"\n >\n {{ day.date.getDate() }}\n </button>\n }\n </div>\n\n <div class=\"cui-calendar__footer\">\n <button\n type=\"button\"\n cuiButton\n appearance=\"secondary\"\n (click)=\"cancel()\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n cuiButton\n appearance=\"action\"\n [disabled]=\"!hasSelection()\"\n (click)=\"apply()\"\n >\n Apply\n </button>\n </div>\n</div>\n", styles: [".cui-calendar{display:flex;flex-direction:column;padding:12px;min-width:280px}.cui-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cui-calendar__nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:background .2s}.cui-calendar__nav-btn:hover{background:var(--cui-base-100)}.cui-calendar__month-name{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.cui-calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cui-calendar__weekday{font-weight:500;font-size:12px;line-height:14px;display:flex;align-items:center;justify-content:center;height:32px;color:var(--cui-base-500)}.cui-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cui-calendar__day{font-weight:400;font-size:13px;line-height:16px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:background .2s;color:var(--cui-base-900)}.cui-calendar__day:hover{background:var(--cui-base-100)}.cui-calendar__day--other-month{color:var(--cui-base-400)}.cui-calendar__day--today{font-weight:600;border:1px solid var(--cui-base-300)}.cui-calendar__day--selected{background:var(--cui-light-blue-600);color:var(--cui-base-0)}.cui-calendar__day--selected:hover{background:var(--cui-light-blue-700)}.cui-calendar__day--in-range{background:var(--cui-lavender-bg);border-radius:0}.cui-calendar__day--in-range:hover{background:var(--cui-base-200)}.cui-calendar__day--range-start{border-radius:6px 0 0 6px}.cui-calendar__day--range-end{border-radius:0 6px 6px 0}.cui-calendar__day--range-start.cui-calendar__day--range-end{border-radius:6px}.cui-calendar__footer{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--cui-base-200)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2733
|
+
}
|
|
2734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarComponent, decorators: [{
|
|
2735
|
+
type: Component,
|
|
2736
|
+
args: [{ selector: 'cui-date-range-calendar', standalone: true, imports: [CuiButtonModule, CuiSvgModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cui-calendar\">\n <div class=\"cui-calendar__header\">\n <button\n type=\"button\"\n class=\"cui-calendar__nav-btn\"\n (click)=\"goToPrevMonth()\"\n >\n <cui-svg icon=\"cuiIconChevronLeft\" />\n </button>\n <span class=\"cui-calendar__month-name\">{{ currentMonthName() }}</span>\n <button\n type=\"button\"\n class=\"cui-calendar__nav-btn\"\n (click)=\"goToNextMonth()\"\n >\n <cui-svg icon=\"cuiIconChevronRight\" />\n </button>\n </div>\n\n <div class=\"cui-calendar__weekdays\">\n @for (day of weekDays; track day) {\n <div class=\"cui-calendar__weekday\">{{ day }}</div>\n }\n </div>\n\n <div class=\"cui-calendar__days\">\n @for (day of calendarDays(); track day.date.getTime()) {\n <button\n type=\"button\"\n class=\"cui-calendar__day\"\n [class.cui-calendar__day--other-month]=\"!day.isCurrentMonth\"\n [class.cui-calendar__day--selected]=\"isSelected(day.date)\"\n [class.cui-calendar__day--in-range]=\"isInRange(day.date)\"\n [class.cui-calendar__day--range-start]=\"isRangeStart(day.date)\"\n [class.cui-calendar__day--range-end]=\"isRangeEnd(day.date)\"\n [class.cui-calendar__day--today]=\"isToday(day.date)\"\n (click)=\"selectDate(day.date)\"\n >\n {{ day.date.getDate() }}\n </button>\n }\n </div>\n\n <div class=\"cui-calendar__footer\">\n <button\n type=\"button\"\n cuiButton\n appearance=\"secondary\"\n (click)=\"cancel()\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n cuiButton\n appearance=\"action\"\n [disabled]=\"!hasSelection()\"\n (click)=\"apply()\"\n >\n Apply\n </button>\n </div>\n</div>\n", styles: [".cui-calendar{display:flex;flex-direction:column;padding:12px;min-width:280px}.cui-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cui-calendar__nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:background .2s}.cui-calendar__nav-btn:hover{background:var(--cui-base-100)}.cui-calendar__month-name{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.cui-calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cui-calendar__weekday{font-weight:500;font-size:12px;line-height:14px;display:flex;align-items:center;justify-content:center;height:32px;color:var(--cui-base-500)}.cui-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cui-calendar__day{font-weight:400;font-size:13px;line-height:16px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;transition:background .2s;color:var(--cui-base-900)}.cui-calendar__day:hover{background:var(--cui-base-100)}.cui-calendar__day--other-month{color:var(--cui-base-400)}.cui-calendar__day--today{font-weight:600;border:1px solid var(--cui-base-300)}.cui-calendar__day--selected{background:var(--cui-light-blue-600);color:var(--cui-base-0)}.cui-calendar__day--selected:hover{background:var(--cui-light-blue-700)}.cui-calendar__day--in-range{background:var(--cui-lavender-bg);border-radius:0}.cui-calendar__day--in-range:hover{background:var(--cui-base-200)}.cui-calendar__day--range-start{border-radius:6px 0 0 6px}.cui-calendar__day--range-end{border-radius:0 6px 6px 0}.cui-calendar__day--range-start.cui-calendar__day--range-end{border-radius:6px}.cui-calendar__footer{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--cui-base-200)}\n"] }]
|
|
2737
|
+
}], ctorParameters: () => [] });
|
|
2738
|
+
|
|
2739
|
+
class CuiDateRangeCalendarModule {
|
|
2740
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2741
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarModule, imports: [CuiDateRangeCalendarComponent], exports: [CuiDateRangeCalendarComponent] }); }
|
|
2742
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarModule, imports: [CuiDateRangeCalendarComponent] }); }
|
|
2743
|
+
}
|
|
2744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateRangeCalendarModule, decorators: [{
|
|
2745
|
+
type: NgModule,
|
|
2746
|
+
args: [{
|
|
2747
|
+
imports: [CuiDateRangeCalendarComponent],
|
|
2748
|
+
exports: [CuiDateRangeCalendarComponent]
|
|
2749
|
+
}]
|
|
2750
|
+
}] });
|
|
2751
|
+
|
|
2539
2752
|
const CUI_ROOT_SELECTOR = 'cui-root';
|
|
2540
2753
|
|
|
2541
2754
|
const CUI_DIALOGS = cuiCreateToken(new BehaviorSubject([]));
|
|
@@ -3249,7 +3462,7 @@ class CuiInputNumberComponent {
|
|
|
3249
3462
|
});
|
|
3250
3463
|
}
|
|
3251
3464
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3252
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: { precision: "precision", min: "min", max: "max" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [maskito]=\"maskOptions\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
3465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: { precision: "precision", min: "min", max: "max" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputNumberComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [maskito]=\"maskOptions\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3253
3466
|
}
|
|
3254
3467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputNumberComponent, decorators: [{
|
|
3255
3468
|
type: Component,
|
|
@@ -3391,7 +3604,7 @@ class CuiInputPasswordComponent {
|
|
|
3391
3604
|
this.isPasswordHidden = !this.isPasswordHidden;
|
|
3392
3605
|
}
|
|
3393
3606
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3394
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputPasswordComponent, selector: "cui-input-password", host: { properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputPasswordComponent, true)], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n<button\n *ngIf=\"isToggleButtonShown\"\n [title]=\"buttonTitle\"\n class=\"c-button\"\n (click)=\"onTogglePasswordVisibility()\"\n>\n <cui-svg\n [icon]=\"icon\"\n [width]=\"16\"\n [height]=\"16\"\n color=\"var(--cui-base-500)\"\n ></cui-svg>\n</button>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}.c-input::-ms-reveal{display:none}.c-input[type=password]{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
3607
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputPasswordComponent, selector: "cui-input-password", host: { properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputPasswordComponent, true)], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n<button\n *ngIf=\"isToggleButtonShown\"\n [title]=\"buttonTitle\"\n class=\"c-button\"\n (click)=\"onTogglePasswordVisibility()\"\n>\n <cui-svg\n [icon]=\"icon\"\n [width]=\"16\"\n [height]=\"16\"\n color=\"var(--cui-base-500)\"\n ></cui-svg>\n</button>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}.c-input::-ms-reveal{display:none}.c-input[type=password]{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3395
3608
|
}
|
|
3396
3609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputPasswordComponent, decorators: [{
|
|
3397
3610
|
type: Component,
|
|
@@ -3474,7 +3687,7 @@ class CuiInputTextComponent {
|
|
|
3474
3687
|
this.onChange(value);
|
|
3475
3688
|
}
|
|
3476
3689
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3477
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputTextComponent, selector: "cui-input-text", host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputTextComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n<button\n type=\"button\"\n class=\"c-button\"\n [class.c-button_hidden]=\"isClearButtonHidden\"\n (click)=\"onClear()\"\n>\n <cui-svg\n icon=\"cuiIconClear\"\n color=\"var(--cui-base-300)\"\n class=\"c-close-icon\"\n />\n</button>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}.c-close-icon ::ng-deep path{stroke:var(--cui-base-0)!important}.c-button_hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
3690
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputTextComponent, selector: "cui-input-text", host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputTextComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n *ngIf=\"iconLeft\"\n [icon]=\"iconLeft\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"value\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n<button\n type=\"button\"\n class=\"c-button\"\n [class.c-button_hidden]=\"isClearButtonHidden\"\n (click)=\"onClear()\"\n>\n <cui-svg\n icon=\"cuiIconClear\"\n color=\"var(--cui-base-300)\"\n class=\"c-close-icon\"\n />\n</button>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}.c-close-icon ::ng-deep path{stroke:var(--cui-base-0)!important}.c-button_hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3478
3691
|
}
|
|
3479
3692
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputTextComponent, decorators: [{
|
|
3480
3693
|
type: Component,
|
|
@@ -3576,7 +3789,7 @@ class CuiInputTimeComponent {
|
|
|
3576
3789
|
return maskitoTimeOptionsGenerator({ mode });
|
|
3577
3790
|
}
|
|
3578
3791
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3579
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputTimeComponent, selector: "cui-input-time", inputs: { mode: "mode" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputTimeComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n icon=\"cuiIconClock\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"computedValue\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [maskito]=\"maskOptions\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type:
|
|
3792
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiInputTimeComponent, selector: "cui-input-time", inputs: { mode: "mode" }, host: { listeners: { "click": "onFocus()" }, properties: { "class._disabled": "this.isDisabled", "attr.data-size": "this.size", "class._with-error": "this.isError" } }, providers: [CUI_TEXT_FILED_CONTROLLER_PROVIDER, cuiProvide(NG_VALUE_ACCESSOR, CuiInputTimeComponent, true)], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<cui-svg\n icon=\"cuiIconClock\"\n color=\"var(--cui-base-500)\"\n></cui-svg>\n<input\n #input\n [ngModel]=\"computedValue\"\n [attr.id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n type=\"text\"\n [maskito]=\"maskOptions\"\n [disabled]=\"isDisabled\"\n class=\"c-input\"\n (input)=\"onInput($event)\"\n (focus)=\"onTouched()\"\n/>\n", styles: [":host{--cui-input-autofill-bg: var(--cui-input);--cui-input-autofill-color: var(--cui-base-900);padding-right:13px;padding-left:13px;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;cursor:text;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}:host:hover{border-color:var(--cui-base-300)}:host:focus-within{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}:host[data-size=sm]{padding-top:7px;padding-bottom:7px}:host[data-size=md]{padding-top:8px;padding-bottom:8px}:host._disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}:host._with-error{border-color:var(--cui-danger)}:host._with-error:focus-within{box-shadow:0 0 0 2px #d92d2040}.c-input{padding:0;outline:none;margin:0;border-width:0;appearance:none;caret-color:currentColor;background:none;color:inherit;font:inherit;line-height:inherit;width:100%}.c-input:-webkit-autofill,.c-input:-webkit-autofill:hover,.c-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 200px var(--cui-input-autofill-bg) inset;-webkit-text-fill-color:var(--cui-input-autofill-color);caret-color:var(--cui-input-autofill-color)}.c-input:disabled{cursor:not-allowed}.c-input::placeholder{color:var(--cui-base-400)}.c-button{padding:0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;display:flex}\n"], dependencies: [{ kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3580
3793
|
}
|
|
3581
3794
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInputTimeComponent, decorators: [{
|
|
3582
3795
|
type: Component,
|
|
@@ -4450,6 +4663,603 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4450
4663
|
args: [{ selector: 'cui-file-icon', imports: [CuiSvgModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (extensionColor(); as color) {\n <cui-svg\n icon=\"cuiIconBoldFileDefaultSm\"\n [color]=\"color\"\n class=\"icon\"\n ></cui-svg>\n\n <span class=\"extension\">{{ extension() }}</span>\n}\n", styles: [":host{--c-text-color: var(--cui-base-0);position:relative;display:inline-block}:host .extension{font-size:10px;line-height:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;bottom:4px;left:5px;display:inline-block;font-family:var(--cui-nunito-italic-font);font-weight:800;font-style:italic;max-width:30px;color:var(--c-text-color);text-transform:uppercase;transform:scale(.5);transform-origin:left bottom}\n"] }]
|
|
4451
4664
|
}] });
|
|
4452
4665
|
|
|
4666
|
+
class CuiFilterRemoveButtonComponent {
|
|
4667
|
+
constructor() {
|
|
4668
|
+
this.label = input.required();
|
|
4669
|
+
this.removed = output();
|
|
4670
|
+
}
|
|
4671
|
+
onRemove() {
|
|
4672
|
+
this.removed.emit();
|
|
4673
|
+
}
|
|
4674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterRemoveButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4675
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiFilterRemoveButtonComponent, isStandalone: true, selector: "cui-filter-remove-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"filter-remove-button\"\n>\n <cui-svg\n icon=\"cuiIconVector\"\n (click)=\"onRemove(); $event.stopPropagation()\"\n />\n <span class=\"filter-remove-button__label\">{{ label() }}:</span>\n</button>\n", styles: [":host{display:contents}.filter-remove-button{display:flex;flex-direction:row;gap:4px;align-items:center;justify-content:flex-start;padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-left-radius:8px;border-bottom-left-radius:8px;cursor:pointer}.filter-remove-button:hover,.filter-remove-button:focus{outline:none}.filter-remove-button__label{font-weight:500;font-size:12px;line-height:14px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4676
|
+
}
|
|
4677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterRemoveButtonComponent, decorators: [{
|
|
4678
|
+
type: Component,
|
|
4679
|
+
args: [{ selector: 'cui-filter-remove-button', standalone: true, imports: [CuiSvgModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"filter-remove-button\"\n>\n <cui-svg\n icon=\"cuiIconVector\"\n (click)=\"onRemove(); $event.stopPropagation()\"\n />\n <span class=\"filter-remove-button__label\">{{ label() }}:</span>\n</button>\n", styles: [":host{display:contents}.filter-remove-button{display:flex;flex-direction:row;gap:4px;align-items:center;justify-content:flex-start;padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-left-radius:8px;border-bottom-left-radius:8px;cursor:pointer}.filter-remove-button:hover,.filter-remove-button:focus{outline:none}.filter-remove-button__label{font-weight:500;font-size:12px;line-height:14px}\n"] }]
|
|
4680
|
+
}] });
|
|
4681
|
+
|
|
4682
|
+
class CuiStringFilterComponent {
|
|
4683
|
+
constructor() {
|
|
4684
|
+
this.filter = input.required();
|
|
4685
|
+
this.removed = output();
|
|
4686
|
+
this.changed = output();
|
|
4687
|
+
this.tmpValue = signal('');
|
|
4688
|
+
this.currentValue = computed(() => {
|
|
4689
|
+
const f = this.filter();
|
|
4690
|
+
return f.value.type === 'string' ? f.value.value : '';
|
|
4691
|
+
});
|
|
4692
|
+
this.hasValue = computed(() => !!this.currentValue());
|
|
4693
|
+
}
|
|
4694
|
+
onRemove() {
|
|
4695
|
+
this.removed.emit(this.filter().id);
|
|
4696
|
+
}
|
|
4697
|
+
onDropdownOpened(opened) {
|
|
4698
|
+
if (opened) {
|
|
4699
|
+
this.tmpValue.set(this.currentValue());
|
|
4700
|
+
}
|
|
4701
|
+
}
|
|
4702
|
+
onTmpValueChange(value) {
|
|
4703
|
+
this.tmpValue.set(value);
|
|
4704
|
+
}
|
|
4705
|
+
applyValue(dropdown) {
|
|
4706
|
+
const f = this.filter();
|
|
4707
|
+
if (f.value.type !== 'string') {
|
|
4708
|
+
return;
|
|
4709
|
+
}
|
|
4710
|
+
this.changed.emit({
|
|
4711
|
+
...f,
|
|
4712
|
+
value: { ...f.value, value: this.tmpValue() }
|
|
4713
|
+
});
|
|
4714
|
+
dropdown.close();
|
|
4715
|
+
}
|
|
4716
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiStringFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4717
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiStringFilterComponent, isStandalone: true, selector: "cui-string-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"string-filter__trigger\"\n [class.string-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"string-filter__value\"\n [cuiTooltip]=\"currentValue()\"\n >\n {{ currentValue() }}\n </span>\n } @else {\n <span class=\"string-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"string-filter__dropdown\">\n <div class=\"string-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <cui-input-text\n [ngModel]=\"tmpValue()\"\n (ngModelChange)=\"onTmpValueChange($event)\"\n maxlength=\"25\"\n [cuiTextFieldPlaceholder]=\"'ENTER_VALUE' | transloco\"\n />\n <div class=\"string-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.string-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.string-filter__trigger:hover{background:var(--cui-base-200)}.string-filter__trigger:focus{outline:none}.string-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.string-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.string-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.string-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.string-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.string-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.string-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4718
|
+
}
|
|
4719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiStringFilterComponent, decorators: [{
|
|
4720
|
+
type: Component,
|
|
4721
|
+
args: [{ selector: 'cui-string-filter', standalone: true, imports: [
|
|
4722
|
+
CuiButtonModule,
|
|
4723
|
+
CuiDropdownDirective,
|
|
4724
|
+
CuiFilterRemoveButtonComponent,
|
|
4725
|
+
CuiInputModule,
|
|
4726
|
+
CuiSvgModule,
|
|
4727
|
+
CuiTooltipDirective,
|
|
4728
|
+
FormsModule,
|
|
4729
|
+
TranslocoPipe
|
|
4730
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"string-filter__trigger\"\n [class.string-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"string-filter__value\"\n [cuiTooltip]=\"currentValue()\"\n >\n {{ currentValue() }}\n </span>\n } @else {\n <span class=\"string-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"string-filter__dropdown\">\n <div class=\"string-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <cui-input-text\n [ngModel]=\"tmpValue()\"\n (ngModelChange)=\"onTmpValueChange($event)\"\n maxlength=\"25\"\n [cuiTextFieldPlaceholder]=\"'ENTER_VALUE' | transloco\"\n />\n <div class=\"string-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.string-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.string-filter__trigger:hover{background:var(--cui-base-200)}.string-filter__trigger:focus{outline:none}.string-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.string-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.string-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.string-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.string-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.string-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.string-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"] }]
|
|
4731
|
+
}] });
|
|
4732
|
+
|
|
4733
|
+
class CuiRangeFilterComponent {
|
|
4734
|
+
constructor() {
|
|
4735
|
+
this.filter = input.required();
|
|
4736
|
+
this.removed = output();
|
|
4737
|
+
this.changed = output();
|
|
4738
|
+
this.tmpMin = signal(null);
|
|
4739
|
+
this.tmpMax = signal(null);
|
|
4740
|
+
this.currentMin = computed(() => {
|
|
4741
|
+
const f = this.filter();
|
|
4742
|
+
return f.value.type === 'range' ? f.value.min : null;
|
|
4743
|
+
});
|
|
4744
|
+
this.currentMax = computed(() => {
|
|
4745
|
+
const f = this.filter();
|
|
4746
|
+
return f.value.type === 'range' ? f.value.max : null;
|
|
4747
|
+
});
|
|
4748
|
+
this.hasValue = computed(() => this.currentMin() !== null || this.currentMax() !== null);
|
|
4749
|
+
this.displayValue = computed(() => {
|
|
4750
|
+
const min = this.currentMin();
|
|
4751
|
+
const max = this.currentMax();
|
|
4752
|
+
if (min !== null && max !== null) {
|
|
4753
|
+
return `${min} – ${max}`;
|
|
4754
|
+
}
|
|
4755
|
+
if (min !== null) {
|
|
4756
|
+
return `≥ ${min}`;
|
|
4757
|
+
}
|
|
4758
|
+
if (max !== null) {
|
|
4759
|
+
return `≤ ${max}`;
|
|
4760
|
+
}
|
|
4761
|
+
return '';
|
|
4762
|
+
});
|
|
4763
|
+
this.minPlaceholder = computed(() => {
|
|
4764
|
+
const field = this.filter().field;
|
|
4765
|
+
return field.rangeConfig?.minPlaceholder ?? 'MIN';
|
|
4766
|
+
});
|
|
4767
|
+
this.maxPlaceholder = computed(() => {
|
|
4768
|
+
const field = this.filter().field;
|
|
4769
|
+
return field.rangeConfig?.maxPlaceholder ?? 'MAX';
|
|
4770
|
+
});
|
|
4771
|
+
}
|
|
4772
|
+
onRemove() {
|
|
4773
|
+
this.removed.emit(this.filter().id);
|
|
4774
|
+
}
|
|
4775
|
+
onDropdownOpened(isOpened) {
|
|
4776
|
+
if (isOpened) {
|
|
4777
|
+
this.tmpMin.set(this.currentMin());
|
|
4778
|
+
this.tmpMax.set(this.currentMax());
|
|
4779
|
+
}
|
|
4780
|
+
}
|
|
4781
|
+
onTmpMinChange(value) {
|
|
4782
|
+
this.tmpMin.set(value);
|
|
4783
|
+
}
|
|
4784
|
+
onTmpMaxChange(value) {
|
|
4785
|
+
this.tmpMax.set(value);
|
|
4786
|
+
}
|
|
4787
|
+
applyValue(dropdown) {
|
|
4788
|
+
const f = this.filter();
|
|
4789
|
+
if (f.value.type !== 'range') {
|
|
4790
|
+
return;
|
|
4791
|
+
}
|
|
4792
|
+
const newValue = {
|
|
4793
|
+
type: 'range',
|
|
4794
|
+
min: this.tmpMin(),
|
|
4795
|
+
max: this.tmpMax()
|
|
4796
|
+
};
|
|
4797
|
+
this.changed.emit({ ...f, value: newValue });
|
|
4798
|
+
dropdown.close();
|
|
4799
|
+
}
|
|
4800
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4801
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiRangeFilterComponent, isStandalone: true, selector: "cui-range-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"range-filter__trigger\"\n [class.range-filter__trigger_active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"range-filter__value\"\n [cuiTooltip]=\"displayValue()\"\n >\n {{ displayValue() }}\n </span>\n } @else {\n <span class=\"range-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"range-filter__dropdown\">\n <div class=\"range-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <div class=\"range-filter__inputs\">\n <cui-input-number\n [ngModel]=\"tmpMin()\"\n (ngModelChange)=\"onTmpMinChange($event)\"\n [cuiTextFieldPlaceholder]=\"minPlaceholder() | transloco\"\n />\n <span class=\"range-filter__separator\">\u2013</span>\n <cui-input-number\n [ngModel]=\"tmpMax()\"\n (ngModelChange)=\"onTmpMaxChange($event)\"\n [cuiTextFieldPlaceholder]=\"maxPlaceholder() | transloco\"\n />\n </div>\n <div class=\"range-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.range-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.range-filter__trigger:hover{background:var(--cui-base-200)}.range-filter__trigger:focus{outline:none}.range-filter__trigger_active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.range-filter__trigger_active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.range-filter__value{font-weight:500;font-size:12px;line-height:14px;max-width:200px;overflow:hidden;color:var(--cui-base-900);text-overflow:ellipsis;white-space:nowrap}.range-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.range-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);overflow:hidden;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026}.range-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.range-filter__inputs{display:flex;flex-direction:row;gap:8px;align-items:center}.range-filter__separator{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-500)}.range-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4802
|
+
}
|
|
4803
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiRangeFilterComponent, decorators: [{
|
|
4804
|
+
type: Component,
|
|
4805
|
+
args: [{ selector: 'cui-range-filter', standalone: true, imports: [
|
|
4806
|
+
CuiButtonModule,
|
|
4807
|
+
CuiDropdownDirective,
|
|
4808
|
+
CuiFilterRemoveButtonComponent,
|
|
4809
|
+
CuiInputNumberModule,
|
|
4810
|
+
CuiSvgModule,
|
|
4811
|
+
CuiTooltipDirective,
|
|
4812
|
+
FormsModule,
|
|
4813
|
+
TranslocoPipe
|
|
4814
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"range-filter__trigger\"\n [class.range-filter__trigger_active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n (isOpened)=\"onDropdownOpened($event)\"\n>\n @if (hasValue()) {\n <span\n class=\"range-filter__value\"\n [cuiTooltip]=\"displayValue()\"\n >\n {{ displayValue() }}\n </span>\n } @else {\n <span class=\"range-filter__placeholder\">{{ 'ENTER_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"range-filter__dropdown\">\n <div class=\"range-filter__label\">\n {{ 'FILTER_BY' | transloco: { field: filter().field.label | transloco } }}\n </div>\n <div class=\"range-filter__inputs\">\n <cui-input-number\n [ngModel]=\"tmpMin()\"\n (ngModelChange)=\"onTmpMinChange($event)\"\n [cuiTextFieldPlaceholder]=\"minPlaceholder() | transloco\"\n />\n <span class=\"range-filter__separator\">\u2013</span>\n <cui-input-number\n [ngModel]=\"tmpMax()\"\n (ngModelChange)=\"onTmpMaxChange($event)\"\n [cuiTextFieldPlaceholder]=\"maxPlaceholder() | transloco\"\n />\n </div>\n <div class=\"range-filter__footer\">\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"secondary\"\n (click)=\"dropdown.close()\"\n >\n {{ 'CANCEL' | transloco }}\n </button>\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n appearance=\"action-cyan\"\n (click)=\"applyValue(dropdown)\"\n >\n {{ 'APPLY' | transloco }}\n </button>\n </div>\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.range-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.range-filter__trigger:hover{background:var(--cui-base-200)}.range-filter__trigger:focus{outline:none}.range-filter__trigger_active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.range-filter__trigger_active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.range-filter__value{font-weight:500;font-size:12px;line-height:14px;max-width:200px;overflow:hidden;color:var(--cui-base-900);text-overflow:ellipsis;white-space:nowrap}.range-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.range-filter__dropdown{display:flex;flex-direction:column;gap:12px;padding:8px;width:300px;max-width:calc(100vw - 16px);overflow:hidden;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026}.range-filter__label{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-900)}.range-filter__inputs{display:flex;flex-direction:row;gap:8px;align-items:center}.range-filter__separator{font-weight:500;font-size:13px;line-height:16px;color:var(--cui-base-500)}.range-filter__footer{display:flex;flex-direction:row;gap:8px;justify-content:flex-end}\n"] }]
|
|
4815
|
+
}] });
|
|
4816
|
+
|
|
4817
|
+
class CuiSelectFilterComponent {
|
|
4818
|
+
constructor() {
|
|
4819
|
+
this.filter = input.required();
|
|
4820
|
+
this.removed = output();
|
|
4821
|
+
this.changed = output();
|
|
4822
|
+
this.currentValue = computed(() => {
|
|
4823
|
+
const f = this.filter();
|
|
4824
|
+
return f.value.type === 'select' ? f.value.value : null;
|
|
4825
|
+
});
|
|
4826
|
+
this.currentLabel = computed(() => {
|
|
4827
|
+
const f = this.filter();
|
|
4828
|
+
if (f.value.type !== 'select' || !f.value.value) {
|
|
4829
|
+
return '';
|
|
4830
|
+
}
|
|
4831
|
+
const selectedValue = f.value.value;
|
|
4832
|
+
const field = f.field;
|
|
4833
|
+
return field.selectOptions?.find((opt) => opt.value === selectedValue)?.label ?? selectedValue;
|
|
4834
|
+
});
|
|
4835
|
+
this.hasValue = computed(() => !!this.currentValue());
|
|
4836
|
+
this.options = computed(() => {
|
|
4837
|
+
const field = this.filter().field;
|
|
4838
|
+
return field.selectOptions ?? [];
|
|
4839
|
+
});
|
|
4840
|
+
}
|
|
4841
|
+
onRemove() {
|
|
4842
|
+
this.removed.emit(this.filter().id);
|
|
4843
|
+
}
|
|
4844
|
+
isOptionSelected(value) {
|
|
4845
|
+
return this.currentValue() === value;
|
|
4846
|
+
}
|
|
4847
|
+
selectOption(value, dropdown) {
|
|
4848
|
+
const f = this.filter();
|
|
4849
|
+
if (f.value.type !== 'select') {
|
|
4850
|
+
return;
|
|
4851
|
+
}
|
|
4852
|
+
this.changed.emit({
|
|
4853
|
+
...f,
|
|
4854
|
+
value: { ...f.value, value: f.value.value === value ? null : value }
|
|
4855
|
+
});
|
|
4856
|
+
dropdown.close();
|
|
4857
|
+
}
|
|
4858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4859
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiSelectFilterComponent, isStandalone: true, selector: "cui-select-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"select-filter__trigger\"\n [class.select-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n>\n @if (hasValue()) {\n <span\n class=\"select-filter__value\"\n [cuiTooltip]=\"currentLabel()\"\n >\n {{ currentLabel() }}\n </span>\n } @else {\n <span class=\"select-filter__placeholder\">{{ 'SELECT_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"select-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"select-filter__option\"\n [class.select-filter__option--selected]=\"isOptionSelected(opt.value)\"\n (click)=\"selectOption(opt.value, dropdown)\"\n >\n {{ opt.label }}\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.select-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.select-filter__trigger:hover{background:var(--cui-base-200)}.select-filter__trigger:focus{outline:none}.select-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.select-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.select-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.select-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.select-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.select-filter__option:hover{background:var(--cui-base-50)}.select-filter__option--selected{background:var(--cui-lavender-bg);font-weight:500}\n"], dependencies: [{ kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4860
|
+
}
|
|
4861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectFilterComponent, decorators: [{
|
|
4862
|
+
type: Component,
|
|
4863
|
+
args: [{ selector: 'cui-select-filter', standalone: true, imports: [
|
|
4864
|
+
CuiDropdownDirective,
|
|
4865
|
+
CuiFilterRemoveButtonComponent,
|
|
4866
|
+
CuiSvgModule,
|
|
4867
|
+
CuiTooltipDirective,
|
|
4868
|
+
TranslocoPipe
|
|
4869
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"select-filter__trigger\"\n [class.select-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n>\n @if (hasValue()) {\n <span\n class=\"select-filter__value\"\n [cuiTooltip]=\"currentLabel()\"\n >\n {{ currentLabel() }}\n </span>\n } @else {\n <span class=\"select-filter__placeholder\">{{ 'SELECT_VALUE' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"select-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"select-filter__option\"\n [class.select-filter__option--selected]=\"isOptionSelected(opt.value)\"\n (click)=\"selectOption(opt.value, dropdown)\"\n >\n {{ opt.label }}\n </button>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.select-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.select-filter__trigger:hover{background:var(--cui-base-200)}.select-filter__trigger:focus{outline:none}.select-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.select-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.select-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.select-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.select-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.select-filter__option:hover{background:var(--cui-base-50)}.select-filter__option--selected{background:var(--cui-lavender-bg);font-weight:500}\n"] }]
|
|
4870
|
+
}] });
|
|
4871
|
+
|
|
4872
|
+
class CuiMultiSelectFilterComponent {
|
|
4873
|
+
constructor() {
|
|
4874
|
+
this.filter = input.required();
|
|
4875
|
+
this.removed = output();
|
|
4876
|
+
this.changed = output();
|
|
4877
|
+
this.currentValues = computed(() => {
|
|
4878
|
+
const f = this.filter();
|
|
4879
|
+
return f.value.type === 'multiselect' ? f.value.values : [];
|
|
4880
|
+
});
|
|
4881
|
+
this.currentLabels = computed(() => {
|
|
4882
|
+
const f = this.filter();
|
|
4883
|
+
if (f.value.type !== 'multiselect') {
|
|
4884
|
+
return '';
|
|
4885
|
+
}
|
|
4886
|
+
const field = f.field;
|
|
4887
|
+
return f.value.values
|
|
4888
|
+
.map((val) => field.multiSelectOptions?.find((opt) => opt.value === val)?.label ?? val)
|
|
4889
|
+
.join(', ');
|
|
4890
|
+
});
|
|
4891
|
+
this.hasValue = computed(() => this.currentValues().length > 0);
|
|
4892
|
+
this.options = computed(() => {
|
|
4893
|
+
const field = this.filter().field;
|
|
4894
|
+
return field.multiSelectOptions ?? [];
|
|
4895
|
+
});
|
|
4896
|
+
}
|
|
4897
|
+
onRemove() {
|
|
4898
|
+
this.removed.emit(this.filter().id);
|
|
4899
|
+
}
|
|
4900
|
+
isOptionSelected(value) {
|
|
4901
|
+
return this.currentValues().includes(value);
|
|
4902
|
+
}
|
|
4903
|
+
toggleOption(value) {
|
|
4904
|
+
const f = this.filter();
|
|
4905
|
+
if (f.value.type !== 'multiselect') {
|
|
4906
|
+
return;
|
|
4907
|
+
}
|
|
4908
|
+
const currentValues = f.value.values;
|
|
4909
|
+
const newValues = currentValues.includes(value)
|
|
4910
|
+
? currentValues.filter((v) => v !== value)
|
|
4911
|
+
: [...currentValues, value];
|
|
4912
|
+
this.changed.emit({
|
|
4913
|
+
...f,
|
|
4914
|
+
value: { ...f.value, values: newValues }
|
|
4915
|
+
});
|
|
4916
|
+
}
|
|
4917
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMultiSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4918
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiMultiSelectFilterComponent, isStandalone: true, selector: "cui-multiselect-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"multiselect-filter__trigger\"\n [class.multiselect-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n>\n @if (hasValue()) {\n <span\n class=\"multiselect-filter__value\"\n [cuiTooltip]=\"currentLabels()\"\n >\n {{ currentLabels() }}\n </span>\n } @else {\n <span class=\"multiselect-filter__placeholder\">{{ 'SELECT_VALUES' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"multiselect-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <label class=\"multiselect-filter__option\">\n <input\n type=\"checkbox\"\n cuiCheckbox\n [checked]=\"isOptionSelected(opt.value)\"\n (change)=\"toggleOption(opt.value)\"\n />\n <span>{{ opt.label }}</span>\n </label>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.multiselect-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.multiselect-filter__trigger:hover{background:var(--cui-base-200)}.multiselect-filter__trigger:focus{outline:none}.multiselect-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.multiselect-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.multiselect-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.multiselect-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.multiselect-filter__option{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-filter__option:hover{background:var(--cui-base-50)}.multiselect-filter__option span{font-weight:400;font-size:13px;line-height:16px;color:var(--cui-base-900)}\n"], dependencies: [{ kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4919
|
+
}
|
|
4920
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMultiSelectFilterComponent, decorators: [{
|
|
4921
|
+
type: Component,
|
|
4922
|
+
args: [{ selector: 'cui-multiselect-filter', standalone: true, imports: [
|
|
4923
|
+
CuiCheckboxModule,
|
|
4924
|
+
CuiDropdownDirective,
|
|
4925
|
+
CuiFilterRemoveButtonComponent,
|
|
4926
|
+
CuiSvgModule,
|
|
4927
|
+
CuiTooltipDirective,
|
|
4928
|
+
TranslocoPipe
|
|
4929
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label | transloco\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"multiselect-filter__trigger\"\n [class.multiselect-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"dropdownTpl\"\n>\n @if (hasValue()) {\n <span\n class=\"multiselect-filter__value\"\n [cuiTooltip]=\"currentLabels()\"\n >\n {{ currentLabels() }}\n </span>\n } @else {\n <span class=\"multiselect-filter__placeholder\">{{ 'SELECT_VALUES' | transloco }}</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #dropdownTpl>\n <div class=\"multiselect-filter__dropdown\">\n @for (opt of options(); track opt.value) {\n <label class=\"multiselect-filter__option\">\n <input\n type=\"checkbox\"\n cuiCheckbox\n [checked]=\"isOptionSelected(opt.value)\"\n (change)=\"toggleOption(opt.value)\"\n />\n <span>{{ opt.label }}</span>\n </label>\n }\n </div>\n</ng-template>", styles: [":host{display:inline-flex}.multiselect-filter__trigger{padding:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.multiselect-filter__trigger:hover{background:var(--cui-base-200)}.multiselect-filter__trigger:focus{outline:none}.multiselect-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.multiselect-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.multiselect-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.multiselect-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.multiselect-filter__option{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-filter__option:hover{background:var(--cui-base-50)}.multiselect-filter__option span{font-weight:400;font-size:13px;line-height:16px;color:var(--cui-base-900)}\n"] }]
|
|
4930
|
+
}] });
|
|
4931
|
+
|
|
4932
|
+
class CuiAddFilterButtonComponent {
|
|
4933
|
+
constructor() {
|
|
4934
|
+
this.availableFields = input.required();
|
|
4935
|
+
this.fieldSelected = output();
|
|
4936
|
+
}
|
|
4937
|
+
selectField(field, dropdown) {
|
|
4938
|
+
this.fieldSelected.emit(field);
|
|
4939
|
+
dropdown.close();
|
|
4940
|
+
}
|
|
4941
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAddFilterButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4942
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiAddFilterButtonComponent, isStandalone: true, selector: "cui-add-filter-button", inputs: { availableFields: { classPropertyName: "availableFields", publicName: "availableFields", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { fieldSelected: "fieldSelected" }, ngImport: i0, template: "<div class=\"cui-add-filter\">\n <button\n type=\"button\"\n class=\"cui-add-filter__btn\"\n cuiButton\n size=\"xxs\"\n appearance=\"outlined\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n >\n <cui-svg\n icon=\"cuiIconPlusSm\"\n [width]=\"16\"\n color=\"var(--cui-info)\"\n />\n {{ 'ADD_FILTER' | transloco }}\n </button>\n <ng-template #dropdownTpl>\n <div class=\"cui-add-filter__dropdown\">\n @for (field of availableFields(); track field.id) {\n <button\n type=\"button\"\n class=\"cui-add-filter__dropdown-item\"\n (click)=\"selectField(field, dropdown)\"\n >\n {{ field.label | transloco }}\n </button>\n }\n </div>\n </ng-template>\n</div>", styles: [".cui-add-filter{position:relative;align-self:flex-start}.cui-add-filter__btn{color:var(--cui-light-blue-600)}.cui-add-filter__dropdown{padding-top:4px;padding-bottom:4px;display:flex;flex-direction:column;gap:0;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;overflow:hidden}.cui-add-filter__dropdown-item{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:20px;padding:8px 12px;display:block;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer}.cui-add-filter__dropdown-item:hover{background:var(--cui-base-50)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4943
|
+
}
|
|
4944
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiAddFilterButtonComponent, decorators: [{
|
|
4945
|
+
type: Component,
|
|
4946
|
+
args: [{ selector: 'cui-add-filter-button', standalone: true, imports: [CuiButtonModule, CuiDropdownDirective, CuiSvgModule, TranslocoPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cui-add-filter\">\n <button\n type=\"button\"\n class=\"cui-add-filter__btn\"\n cuiButton\n size=\"xxs\"\n appearance=\"outlined\"\n [cuiDropdown]=\"dropdownTpl\"\n #dropdown=\"cuiDropdown\"\n >\n <cui-svg\n icon=\"cuiIconPlusSm\"\n [width]=\"16\"\n color=\"var(--cui-info)\"\n />\n {{ 'ADD_FILTER' | transloco }}\n </button>\n <ng-template #dropdownTpl>\n <div class=\"cui-add-filter__dropdown\">\n @for (field of availableFields(); track field.id) {\n <button\n type=\"button\"\n class=\"cui-add-filter__dropdown-item\"\n (click)=\"selectField(field, dropdown)\"\n >\n {{ field.label | transloco }}\n </button>\n }\n </div>\n </ng-template>\n</div>", styles: [".cui-add-filter{position:relative;align-self:flex-start}.cui-add-filter__btn{color:var(--cui-light-blue-600)}.cui-add-filter__dropdown{padding-top:4px;padding-bottom:4px;display:flex;flex-direction:column;gap:0;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;overflow:hidden}.cui-add-filter__dropdown-item{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:20px;padding:8px 12px;display:block;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer}.cui-add-filter__dropdown-item:hover{background:var(--cui-base-50)}\n"] }]
|
|
4947
|
+
}] });
|
|
4948
|
+
|
|
4949
|
+
const DEFAULT_OPERATOR_LABELS = {
|
|
4950
|
+
on: 'On',
|
|
4951
|
+
before: 'Before',
|
|
4952
|
+
after: 'After',
|
|
4953
|
+
between: 'Between'
|
|
4954
|
+
};
|
|
4955
|
+
class CuiDateFilterComponent {
|
|
4956
|
+
constructor() {
|
|
4957
|
+
this.filter = input.required();
|
|
4958
|
+
this.removed = output();
|
|
4959
|
+
this.changed = output();
|
|
4960
|
+
this.operatorOptions = computed(() => {
|
|
4961
|
+
const field = this.filter().field;
|
|
4962
|
+
const operators = field.dateOperators ?? ['on', 'before', 'after', 'between'];
|
|
4963
|
+
return operators.map((op) => ({
|
|
4964
|
+
value: op,
|
|
4965
|
+
label: field.operatorLabels?.[op] ?? DEFAULT_OPERATOR_LABELS[op]
|
|
4966
|
+
}));
|
|
4967
|
+
});
|
|
4968
|
+
this.currentOperator = computed(() => {
|
|
4969
|
+
const f = this.filter();
|
|
4970
|
+
return f.value.type === 'date' ? f.value.operator : 'on';
|
|
4971
|
+
});
|
|
4972
|
+
this.operatorLabel = computed(() => {
|
|
4973
|
+
const options = this.operatorOptions();
|
|
4974
|
+
const op = options.find((o) => o.value === this.currentOperator());
|
|
4975
|
+
return op?.label ?? '';
|
|
4976
|
+
});
|
|
4977
|
+
this.dateLabel = computed(() => {
|
|
4978
|
+
const f = this.filter();
|
|
4979
|
+
if (f.value.type !== 'date') {
|
|
4980
|
+
return '';
|
|
4981
|
+
}
|
|
4982
|
+
const dateValue = f.value;
|
|
4983
|
+
if (dateValue.operator === 'between') {
|
|
4984
|
+
if (dateValue.rangeStart && dateValue.rangeEnd) {
|
|
4985
|
+
return `${this.formatDate(dateValue.rangeStart)} - ${this.formatDate(dateValue.rangeEnd)}`;
|
|
4986
|
+
}
|
|
4987
|
+
return '';
|
|
4988
|
+
}
|
|
4989
|
+
return dateValue.value ? this.formatDate(dateValue.value) : '';
|
|
4990
|
+
});
|
|
4991
|
+
this.hasValue = computed(() => {
|
|
4992
|
+
const f = this.filter();
|
|
4993
|
+
if (f.value.type !== 'date') {
|
|
4994
|
+
return false;
|
|
4995
|
+
}
|
|
4996
|
+
if (f.value.operator === 'between') {
|
|
4997
|
+
return !!f.value.rangeStart && !!f.value.rangeEnd;
|
|
4998
|
+
}
|
|
4999
|
+
return !!f.value.value;
|
|
5000
|
+
});
|
|
5001
|
+
this.rangeStart = computed(() => {
|
|
5002
|
+
const f = this.filter();
|
|
5003
|
+
return f.value.type === 'date' && f.value.rangeStart ? new Date(f.value.rangeStart) : null;
|
|
5004
|
+
});
|
|
5005
|
+
this.rangeEnd = computed(() => {
|
|
5006
|
+
const f = this.filter();
|
|
5007
|
+
return f.value.type === 'date' && f.value.rangeEnd ? new Date(f.value.rangeEnd) : null;
|
|
5008
|
+
});
|
|
5009
|
+
this.selectedDate = computed(() => {
|
|
5010
|
+
const f = this.filter();
|
|
5011
|
+
return f.value.type === 'date' && f.value.value ? new Date(f.value.value) : null;
|
|
5012
|
+
});
|
|
5013
|
+
this.calendarMode = computed(() => (this.currentOperator() === 'between' ? 'range' : 'single'));
|
|
5014
|
+
}
|
|
5015
|
+
onRemove() {
|
|
5016
|
+
this.removed.emit(this.filter().id);
|
|
5017
|
+
}
|
|
5018
|
+
selectOperator(operator, dropdown) {
|
|
5019
|
+
const f = this.filter();
|
|
5020
|
+
if (f.value.type !== 'date') {
|
|
5021
|
+
return;
|
|
5022
|
+
}
|
|
5023
|
+
const isBetween = operator === 'between';
|
|
5024
|
+
const updated = {
|
|
5025
|
+
...f,
|
|
5026
|
+
value: {
|
|
5027
|
+
type: 'date',
|
|
5028
|
+
operator,
|
|
5029
|
+
value: isBetween ? null : f.value.value,
|
|
5030
|
+
rangeStart: isBetween ? f.value.rangeStart : null,
|
|
5031
|
+
rangeEnd: isBetween ? f.value.rangeEnd : null
|
|
5032
|
+
}
|
|
5033
|
+
};
|
|
5034
|
+
this.changed.emit(updated);
|
|
5035
|
+
dropdown.close();
|
|
5036
|
+
}
|
|
5037
|
+
onRangeSelected(range, dropdown) {
|
|
5038
|
+
const f = this.filter();
|
|
5039
|
+
if (f.value.type !== 'date') {
|
|
5040
|
+
return;
|
|
5041
|
+
}
|
|
5042
|
+
this.changed.emit({
|
|
5043
|
+
...f,
|
|
5044
|
+
value: {
|
|
5045
|
+
type: 'date',
|
|
5046
|
+
operator: 'between',
|
|
5047
|
+
value: null,
|
|
5048
|
+
rangeStart: range.start,
|
|
5049
|
+
rangeEnd: range.end
|
|
5050
|
+
}
|
|
5051
|
+
});
|
|
5052
|
+
dropdown.close();
|
|
5053
|
+
}
|
|
5054
|
+
onSingleDateSelected(date, dropdown) {
|
|
5055
|
+
const f = this.filter();
|
|
5056
|
+
if (f.value.type !== 'date') {
|
|
5057
|
+
return;
|
|
5058
|
+
}
|
|
5059
|
+
this.changed.emit({
|
|
5060
|
+
...f,
|
|
5061
|
+
value: {
|
|
5062
|
+
type: 'date',
|
|
5063
|
+
operator: f.value.operator,
|
|
5064
|
+
value: date,
|
|
5065
|
+
rangeStart: null,
|
|
5066
|
+
rangeEnd: null
|
|
5067
|
+
}
|
|
5068
|
+
});
|
|
5069
|
+
dropdown.close();
|
|
5070
|
+
}
|
|
5071
|
+
formatDate(date) {
|
|
5072
|
+
return date.toLocaleDateString();
|
|
5073
|
+
}
|
|
5074
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5075
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiDateFilterComponent, isStandalone: true, selector: "cui-date-filter", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { removed: "removed", changed: "changed" }, ngImport: i0, template: "<cui-filter-remove-button\n [label]=\"filter().field.label\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"date-filter__operator\"\n [cuiDropdown]=\"operatorDropdownTpl\"\n #operatorDropdown=\"cuiDropdown\"\n>\n <span class=\"date-filter__operator-label\">{{ operatorLabel() }}</span>\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<button\n type=\"button\"\n class=\"date-filter__trigger\"\n [class.date-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"calendarDropdownTpl\"\n #calendarDropdown=\"cuiDropdown\"\n>\n @if (dateLabel()) {\n <span class=\"date-filter__value\">\n {{ dateLabel() }}\n </span>\n } @else {\n <span class=\"date-filter__placeholder\">Select date</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #operatorDropdownTpl>\n <div class=\"date-filter__dropdown\">\n @for (op of operatorOptions(); track op.value) {\n <button\n type=\"button\"\n class=\"date-filter__option\"\n [class.date-filter__option--selected]=\"currentOperator() === op.value\"\n (click)=\"selectOperator(op.value, operatorDropdown)\"\n >\n {{ op.label }}\n </button>\n }\n </div>\n</ng-template>\n\n<ng-template #calendarDropdownTpl>\n <div class=\"date-filter__calendar-dropdown\">\n <cui-date-range-calendar\n [mode]=\"calendarMode()\"\n [startDate]=\"rangeStart()\"\n [endDate]=\"rangeEnd()\"\n [selectedDate]=\"selectedDate()\"\n (rangeSelected)=\"onRangeSelected($event, calendarDropdown)\"\n (dateSelected)=\"onSingleDateSelected($event, calendarDropdown)\"\n (cancelled)=\"calendarDropdown.close()\"\n />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}.date-filter__operator{padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:4px;height:28px;background:transparent;border:1px solid var(--cui-base-200);cursor:pointer}.date-filter__operator:hover{background:var(--cui-base-200)}.date-filter__operator:focus{outline:none}.date-filter__operator-label{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900)}.date-filter__trigger{padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.date-filter__trigger:hover{background:var(--cui-base-200)}.date-filter__trigger:focus{outline:none}.date-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.date-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.date-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.date-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.date-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.date-filter__option:hover{background:var(--cui-base-50)}.date-filter__option--selected{background:var(--cui-lavender-bg)}.date-filter__calendar-dropdown{background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiDateRangeCalendarComponent, selector: "cui-date-range-calendar", inputs: ["mode", "startDate", "endDate", "selectedDate"], outputs: ["rangeSelected", "dateSelected", "cancelled"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiFilterRemoveButtonComponent, selector: "cui-filter-remove-button", inputs: ["label"], outputs: ["removed"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5076
|
+
}
|
|
5077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDateFilterComponent, decorators: [{
|
|
5078
|
+
type: Component,
|
|
5079
|
+
args: [{ selector: 'cui-date-filter', standalone: true, imports: [
|
|
5080
|
+
CuiButtonModule,
|
|
5081
|
+
CuiDateRangeCalendarComponent,
|
|
5082
|
+
CuiDropdownDirective,
|
|
5083
|
+
CuiFilterRemoveButtonComponent,
|
|
5084
|
+
CuiSvgModule
|
|
5085
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-filter-remove-button\n [label]=\"filter().field.label\"\n (removed)=\"onRemove()\"\n/>\n\n<button\n type=\"button\"\n class=\"date-filter__operator\"\n [cuiDropdown]=\"operatorDropdownTpl\"\n #operatorDropdown=\"cuiDropdown\"\n>\n <span class=\"date-filter__operator-label\">{{ operatorLabel() }}</span>\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<button\n type=\"button\"\n class=\"date-filter__trigger\"\n [class.date-filter__trigger--active]=\"hasValue()\"\n [cuiDropdown]=\"calendarDropdownTpl\"\n #calendarDropdown=\"cuiDropdown\"\n>\n @if (dateLabel()) {\n <span class=\"date-filter__value\">\n {{ dateLabel() }}\n </span>\n } @else {\n <span class=\"date-filter__placeholder\">Select date</span>\n }\n <cui-svg icon=\"cuiIconChevronDown\" />\n</button>\n\n<ng-template #operatorDropdownTpl>\n <div class=\"date-filter__dropdown\">\n @for (op of operatorOptions(); track op.value) {\n <button\n type=\"button\"\n class=\"date-filter__option\"\n [class.date-filter__option--selected]=\"currentOperator() === op.value\"\n (click)=\"selectOperator(op.value, operatorDropdown)\"\n >\n {{ op.label }}\n </button>\n }\n </div>\n</ng-template>\n\n<ng-template #calendarDropdownTpl>\n <div class=\"date-filter__calendar-dropdown\">\n <cui-date-range-calendar\n [mode]=\"calendarMode()\"\n [startDate]=\"rangeStart()\"\n [endDate]=\"rangeEnd()\"\n [selectedDate]=\"selectedDate()\"\n (rangeSelected)=\"onRangeSelected($event, calendarDropdown)\"\n (dateSelected)=\"onSingleDateSelected($event, calendarDropdown)\"\n (cancelled)=\"calendarDropdown.close()\"\n />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}.date-filter__operator{padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:4px;height:28px;background:transparent;border:1px solid var(--cui-base-200);cursor:pointer}.date-filter__operator:hover{background:var(--cui-base-200)}.date-filter__operator:focus{outline:none}.date-filter__operator-label{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900)}.date-filter__trigger{padding-right:6px;padding-left:6px;font-weight:500;font-size:12px;line-height:14px;display:inline-flex;align-items:center;gap:8px;height:28px;background:transparent;border:1px solid var(--cui-base-200);border-top-right-radius:8px;border-bottom-right-radius:8px;cursor:pointer}.date-filter__trigger:hover{background:var(--cui-base-200)}.date-filter__trigger:focus{outline:none}.date-filter__trigger--active{background:var(--cui-lavender-bg);border-color:var(--cui-badge-lavender-label)}.date-filter__trigger--active:hover{background:var(--cui-base-200);border-color:var(--cui-base-200)}.date-filter__value{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-filter__placeholder{font-weight:500;font-size:12px;line-height:14px;color:var(--cui-base-500)}.date-filter__dropdown{display:flex;flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;min-width:165px;background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}.date-filter__option{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-start;border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;font-weight:400;font-size:13px;line-height:16px;padding:8px 12px;width:100%;text-align:left;color:var(--cui-base-900);cursor:pointer;-webkit-user-select:none;user-select:none}.date-filter__option:hover{background:var(--cui-base-50)}.date-filter__option--selected{background:var(--cui-lavender-bg)}.date-filter__calendar-dropdown{background:var(--cui-base-0);border:1px solid var(--cui-base-200);border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden}\n"] }]
|
|
5086
|
+
}] });
|
|
5087
|
+
|
|
5088
|
+
function buildOutputObject(filters) {
|
|
5089
|
+
const result = {};
|
|
5090
|
+
for (const filter of filters) {
|
|
5091
|
+
const entries = extractEntries(filter.field, filter.value);
|
|
5092
|
+
for (const [path, val] of entries) {
|
|
5093
|
+
setByPath(result, path, val);
|
|
5094
|
+
}
|
|
5095
|
+
}
|
|
5096
|
+
return result;
|
|
5097
|
+
}
|
|
5098
|
+
function extractEntries(field, value) {
|
|
5099
|
+
switch (field.type) {
|
|
5100
|
+
case 'string': {
|
|
5101
|
+
const v = value;
|
|
5102
|
+
if (!v.value)
|
|
5103
|
+
return [];
|
|
5104
|
+
return [[field.outputMapping.value, v.value]];
|
|
5105
|
+
}
|
|
5106
|
+
case 'select': {
|
|
5107
|
+
const v = value;
|
|
5108
|
+
if (v.value == null)
|
|
5109
|
+
return [];
|
|
5110
|
+
return [[field.outputMapping.value, v.value]];
|
|
5111
|
+
}
|
|
5112
|
+
case 'multiselect': {
|
|
5113
|
+
const v = value;
|
|
5114
|
+
if (!v.values.length)
|
|
5115
|
+
return [];
|
|
5116
|
+
return [[field.outputMapping.values, v.values]];
|
|
5117
|
+
}
|
|
5118
|
+
case 'date': {
|
|
5119
|
+
const v = value;
|
|
5120
|
+
const mapping = field.outputMapping;
|
|
5121
|
+
return buildDateEntries(v.operator, v.value, v.rangeStart, v.rangeEnd, mapping.start, mapping.end);
|
|
5122
|
+
}
|
|
5123
|
+
case 'range': {
|
|
5124
|
+
const v = value;
|
|
5125
|
+
const mapping = field.outputMapping;
|
|
5126
|
+
const entries = [];
|
|
5127
|
+
if (v.min != null)
|
|
5128
|
+
entries.push([mapping.min, v.min]);
|
|
5129
|
+
if (v.max != null)
|
|
5130
|
+
entries.push([mapping.max, v.max]);
|
|
5131
|
+
return entries;
|
|
5132
|
+
}
|
|
5133
|
+
}
|
|
5134
|
+
}
|
|
5135
|
+
function buildDateEntries(operator, value, rangeStart, rangeEnd, startPath, endPath) {
|
|
5136
|
+
const entries = [];
|
|
5137
|
+
switch (operator) {
|
|
5138
|
+
case 'on':
|
|
5139
|
+
if (value) {
|
|
5140
|
+
entries.push([startPath, formatDateStart(value)]);
|
|
5141
|
+
entries.push([endPath, formatDateEnd(value)]);
|
|
5142
|
+
}
|
|
5143
|
+
break;
|
|
5144
|
+
case 'before':
|
|
5145
|
+
if (value) {
|
|
5146
|
+
entries.push([endPath, formatDateEnd(value)]);
|
|
5147
|
+
}
|
|
5148
|
+
break;
|
|
5149
|
+
case 'after':
|
|
5150
|
+
if (value) {
|
|
5151
|
+
entries.push([startPath, formatDateStart(value)]);
|
|
5152
|
+
}
|
|
5153
|
+
break;
|
|
5154
|
+
case 'between':
|
|
5155
|
+
if (rangeStart)
|
|
5156
|
+
entries.push([startPath, formatDateStart(rangeStart)]);
|
|
5157
|
+
if (rangeEnd)
|
|
5158
|
+
entries.push([endPath, formatDateEnd(rangeEnd)]);
|
|
5159
|
+
break;
|
|
5160
|
+
}
|
|
5161
|
+
return entries;
|
|
5162
|
+
}
|
|
5163
|
+
function formatDateStart(date) {
|
|
5164
|
+
return formatDate(date) + 'T00:00:00';
|
|
5165
|
+
}
|
|
5166
|
+
function formatDateEnd(date) {
|
|
5167
|
+
return formatDate(date) + 'T23:59:59';
|
|
5168
|
+
}
|
|
5169
|
+
function formatDate(date) {
|
|
5170
|
+
const y = date.getFullYear();
|
|
5171
|
+
const m = String(date.getMonth() + 1).padStart(2, '0');
|
|
5172
|
+
const d = String(date.getDate()).padStart(2, '0');
|
|
5173
|
+
return `${y}-${m}-${d}`;
|
|
5174
|
+
}
|
|
5175
|
+
function setByPath(obj, path, value) {
|
|
5176
|
+
const keys = path.split('.');
|
|
5177
|
+
let current = obj;
|
|
5178
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
5179
|
+
const key = keys[i];
|
|
5180
|
+
if (!(key in current) || typeof current[key] !== 'object' || current[key] === null) {
|
|
5181
|
+
current[key] = {};
|
|
5182
|
+
}
|
|
5183
|
+
current = current[key];
|
|
5184
|
+
}
|
|
5185
|
+
current[keys[keys.length - 1]] = value;
|
|
5186
|
+
}
|
|
5187
|
+
function buildDefaultValue(field) {
|
|
5188
|
+
switch (field.type) {
|
|
5189
|
+
case 'string':
|
|
5190
|
+
return { type: 'string', operator: field.stringOperators?.[0] ?? 'contains', value: '' };
|
|
5191
|
+
case 'select':
|
|
5192
|
+
return { type: 'select', operator: field.selectOperators?.[0] ?? 'equals', value: null };
|
|
5193
|
+
case 'multiselect':
|
|
5194
|
+
return { type: 'multiselect', operator: field.multiSelectOperators?.[0] ?? 'in', values: [] };
|
|
5195
|
+
case 'date':
|
|
5196
|
+
return { type: 'date', operator: field.dateOperators?.[0] ?? 'on', value: null, rangeStart: null, rangeEnd: null };
|
|
5197
|
+
case 'range':
|
|
5198
|
+
return { type: 'range', min: null, max: null };
|
|
5199
|
+
}
|
|
5200
|
+
}
|
|
5201
|
+
|
|
5202
|
+
class CuiFilterBarComponent {
|
|
5203
|
+
constructor() {
|
|
5204
|
+
this.fields = input.required();
|
|
5205
|
+
this.filterChange = output();
|
|
5206
|
+
this._filters = signal([]);
|
|
5207
|
+
this.availableFields = computed(() => {
|
|
5208
|
+
const usedFieldIds = new Set(this._filters().map(f => f.field.id));
|
|
5209
|
+
return this.fields().filter(f => !usedFieldIds.has(f.id));
|
|
5210
|
+
});
|
|
5211
|
+
}
|
|
5212
|
+
selectField(field) {
|
|
5213
|
+
const newFilter = {
|
|
5214
|
+
id: crypto.randomUUID(),
|
|
5215
|
+
field,
|
|
5216
|
+
value: buildDefaultValue(field)
|
|
5217
|
+
};
|
|
5218
|
+
this._filters.set([...this._filters(), newFilter]);
|
|
5219
|
+
this.emitFilterChange();
|
|
5220
|
+
}
|
|
5221
|
+
onFilterChanged(updated) {
|
|
5222
|
+
const next = this._filters().map(f => (f.id === updated.id ? updated : f));
|
|
5223
|
+
this._filters.set(next);
|
|
5224
|
+
this.emitFilterChange();
|
|
5225
|
+
}
|
|
5226
|
+
onFilterRemoved(id) {
|
|
5227
|
+
const next = this._filters().filter(f => f.id !== id);
|
|
5228
|
+
this._filters.set(next);
|
|
5229
|
+
this.emitFilterChange();
|
|
5230
|
+
}
|
|
5231
|
+
emitFilterChange() {
|
|
5232
|
+
this.filterChange.emit(buildOutputObject(this._filters()));
|
|
5233
|
+
}
|
|
5234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiFilterBarComponent, isStandalone: true, selector: "cui-filter-bar", inputs: { fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filterChange: "filterChange" }, ngImport: i0, template: "<div class=\"cui-filter-bar\">\n <div class=\"cui-filter-bar__list\">\n @for (filter of _filters(); track filter.id) {\n @switch (filter.field.type) {\n @case ('string') {\n <cui-string-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('date') {\n <cui-date-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('range') {\n <cui-range-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('select') {\n <cui-select-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('multiselect') {\n <cui-multiselect-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n }\n }\n\n @if (availableFields().length > 0) {\n <cui-add-filter-button\n [availableFields]=\"availableFields()\"\n (fieldSelected)=\"selectField($event)\"\n />\n }\n </div>\n</div>\n", styles: [".cui-filter-bar{display:flex;flex-direction:row;gap:12px}.cui-filter-bar__list{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: CuiAddFilterButtonComponent, selector: "cui-add-filter-button", inputs: ["availableFields"], outputs: ["fieldSelected"] }, { kind: "component", type: CuiDateFilterComponent, selector: "cui-date-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiMultiSelectFilterComponent, selector: "cui-multiselect-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiRangeFilterComponent, selector: "cui-range-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiSelectFilterComponent, selector: "cui-select-filter", inputs: ["filter"], outputs: ["removed", "changed"] }, { kind: "component", type: CuiStringFilterComponent, selector: "cui-string-filter", inputs: ["filter"], outputs: ["removed", "changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5236
|
+
}
|
|
5237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarComponent, decorators: [{
|
|
5238
|
+
type: Component,
|
|
5239
|
+
args: [{ selector: 'cui-filter-bar', standalone: true, imports: [
|
|
5240
|
+
CuiAddFilterButtonComponent,
|
|
5241
|
+
CuiDateFilterComponent,
|
|
5242
|
+
CuiFilterRemoveButtonComponent,
|
|
5243
|
+
CuiMultiSelectFilterComponent,
|
|
5244
|
+
CuiRangeFilterComponent,
|
|
5245
|
+
CuiSelectFilterComponent,
|
|
5246
|
+
CuiStringFilterComponent
|
|
5247
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cui-filter-bar\">\n <div class=\"cui-filter-bar__list\">\n @for (filter of _filters(); track filter.id) {\n @switch (filter.field.type) {\n @case ('string') {\n <cui-string-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('date') {\n <cui-date-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('range') {\n <cui-range-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('select') {\n <cui-select-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n @case ('multiselect') {\n <cui-multiselect-filter\n [filter]=\"filter\"\n (changed)=\"onFilterChanged($event)\"\n (removed)=\"onFilterRemoved($event)\"\n />\n }\n }\n }\n\n @if (availableFields().length > 0) {\n <cui-add-filter-button\n [availableFields]=\"availableFields()\"\n (fieldSelected)=\"selectField($event)\"\n />\n }\n </div>\n</div>\n", styles: [".cui-filter-bar{display:flex;flex-direction:row;gap:12px}.cui-filter-bar__list{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}\n"] }]
|
|
5248
|
+
}] });
|
|
5249
|
+
|
|
5250
|
+
class CuiFilterBarModule {
|
|
5251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5252
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, imports: [CuiFilterBarComponent], exports: [CuiFilterBarComponent] }); }
|
|
5253
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, imports: [CuiFilterBarComponent] }); }
|
|
5254
|
+
}
|
|
5255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterBarModule, decorators: [{
|
|
5256
|
+
type: NgModule,
|
|
5257
|
+
args: [{
|
|
5258
|
+
imports: [CuiFilterBarComponent],
|
|
5259
|
+
exports: [CuiFilterBarComponent]
|
|
5260
|
+
}]
|
|
5261
|
+
}] });
|
|
5262
|
+
|
|
4453
5263
|
const COMBINED_TEXT_BLOCK_PART = 'combined-text-block-part';
|
|
4454
5264
|
const COMBINED_TEXT_BLOCK = 'combined-text-block';
|
|
4455
5265
|
const COMBINED_TEXT_BLOCK_NAME = 'paragraph';
|
|
@@ -5229,7 +6039,7 @@ class MarkerModalComponent {
|
|
|
5229
6039
|
this.element.style.top = bottom + this.spaceBetweenTargetAndList + 'px';
|
|
5230
6040
|
}
|
|
5231
6041
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkerModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5232
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MarkerModalComponent, isStandalone: true, selector: "ng-component", inputs: { title: "title", url: "url", tool: "tool", isGlobal: "isGlobal", isTool: "isTool", target: "target", space: "space" }, outputs: { saveClicked: "saveClicked", cancelClicked: "cancelClicked" }, host: { properties: { "class._hidden": "this.hide", "class._fixed": "this.fixed" } }, hostDirectives: [{ directive: i1$1.CuiClickOutsideDirective }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <ng-container *ngIf=\"isVisible()\">\n <form\n autocomplete=\"off\"\n class=\"wrapper\"\n >\n <cui-form-field>\n <!-- eslint-disable-next-line -->\n <label\n [for]=\"titleId\"\n cuiLabel\n [isRequired]=\"true\"\n (click)=\"onTitleLabelClick(titleElement)\"\n >\n {{ t('TITLE') }}\n </label>\n <!-- TODO: \u0435\u0441\u043B\u0438 \u043D\u0430\u0439\u0434\u0435\u0442\u0441\u044F \u0432\u0430\u0440\u0438\u043A \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 -->\n <div\n class=\"title\"\n [class.title_invalid]=\"isTitleInvalid()\"\n >\n <div\n #titleElement\n class=\"title__text\"\n contenteditable\n attr.data-placeholder=\"{{ t('TITLE') }}...\"\n (paste)=\"onTitlePaste($event)\"\n (keyup)=\"onTitleChange($event)\"\n [innerHTML]=\"startTitle\"\n ></div>\n <button\n type=\"button\"\n class=\"title__clear\"\n (click)=\"onClearTitle(titleElement)\"\n >\n <cui-svg\n icon=\"cuiIconClear\"\n color=\"var(--cui-base-300)\"\n class=\"title__icon\"\n />\n </button>\n </div>\n\n <cui-hint\n *ngIf=\"isTitleInvalid()\"\n hintType=\"error\"\n >\n <ng-container *ngIf=\"isTitleEmpty()\">\n {{ t('FIELD_IS_REQUIRED') }}\n </ng-container>\n <ng-container *ngIf=\"isTitleMoreThanMaxLength()\">\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: TITLE_MAX_LENGTH }) }}\n </ng-container>\n </cui-hint>\n </cui-form-field>\n <cui-form-field>\n <label\n [for]=\"dataId\"\n cuiLabel\n [isRequired]=\"true\"\n >\n {{ isTool ? t('TOOL') : t('URL') }}\n </label>\n <ng-container *ngIf=\"dynamicDataControl\">\n <ng-container *ngIf=\"isTool; else input\">\n <div>\n <button\n #target=\"elementRef\"\n class=\"button tool-button\"\n cuiButton\n type=\"button\"\n cuiElement\n appearance=\"outlined-gray\"\n size=\"sm\"\n >\n {{ $any(dynamicDataControl.value)?.title || t('SELECT_TOOL') }}\n </button>\n </div>\n <cc-marker-select\n [formControl]=\"dynamicDataControl\"\n [target]=\"target.nativeElement\"\n />\n </ng-container>\n <ng-template #input>\n <cui-input-text\n [cuiTextFieldId]=\"dataId\"\n [formControl]=\"dynamicDataControl\"\n autocomplete=\"off\"\n [cuiTextFieldIsError]=\"isDynamicDataErrorShown\"\n cuiTextFieldPlaceholder=\"{{ t('LINK') }}...\"\n />\n <cui-hint\n *ngIf=\"isDynamicDataErrorShown\"\n hintType=\"error\"\n >\n <ng-container *ngIf=\"dynamicDataControl.errors?.['required']\">\n {{ t('FIELD_IS_REQUIRED') }}\n </ng-container>\n <ng-container *ngIf=\"dynamicDataControl.errors?.['url']\">\n {{ t('INVALID_URL') }}\n </ng-container>\n </cui-hint>\n </ng-template>\n </ng-container>\n </cui-form-field>\n <div class=\"buttons\">\n <button\n cuiButton\n type=\"button\"\n appearance=\"outlined-gray\"\n size=\"sm\"\n (click)=\"onCancel()\"\n >\n {{ t('CANCEL') }}\n </button>\n <button\n cuiButton\n type=\"submit\"\n appearance=\"action\"\n size=\"sm\"\n [disabled]=\"isFormInvalid\"\n (click)=\"onSave()\"\n >\n {{ t('SAVE') }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n", styles: [":host{position:absolute;z-index:1;left:0}:host._fixed{position:fixed}:host._hidden{position:fixed;visibility:hidden}:host ::ng-deep .tool-button{width:100%}:host ::ng-deep .tool-button>span{justify-content:flex-start!important}.wrapper{padding:11px;box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;display:flex;flex-direction:column;gap:16px;border-radius:8px;border:1px solid var(--cui-base-200);max-width:450px;background-color:var(--cui-base-0)}.buttons{padding-top:12px;display:flex;justify-content:flex-end;gap:12px}.title{padding:7px 13px;cursor:text;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;width:426px;background:var(--cui-input);color:var(--cui-base-900)}.title:hover{border-color:var(--cui-base-300)}.title:focus-within{outline:none;box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.title_invalid,.title_invalid:focus-within{box-shadow:none;border-color:var(--cui-danger)}.title__text{flex-grow:1;text-wrap:nowrap;overflow:hidden}.title__text[data-placeholder]:empty:before{content:attr(data-placeholder);position:absolute;color:var(--cui-base-400)}.title__text:focus{outline:none}.title__clear{padding:0;visibility:hidden}.title__icon{width:16px}.title__icon ::ng-deep [stroke]{stroke:var(--cui-base-0)}.title__text:not(:empty)+.title__clear{visibility:visible}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MarkerSelectComponent, selector: "cc-marker-select", inputs: ["target", "space"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6042
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MarkerModalComponent, isStandalone: true, selector: "ng-component", inputs: { title: "title", url: "url", tool: "tool", isGlobal: "isGlobal", isTool: "isTool", target: "target", space: "space" }, outputs: { saveClicked: "saveClicked", cancelClicked: "cancelClicked" }, host: { properties: { "class._hidden": "this.hide", "class._fixed": "this.fixed" } }, hostDirectives: [{ directive: i1$1.CuiClickOutsideDirective }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <ng-container *ngIf=\"isVisible()\">\n <form\n autocomplete=\"off\"\n class=\"wrapper\"\n >\n <cui-form-field>\n <!-- eslint-disable-next-line -->\n <label\n [for]=\"titleId\"\n cuiLabel\n [isRequired]=\"true\"\n (click)=\"onTitleLabelClick(titleElement)\"\n >\n {{ t('TITLE') }}\n </label>\n <!-- TODO: \u0435\u0441\u043B\u0438 \u043D\u0430\u0439\u0434\u0435\u0442\u0441\u044F \u0432\u0430\u0440\u0438\u043A \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 -->\n <div\n class=\"title\"\n [class.title_invalid]=\"isTitleInvalid()\"\n >\n <div\n #titleElement\n class=\"title__text\"\n contenteditable\n attr.data-placeholder=\"{{ t('TITLE') }}...\"\n (paste)=\"onTitlePaste($event)\"\n (keyup)=\"onTitleChange($event)\"\n [innerHTML]=\"startTitle\"\n ></div>\n <button\n type=\"button\"\n class=\"title__clear\"\n (click)=\"onClearTitle(titleElement)\"\n >\n <cui-svg\n icon=\"cuiIconClear\"\n color=\"var(--cui-base-300)\"\n class=\"title__icon\"\n />\n </button>\n </div>\n\n <cui-hint\n *ngIf=\"isTitleInvalid()\"\n hintType=\"error\"\n >\n <ng-container *ngIf=\"isTitleEmpty()\">\n {{ t('FIELD_IS_REQUIRED') }}\n </ng-container>\n <ng-container *ngIf=\"isTitleMoreThanMaxLength()\">\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: TITLE_MAX_LENGTH }) }}\n </ng-container>\n </cui-hint>\n </cui-form-field>\n <cui-form-field>\n <label\n [for]=\"dataId\"\n cuiLabel\n [isRequired]=\"true\"\n >\n {{ isTool ? t('TOOL') : t('URL') }}\n </label>\n <ng-container *ngIf=\"dynamicDataControl\">\n <ng-container *ngIf=\"isTool; else input\">\n <div>\n <button\n #target=\"elementRef\"\n class=\"button tool-button\"\n cuiButton\n type=\"button\"\n cuiElement\n appearance=\"outlined-gray\"\n size=\"sm\"\n >\n {{ $any(dynamicDataControl.value)?.title || t('SELECT_TOOL') }}\n </button>\n </div>\n <cc-marker-select\n [formControl]=\"dynamicDataControl\"\n [target]=\"target.nativeElement\"\n />\n </ng-container>\n <ng-template #input>\n <cui-input-text\n [cuiTextFieldId]=\"dataId\"\n [formControl]=\"dynamicDataControl\"\n autocomplete=\"off\"\n [cuiTextFieldIsError]=\"isDynamicDataErrorShown\"\n cuiTextFieldPlaceholder=\"{{ t('LINK') }}...\"\n />\n <cui-hint\n *ngIf=\"isDynamicDataErrorShown\"\n hintType=\"error\"\n >\n <ng-container *ngIf=\"dynamicDataControl.errors?.['required']\">\n {{ t('FIELD_IS_REQUIRED') }}\n </ng-container>\n <ng-container *ngIf=\"dynamicDataControl.errors?.['url']\">\n {{ t('INVALID_URL') }}\n </ng-container>\n </cui-hint>\n </ng-template>\n </ng-container>\n </cui-form-field>\n <div class=\"buttons\">\n <button\n cuiButton\n type=\"button\"\n appearance=\"outlined-gray\"\n size=\"sm\"\n (click)=\"onCancel()\"\n >\n {{ t('CANCEL') }}\n </button>\n <button\n cuiButton\n type=\"submit\"\n appearance=\"action\"\n size=\"sm\"\n [disabled]=\"isFormInvalid\"\n (click)=\"onSave()\"\n >\n {{ t('SAVE') }}\n </button>\n </div>\n </form>\n </ng-container>\n</ng-container>\n", styles: [":host{position:absolute;z-index:1;left:0}:host._fixed{position:fixed}:host._hidden{position:fixed;visibility:hidden}:host ::ng-deep .tool-button{width:100%}:host ::ng-deep .tool-button>span{justify-content:flex-start!important}.wrapper{padding:11px;box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;display:flex;flex-direction:column;gap:16px;border-radius:8px;border:1px solid var(--cui-base-200);max-width:450px;background-color:var(--cui-base-0)}.buttons{padding-top:12px;display:flex;justify-content:flex-end;gap:12px}.title{padding:7px 13px;cursor:text;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;width:426px;background:var(--cui-input);color:var(--cui-base-900)}.title:hover{border-color:var(--cui-base-300)}.title:focus-within{outline:none;box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.title_invalid,.title_invalid:focus-within{box-shadow:none;border-color:var(--cui-danger)}.title__text{flex-grow:1;text-wrap:nowrap;overflow:hidden}.title__text[data-placeholder]:empty:before{content:attr(data-placeholder);position:absolute;color:var(--cui-base-400)}.title__text:focus{outline:none}.title__clear{padding:0;visibility:hidden}.title__icon{width:16px}.title__icon ::ng-deep [stroke]{stroke:var(--cui-base-0)}.title__text:not(:empty)+.title__clear{visibility:visible}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MarkerSelectComponent, selector: "cc-marker-select", inputs: ["target", "space"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5233
6043
|
}
|
|
5234
6044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkerModalComponent, decorators: [{
|
|
5235
6045
|
type: Component,
|
|
@@ -8526,7 +9336,7 @@ class CuiCategoryFormComponent {
|
|
|
8526
9336
|
Promise.resolve().then(() => this.input().nativeElement.focus());
|
|
8527
9337
|
}
|
|
8528
9338
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoryFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8529
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiCategoryFormComponent, isStandalone: true, selector: "cui-category-form", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, defaultTitle: { classPropertyName: "defaultTitle", publicName: "defaultTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", canceled: "canceled" }, host: { listeners: { "click": "onHostClick($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <form\n [formGroup]=\"form\"\n class=\"form\"\n (ngSubmit)=\"onSubmit()\"\n >\n <div class=\"input\">\n <input\n #input\n cuiGhostInput\n formControlName=\"title\"\n type=\"text\"\n placeholder=\"{{ t('ADD_CATEGORY_NAME') }}...\"\n [isError]=\"isTitleInvalid\"\n (keyup)=\"$event.preventDefault()\"\n />\n <cui-general-control-error-hint [control]=\"titleControl\" />\n </div>\n <button\n cuiIconButton\n type=\"submit\"\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"isSubmitButtonDisabled\"\n class=\"button\"\n ></button>\n </form>\n <button\n cuiIconButton\n type=\"button\"\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n (click)=\"onCancel($event)\"\n [disabled]=\"isDisabled()\"\n class=\"button\"\n ></button>\n</ng-container>\n", styles: [":host{padding-top:2px;padding-bottom:2px;display:flex;gap:4px;flex-grow:1}.form,.input{flex-grow:1}.form{display:flex;flex-direction:row;gap:4px}.input{display:flex;flex-direction:column;gap:4px;align-items:flex-start;justify-content:flex-start}.button{width:28px}.button:disabled{opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "component", type: CuiGhostInputComponent, selector: "input [cuiGhostInput]", inputs: ["isError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
9339
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiCategoryFormComponent, isStandalone: true, selector: "cui-category-form", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, defaultTitle: { classPropertyName: "defaultTitle", publicName: "defaultTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", canceled: "canceled" }, host: { listeners: { "click": "onHostClick($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <form\n [formGroup]=\"form\"\n class=\"form\"\n (ngSubmit)=\"onSubmit()\"\n >\n <div class=\"input\">\n <input\n #input\n cuiGhostInput\n formControlName=\"title\"\n type=\"text\"\n placeholder=\"{{ t('ADD_CATEGORY_NAME') }}...\"\n [isError]=\"isTitleInvalid\"\n (keyup)=\"$event.preventDefault()\"\n />\n <cui-general-control-error-hint [control]=\"titleControl\" />\n </div>\n <button\n cuiIconButton\n type=\"submit\"\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"isSubmitButtonDisabled\"\n class=\"button\"\n ></button>\n </form>\n <button\n cuiIconButton\n type=\"button\"\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n (click)=\"onCancel($event)\"\n [disabled]=\"isDisabled()\"\n class=\"button\"\n ></button>\n</ng-container>\n", styles: [":host{padding-top:2px;padding-bottom:2px;display:flex;gap:4px;flex-grow:1}.form,.input{flex-grow:1}.form{display:flex;flex-direction:row;gap:4px}.input{display:flex;flex-direction:column;gap:4px;align-items:flex-start;justify-content:flex-start}.button{width:28px}.button:disabled{opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "component", type: CuiGhostInputComponent, selector: "input [cuiGhostInput]", inputs: ["isError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8530
9340
|
}
|
|
8531
9341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoryFormComponent, decorators: [{
|
|
8532
9342
|
type: Component,
|
|
@@ -8909,7 +9719,7 @@ class CuiCheckListBlockListItemActionCardComponent {
|
|
|
8909
9719
|
});
|
|
8910
9720
|
}
|
|
8911
9721
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8912
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemActionCardComponent, isStandalone: true, selector: "cui-checklist-block-list-item-action-card", inputs: { purposeType: { classPropertyName: "purposeType", publicName: "purposeType", isSignal: true, isRequired: false, transformFunction: null }, isConsiderationNeeded: { classPropertyName: "isConsiderationNeeded", publicName: "isConsiderationNeeded", isSignal: true, isRequired: false, transformFunction: null }, actionInfo: { classPropertyName: "actionInfo", publicName: "actionInfo", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { consideredCorrectChanged: "consideredCorrectChanged", checkListActionChanged: "checkListActionChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"card\"\n [formGroup]=\"actionForm\"\n >\n <div class=\"title-container\">\n <span class=\"title\">{{ actionInfo().title }}</span>\n @if (isConsiderationNeeded()) {\n <label\n cuiLabel\n class=\"title__input\"\n >\n <input\n cuiRadio\n type=\"radio\"\n [checked]=\"actionInfo().considerCorrect\"\n [formControl]=\"isConsideredCorrectControl\"\n [value]=\"true\"\n />\n {{ t('CONSIDER_CORRECT') }}\n </label>\n }\n </div>\n <div class=\"blocks\">\n <div\n class=\"block-card\"\n [formGroup]=\"photoGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"block-card\"\n [formGroup]=\"commentGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n </div>\n</ng-container>\n", styles: [":host{flex:1 1 240px;min-width:240px}.card{padding:11px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--cui-base-200);border-radius:8px}.title-container{display:flex;flex-direction:row;gap:8px;justify-content:space-between;align-items:center}.title{font-weight:500;font-size:14px;line-height:20px}.title__input{font-weight:400;font-size:14px;line-height:20px}.blocks{display:flex;flex-direction:column;gap:8px}.block-card{padding:13px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px}.block-card_multiple-lines{flex-direction:column;align-items:unset}.block-card__checkboxes-container{padding:13px 8px;display:flex;gap:12px}\n"], dependencies: [{ kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiRadioModule }, { kind: "component", type: CuiRadioComponent, selector: "input[type=\"radio\"][cuiRadio]" }, { kind: "ngmodule", type: CuiSelectModule }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "ngmodule", type: CuiToggleModule }, { kind: "component", type: CuiToggleComponent, selector: "input[type=\"checkbox\"][cuiToggle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
9722
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemActionCardComponent, isStandalone: true, selector: "cui-checklist-block-list-item-action-card", inputs: { purposeType: { classPropertyName: "purposeType", publicName: "purposeType", isSignal: true, isRequired: false, transformFunction: null }, isConsiderationNeeded: { classPropertyName: "isConsiderationNeeded", publicName: "isConsiderationNeeded", isSignal: true, isRequired: false, transformFunction: null }, actionInfo: { classPropertyName: "actionInfo", publicName: "actionInfo", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { consideredCorrectChanged: "consideredCorrectChanged", checkListActionChanged: "checkListActionChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div\n class=\"card\"\n [formGroup]=\"actionForm\"\n >\n <div class=\"title-container\">\n <span class=\"title\">{{ actionInfo().title }}</span>\n @if (isConsiderationNeeded()) {\n <label\n cuiLabel\n class=\"title__input\"\n >\n <input\n cuiRadio\n type=\"radio\"\n [checked]=\"actionInfo().considerCorrect\"\n [formControl]=\"isConsideredCorrectControl\"\n [value]=\"true\"\n />\n {{ t('CONSIDER_CORRECT') }}\n </label>\n }\n </div>\n <div class=\"blocks\">\n <div\n class=\"block-card\"\n [formGroup]=\"photoGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"block-card\"\n [formGroup]=\"commentGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n </div>\n</ng-container>\n", styles: [":host{flex:1 1 240px;min-width:240px}.card{padding:11px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--cui-base-200);border-radius:8px}.title-container{display:flex;flex-direction:row;gap:8px;justify-content:space-between;align-items:center}.title{font-weight:500;font-size:14px;line-height:20px}.title__input{font-weight:400;font-size:14px;line-height:20px}.blocks{display:flex;flex-direction:column;gap:8px}.block-card{padding:13px 11px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px}.block-card_multiple-lines{flex-direction:column;align-items:unset}.block-card__checkboxes-container{padding:13px 8px;display:flex;gap:12px}\n"], dependencies: [{ kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiRadioModule }, { kind: "component", type: CuiRadioComponent, selector: "input[type=\"radio\"][cuiRadio]" }, { kind: "ngmodule", type: CuiSelectModule }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "ngmodule", type: CuiToggleModule }, { kind: "component", type: CuiToggleComponent, selector: "input[type=\"checkbox\"][cuiToggle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8913
9723
|
}
|
|
8914
9724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemActionCardComponent, decorators: [{
|
|
8915
9725
|
type: Component,
|
|
@@ -8999,7 +9809,7 @@ class CuiChecklistBlockTitleControlComponent {
|
|
|
8999
9809
|
return this.control().invalid && this.control().dirty;
|
|
9000
9810
|
}
|
|
9001
9811
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiChecklistBlockTitleControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9002
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiChecklistBlockTitleControlComponent, isStandalone: true, selector: "cui-checklist-block-title-control", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"title\"\n >\n {{ t('TITLE') }}\n </label>\n <cui-input-text\n [formControl]=\"control()\"\n cuiTextFieldId=\"title\"\n [cuiTextFieldIsError]=\"isTitleError\"\n cuiTextFieldPlaceholder=\"{{ t('ADD_A_TITLE') }}...\"\n />\n <cui-general-control-error-hint [control]=\"control()\" />\n </cui-form-field>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
9812
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiChecklistBlockTitleControlComponent, isStandalone: true, selector: "cui-checklist-block-title-control", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"title\"\n >\n {{ t('TITLE') }}\n </label>\n <cui-input-text\n [formControl]=\"control()\"\n cuiTextFieldId=\"title\"\n [cuiTextFieldIsError]=\"isTitleError\"\n cuiTextFieldPlaceholder=\"{{ t('ADD_A_TITLE') }}...\"\n />\n <cui-general-control-error-hint [control]=\"control()\" />\n </cui-form-field>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9003
9813
|
}
|
|
9004
9814
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiChecklistBlockTitleControlComponent, decorators: [{
|
|
9005
9815
|
type: Component,
|
|
@@ -9230,7 +10040,7 @@ class CuiCheckListBlockListItemEvaluationCriteriaComponent {
|
|
|
9230
10040
|
});
|
|
9231
10041
|
}
|
|
9232
10042
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationCriteriaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, isStandalone: true, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: { loadingIds: { classPropertyName: "loadingIds", publicName: "loadingIds", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, criteriaGroup: { classPropertyName: "criteriaGroup", publicName: "criteriaGroup", isSignal: true, isRequired: true, transformFunction: null }, evaluationCriteriaFormArray: { classPropertyName: "evaluationCriteriaFormArray", publicName: "evaluationCriteriaFormArray", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { saveClicked: "saveClicked", deleteClicked: "deleteClicked", cancelClicked: "cancelClicked" }, ngImport: i0, template: "<div *transloco=\"let t\">\n <form\n *cuiLet=\"criteriaGroup() as form\"\n [formGroup]=\"form\"\n [class.form_edit]=\"isEditMode()\"\n clas=\"form\"\n >\n <div class=\"content\">\n <span class=\"index\">{{ index() }}.</span>\n @if (!isEditMode()) {\n <cui-svg\n cuiDragPointer\n icon=\"cuiIconDragHandleDots\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n }\n <div\n style.gap=\"{{ gap() }}px\"\n class=\"wrapper\"\n >\n <cui-input-number\n formControlName=\"evaluation\"\n cuiTextFieldPlaceholder=\"0\"\n [cuiTextFieldIsError]=\"isEvaluationInvalid\"\n [min]=\"1\"\n [max]=\"99\"\n class=\"input-number\"\n />\n <textarea\n cuiTextarea\n formControlName=\"criteria\"\n [rows]=\"1\"\n [cuiTextFieldIsError]=\"isCriteriaInvalid\"\n placeholder=\"{{ t('ADD_A_DESCRIPTION') }}...\"\n class=\"textarea\"\n ></textarea>\n </div>\n @if (isEditMode()) {\n <button\n type=\"submit\"\n cuiIconButton\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"form.invalid\"\n class=\"button\"\n (click)=\"onSave()\"\n ></button>\n <button\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n class=\"button\"\n (click)=\"onCancel()\"\n ></button>\n } @else {\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n [disabled]=\"isLoading()\"\n (click)=\"onToggleEditMode()\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconTrash\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDelete()\"\n ></button>\n }\n </div>\n <cui-general-control-error-hint\n [control]=\"form.controls.criteria\"\n class=\"error-hint\"\n />\n </form>\n</div>\n", styles: [".form{display:flex;flex-direction:column;gap:8px}.form_edit{padding:12px;border-radius:8px;border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}.content{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start}.index{font-weight:500;font-size:14px;line-height:20px;width:22px}.icon{cursor:grab}.icon:active{cursor:grabbing}.wrapper{display:flex;flex-direction:row;gap:0;flex-grow:1}.input-number{padding-right:9px;padding-left:9px;flex-shrink:0;width:44px;background:inherit}.input-number._disabled{cursor:initial;opacity:1;border-right-width:0;border-radius:8px 0 0 8px}.input-number ::ng-deep .c-input{text-align:center}.input-number ::ng-deep .c-input:disabled{cursor:text}.textarea{background:var(--cui-base-0)}.textarea:disabled{cursor:initial;opacity:1;background:var(--cui-base-0);border-left-width:0;border-radius:0 8px 8px 0}.button:disabled{cursor:not-allowed;opacity:.5}.error-hint{margin-left:82px}.cui-drag-drop-placeholder{height:44px;border:1px dashed var(--cui-base-200);border-radius:8px;background:var(--cui-base-0)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "component", type: CuiTextareaComponent, selector: "textarea[cuiTextarea]", inputs: ["rows", "noBordersAndPaddings"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
10043
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, isStandalone: true, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: { loadingIds: { classPropertyName: "loadingIds", publicName: "loadingIds", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, criteriaGroup: { classPropertyName: "criteriaGroup", publicName: "criteriaGroup", isSignal: true, isRequired: true, transformFunction: null }, evaluationCriteriaFormArray: { classPropertyName: "evaluationCriteriaFormArray", publicName: "evaluationCriteriaFormArray", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { saveClicked: "saveClicked", deleteClicked: "deleteClicked", cancelClicked: "cancelClicked" }, ngImport: i0, template: "<div *transloco=\"let t\">\n <form\n *cuiLet=\"criteriaGroup() as form\"\n [formGroup]=\"form\"\n [class.form_edit]=\"isEditMode()\"\n clas=\"form\"\n >\n <div class=\"content\">\n <span class=\"index\">{{ index() }}.</span>\n @if (!isEditMode()) {\n <cui-svg\n cuiDragPointer\n icon=\"cuiIconDragHandleDots\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n }\n <div\n style.gap=\"{{ gap() }}px\"\n class=\"wrapper\"\n >\n <cui-input-number\n formControlName=\"evaluation\"\n cuiTextFieldPlaceholder=\"0\"\n [cuiTextFieldIsError]=\"isEvaluationInvalid\"\n [min]=\"1\"\n [max]=\"99\"\n class=\"input-number\"\n />\n <textarea\n cuiTextarea\n formControlName=\"criteria\"\n [rows]=\"1\"\n [cuiTextFieldIsError]=\"isCriteriaInvalid\"\n placeholder=\"{{ t('ADD_A_DESCRIPTION') }}...\"\n class=\"textarea\"\n ></textarea>\n </div>\n @if (isEditMode()) {\n <button\n type=\"submit\"\n cuiIconButton\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"form.invalid\"\n class=\"button\"\n (click)=\"onSave()\"\n ></button>\n <button\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n class=\"button\"\n (click)=\"onCancel()\"\n ></button>\n } @else {\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n [disabled]=\"isLoading()\"\n (click)=\"onToggleEditMode()\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconTrash\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDelete()\"\n ></button>\n }\n </div>\n <cui-general-control-error-hint\n [control]=\"form.controls.criteria\"\n class=\"error-hint\"\n />\n </form>\n</div>\n", styles: [".form{display:flex;flex-direction:column;gap:8px}.form_edit{padding:12px;border-radius:8px;border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}.content{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start}.index{font-weight:500;font-size:14px;line-height:20px;width:22px}.icon{cursor:grab}.icon:active{cursor:grabbing}.wrapper{display:flex;flex-direction:row;gap:0;flex-grow:1}.input-number{padding-right:9px;padding-left:9px;flex-shrink:0;width:44px;background:inherit}.input-number._disabled{cursor:initial;opacity:1;border-right-width:0;border-radius:8px 0 0 8px}.input-number ::ng-deep .c-input{text-align:center}.input-number ::ng-deep .c-input:disabled{cursor:text}.textarea{background:var(--cui-base-0)}.textarea:disabled{cursor:initial;opacity:1;background:var(--cui-base-0);border-left-width:0;border-radius:0 8px 8px 0}.button:disabled{cursor:not-allowed;opacity:.5}.error-hint{margin-left:82px}.cui-drag-drop-placeholder{height:44px;border:1px dashed var(--cui-base-200);border-radius:8px;background:var(--cui-base-0)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "component", type: CuiTextareaComponent, selector: "textarea[cuiTextarea]", inputs: ["rows", "noBordersAndPaddings"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "directive", type: CuiDragPointerDirective, selector: "[cuiDragPointer]" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9234
10044
|
}
|
|
9235
10045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationCriteriaComponent, decorators: [{
|
|
9236
10046
|
type: Component,
|
|
@@ -9490,7 +10300,7 @@ class CuiCheckListBlockListItemEvaluationComponent {
|
|
|
9490
10300
|
array.splice(toIndex, 0, item);
|
|
9491
10301
|
}
|
|
9492
10302
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9493
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationComponent, isStandalone: true, selector: "cui-checklist-block-list-item-evaluation", inputs: { checkListItem: { classPropertyName: "checkListItem", publicName: "checkListItem", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"action\">\n <div class=\"action__inputs-container\">\n <div\n class=\"action__input\"\n [formGroup]=\"photoFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"action__input\"\n [formGroup]=\"commentFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n <div class=\"action__criteria-title-container\">\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"evaluationCriteria\"\n >\n {{ t('EVALUATION_CRITERIA') }}\n </label>\n <p class=\"action__criteria-subtitle\">{{ t('EACH_EVALUATION_CRITERION_SHOULD_BE') }}</p>\n </div>\n <ul\n cuiDragList\n class=\"list\"\n >\n @for (control of evaluationCriteriaFormArray.controls; track control.controls['id']; let index = $index) {\n <li\n cuiChecklistBlockListItemEvaluationCriteria\n [index]=\"index + 1\"\n cuiDragDrop\n [disabled]=\"isAddButtonDisabled()\"\n (elementDragged)=\"onDrop($event)\"\n [criteriaGroup]=\"control\"\n [evaluationCriteriaFormArray]=\"evaluationCriteriaFormArray\"\n [loadingIds]=\"loadingIds()\"\n (saveClicked)=\"onSaveEvaluationCriteria($event)\"\n (cancelClicked)=\"onCancelNewEvaluationCriteria()\"\n (deleteClicked)=\"openModalDeleteEvaluationCriteria($event)\"\n ></li>\n } @empty {\n <li\n cuiEmptyState\n [subtitle]=\"t('NO_EVALUATION_CRITERIA_TO_VIEW')\"\n ></li>\n }\n </ul>\n <div class=\"action__footer\">\n <button\n cuiButton\n size=\"xxs\"\n appearance=\"flat\"\n icon=\"cuiIconPlus\"\n type=\"button\"\n [disabled]=\"isAddButtonDisabled()\"\n (click)=\"onAddEvaluationCriteriaItem()\"\n >\n {{ t('NEW_OPTION') }}\n </button>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;border-radius:inherit}.action{padding:15px;display:flex;flex-direction:column;border-radius:0 0 8px 8px;gap:16px;background:var(--cui-base-10)}.action__criteria-title-container{display:flex;flex-direction:column;gap:4px}.action__criteria-subtitle{font-weight:400;font-size:14px;line-height:20px;color:var(--cui-base-500)}.action__inputs-container{display:flex;flex-direction:column;gap:8px;background:var(--cui-base-0)}.action__input{padding-right:11px;padding-left:11px;display:flex;height:48px;flex-direction:row;justify-content:space-between;border:1px solid var(--cui-base-200);border-radius:8px}.action__criteria{display:flex;flex-direction:row;align-items:center;gap:12px}.action__criteria-index{padding:8px;font-weight:500;font-size:14px;line-height:20px;display:flex;width:44px;flex-direction:row;justify-content:center;align-items:center;border-radius:8px;background-color:var(--cui-base-0)}.action__criteria-input{flex:1;background:var(--cui-base-0)}.list{display:flex;flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "component", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: ["loadingIds", "index", "criteriaGroup", "evaluationCriteriaFormArray"], outputs: ["saveClicked", "deleteClicked", "cancelClicked"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "ngmodule", type: CuiToggleModule }, { kind: "component", type: CuiToggleComponent, selector: "input[type=\"checkbox\"][cuiToggle]" }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
10303
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationComponent, isStandalone: true, selector: "cui-checklist-block-list-item-evaluation", inputs: { checkListItem: { classPropertyName: "checkListItem", publicName: "checkListItem", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"action\">\n <div class=\"action__inputs-container\">\n <div\n class=\"action__input\"\n [formGroup]=\"photoFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"action__input\"\n [formGroup]=\"commentFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n <div class=\"action__criteria-title-container\">\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"evaluationCriteria\"\n >\n {{ t('EVALUATION_CRITERIA') }}\n </label>\n <p class=\"action__criteria-subtitle\">{{ t('EACH_EVALUATION_CRITERION_SHOULD_BE') }}</p>\n </div>\n <ul\n cuiDragList\n class=\"list\"\n >\n @for (control of evaluationCriteriaFormArray.controls; track control.controls['id']; let index = $index) {\n <li\n cuiChecklistBlockListItemEvaluationCriteria\n [index]=\"index + 1\"\n cuiDragDrop\n [disabled]=\"isAddButtonDisabled()\"\n (elementDragged)=\"onDrop($event)\"\n [criteriaGroup]=\"control\"\n [evaluationCriteriaFormArray]=\"evaluationCriteriaFormArray\"\n [loadingIds]=\"loadingIds()\"\n (saveClicked)=\"onSaveEvaluationCriteria($event)\"\n (cancelClicked)=\"onCancelNewEvaluationCriteria()\"\n (deleteClicked)=\"openModalDeleteEvaluationCriteria($event)\"\n ></li>\n } @empty {\n <li\n cuiEmptyState\n [subtitle]=\"t('NO_EVALUATION_CRITERIA_TO_VIEW')\"\n ></li>\n }\n </ul>\n <div class=\"action__footer\">\n <button\n cuiButton\n size=\"xxs\"\n appearance=\"flat\"\n icon=\"cuiIconPlus\"\n type=\"button\"\n [disabled]=\"isAddButtonDisabled()\"\n (click)=\"onAddEvaluationCriteriaItem()\"\n >\n {{ t('NEW_OPTION') }}\n </button>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;border-radius:inherit}.action{padding:15px;display:flex;flex-direction:column;border-radius:0 0 8px 8px;gap:16px;background:var(--cui-base-10)}.action__criteria-title-container{display:flex;flex-direction:column;gap:4px}.action__criteria-subtitle{font-weight:400;font-size:14px;line-height:20px;color:var(--cui-base-500)}.action__inputs-container{display:flex;flex-direction:column;gap:8px;background:var(--cui-base-0)}.action__input{padding-right:11px;padding-left:11px;display:flex;height:48px;flex-direction:row;justify-content:space-between;border:1px solid var(--cui-base-200);border-radius:8px}.action__criteria{display:flex;flex-direction:row;align-items:center;gap:12px}.action__criteria-index{padding:8px;font-weight:500;font-size:14px;line-height:20px;display:flex;width:44px;flex-direction:row;justify-content:center;align-items:center;border-radius:8px;background-color:var(--cui-base-0)}.action__criteria-input{flex:1;background:var(--cui-base-0)}.list{display:flex;flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "component", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: ["loadingIds", "index", "criteriaGroup", "evaluationCriteriaFormArray"], outputs: ["saveClicked", "deleteClicked", "cancelClicked"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "ngmodule", type: CuiToggleModule }, { kind: "component", type: CuiToggleComponent, selector: "input[type=\"checkbox\"][cuiToggle]" }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: CuiDragDropDirective, selector: "[cuiDragDrop]", inputs: ["disabled"], outputs: ["elementDragged"] }, { kind: "directive", type: CuiDragListDirective, selector: "[cuiDragList]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9494
10304
|
}
|
|
9495
10305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationComponent, decorators: [{
|
|
9496
10306
|
type: Component,
|
|
@@ -9927,7 +10737,7 @@ class CuiCriterionInfoFormComponent {
|
|
|
9927
10737
|
return !this.isDescriptionEmpty() && !this.form.invalid;
|
|
9928
10738
|
}
|
|
9929
10739
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9930
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoFormComponent, isStandalone: true, selector: "cui-criterion-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n\n <cui-utility-thumbnail\n [context]=\"config().requestOptions\"\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["context", "thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
10740
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoFormComponent, isStandalone: true, selector: "cui-criterion-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n\n <cui-utility-thumbnail\n [context]=\"config().requestOptions\"\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["context", "thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9931
10741
|
}
|
|
9932
10742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoFormComponent, decorators: [{
|
|
9933
10743
|
type: Component,
|
|
@@ -10150,7 +10960,7 @@ class CuiInstructionInfoFormComponent {
|
|
|
10150
10960
|
return !this.isDescriptionEmpty() && !this.form.invalid;
|
|
10151
10961
|
}
|
|
10152
10962
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoFormComponent, isStandalone: true, selector: "cui-instruction-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-utility-thumbnail\n [context]=\"config().requestOptions\"\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["context", "thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
10963
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoFormComponent, isStandalone: true, selector: "cui-instruction-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-utility-thumbnail\n [context]=\"config().requestOptions\"\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["context", "thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10154
10964
|
}
|
|
10155
10965
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoFormComponent, decorators: [{
|
|
10156
10966
|
type: Component,
|
|
@@ -10771,7 +11581,7 @@ class CuiSelectModalSearchComponent {
|
|
|
10771
11581
|
.subscribe((value) => this.searchStringChanged.emit(value));
|
|
10772
11582
|
}
|
|
10773
11583
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectModalSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10774
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiSelectModalSearchComponent, isStandalone: true, selector: "cui-select-modal-search", inputs: { searchControl: { classPropertyName: "searchControl", publicName: "searchControl", isSignal: true, isRequired: false, transformFunction: null }, controlDelay: { classPropertyName: "controlDelay", publicName: "controlDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchStringChanged: "searchStringChanged" }, ngImport: i0, template: "<cui-input-text\n cuiTextFieldPlaceholder=\"Search...\"\n cuiTextFieldIconLeft=\"cuiIconSearch\"\n [formControl]=\"searchControl()\"\n class=\"search\"\n/>\n<button\n class=\"filters\"\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconFiltersLines\"\n></button>\n", styles: [":host{padding-right:15px;display:flex;align-items:center;gap:4px}.search{width:100%}.filters{padding:4px;width:auto;height:auto}\n"], dependencies: [{ kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIconLeftDirective, selector: "[cuiTextFieldIconLeft]", inputs: ["cuiTextFieldIconLeft"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
11584
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiSelectModalSearchComponent, isStandalone: true, selector: "cui-select-modal-search", inputs: { searchControl: { classPropertyName: "searchControl", publicName: "searchControl", isSignal: true, isRequired: false, transformFunction: null }, controlDelay: { classPropertyName: "controlDelay", publicName: "controlDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchStringChanged: "searchStringChanged" }, ngImport: i0, template: "<cui-input-text\n cuiTextFieldPlaceholder=\"Search...\"\n cuiTextFieldIconLeft=\"cuiIconSearch\"\n [formControl]=\"searchControl()\"\n class=\"search\"\n/>\n<button\n class=\"filters\"\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconFiltersLines\"\n></button>\n", styles: [":host{padding-right:15px;display:flex;align-items:center;gap:4px}.search{width:100%}.filters{padding:4px;width:auto;height:auto}\n"], dependencies: [{ kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIconLeftDirective, selector: "[cuiTextFieldIconLeft]", inputs: ["cuiTextFieldIconLeft"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10775
11585
|
}
|
|
10776
11586
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiSelectModalSearchComponent, decorators: [{
|
|
10777
11587
|
type: Component,
|
|
@@ -11488,7 +12298,7 @@ class ConsumableFormItemComponent {
|
|
|
11488
12298
|
});
|
|
11489
12299
|
}
|
|
11490
12300
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConsumableFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11491
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ConsumableFormItemComponent, isStandalone: true, selector: "cc-consumable-form-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, consumptionOptions: { classPropertyName: "consumptionOptions", publicName: "consumptionOptions", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { consumableChanged: "consumableChanged" }, ngImport: i0, template: "@let formData = form();\n\n@if (readonly()) {\n <cui-consumable-form-item-readonly\n [title]=\"title()\"\n [consumable]=\"consumable()\"\n />\n} @else {\n <form\n [formGroup]=\"formData\"\n *transloco=\"let t\"\n class=\"form\"\n >\n <span class=\"title\">{{ title() }}</span>\n\n <div class=\"wrapper-input\">\n <div class=\"form__input\">\n @let quantity = formData.controls.quantity;\n\n <label [for]=\"consumptionId\">{{ t('AMOUNT') }}</label>\n <div class=\"field\">\n <cui-input-number\n [cuiTextFieldId]=\"quantityId\"\n cuiTextFieldPlaceholder=\"0\"\n formControlName=\"quantity\"\n [cuiTextFieldIsError]=\"!!quantity.errors && quantity.dirty\"\n class=\"input\"\n />\n\n <cui-select\n [options]=\"piecesOptions()\"\n [class.options--error]=\"hasFormError()\"\n formControlName=\"unit\"\n class=\"options\"\n />\n </div>\n <cui-general-control-error-hint\n [control]=\"quantity\"\n [isVisible]=\"!!quantity.errors && quantity.dirty\"\n />\n </div>\n\n <div class=\"form__input\">\n @let measureFormGroup = formData.controls.measure;\n @let consumption = measureFormGroup.controls.value;\n\n <label [for]=\"consumptionId\">{{ t('MEASURE') }}</label>\n <div\n class=\"field\"\n [formGroup]=\"measureFormGroup\"\n >\n <cui-input-number\n [cuiTextFieldId]=\"consumptionId\"\n cuiTextFieldPlaceholder=\"0\"\n formControlName=\"value\"\n [precision]=\"3\"\n [cuiTextFieldIsError]=\"!!consumption.errors && consumption.dirty\"\n class=\"input\"\n />\n\n <cui-select\n [options]=\"consumptionOptions()\"\n [class.options--error]=\"hasFormError()\"\n formControlName=\"unit\"\n class=\"options\"\n />\n </div>\n <cui-general-control-error-hint\n [control]=\"consumption\"\n [isVisible]=\"!!consumption.errors && consumption.dirty\"\n />\n </div>\n </div>\n </form>\n}\n", styles: [":host{padding-top:6px;padding-bottom:6px;display:block}.title{font-weight:400;font-size:14px;line-height:20px;min-width:80px;align-self:center}.input{padding-right:84px;width:240px}.options{position:absolute;inset:1px 1px 1px auto;min-width:90px}.options ::ng-deep .c-button{border:0;height:100%}.options--error{inset:1px 20px 1px auto}.wrapper-input{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.form{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}.form__input{display:flex;flex-direction:column;gap:4px}.form__input cui-general-control-error-hint{display:block;min-height:20px}.field{display:flex;flex-direction:row;gap:4px;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
12301
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ConsumableFormItemComponent, isStandalone: true, selector: "cc-consumable-form-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, consumptionOptions: { classPropertyName: "consumptionOptions", publicName: "consumptionOptions", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { consumableChanged: "consumableChanged" }, ngImport: i0, template: "@let formData = form();\n\n@if (readonly()) {\n <cui-consumable-form-item-readonly\n [title]=\"title()\"\n [consumable]=\"consumable()\"\n />\n} @else {\n <form\n [formGroup]=\"formData\"\n *transloco=\"let t\"\n class=\"form\"\n >\n <span class=\"title\">{{ title() }}</span>\n\n <div class=\"wrapper-input\">\n <div class=\"form__input\">\n @let quantity = formData.controls.quantity;\n\n <label [for]=\"consumptionId\">{{ t('AMOUNT') }}</label>\n <div class=\"field\">\n <cui-input-number\n [cuiTextFieldId]=\"quantityId\"\n cuiTextFieldPlaceholder=\"0\"\n formControlName=\"quantity\"\n [cuiTextFieldIsError]=\"!!quantity.errors && quantity.dirty\"\n class=\"input\"\n />\n\n <cui-select\n [options]=\"piecesOptions()\"\n [class.options--error]=\"hasFormError()\"\n formControlName=\"unit\"\n class=\"options\"\n />\n </div>\n <cui-general-control-error-hint\n [control]=\"quantity\"\n [isVisible]=\"!!quantity.errors && quantity.dirty\"\n />\n </div>\n\n <div class=\"form__input\">\n @let measureFormGroup = formData.controls.measure;\n @let consumption = measureFormGroup.controls.value;\n\n <label [for]=\"consumptionId\">{{ t('MEASURE') }}</label>\n <div\n class=\"field\"\n [formGroup]=\"measureFormGroup\"\n >\n <cui-input-number\n [cuiTextFieldId]=\"consumptionId\"\n cuiTextFieldPlaceholder=\"0\"\n formControlName=\"value\"\n [precision]=\"3\"\n [cuiTextFieldIsError]=\"!!consumption.errors && consumption.dirty\"\n class=\"input\"\n />\n\n <cui-select\n [options]=\"consumptionOptions()\"\n [class.options--error]=\"hasFormError()\"\n formControlName=\"unit\"\n class=\"options\"\n />\n </div>\n <cui-general-control-error-hint\n [control]=\"consumption\"\n [isVisible]=\"!!consumption.errors && consumption.dirty\"\n />\n </div>\n </div>\n </form>\n}\n", styles: [":host{padding-top:6px;padding-bottom:6px;display:block}.title{font-weight:400;font-size:14px;line-height:20px;min-width:80px;align-self:center}.input{padding-right:84px;width:240px}.options{position:absolute;inset:1px 1px 1px auto;min-width:90px}.options ::ng-deep .c-button{border:0;height:100%}.options--error{inset:1px 20px 1px auto}.wrapper-input{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.form{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap}.form__input{display:flex;flex-direction:column;gap:4px}.form__input cui-general-control-error-hint{display:block;min-height:20px}.field{display:flex;flex-direction:row;gap:4px;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "ngmodule", type: CuiSelectModule }, { kind: "component", type: CuiSelectComponent, selector: "cui-select[options]", inputs: ["options", "defaultOptionText"] }, { kind: "component", type: ConsumableFormItemReadonlyComponent, selector: "cui-consumable-form-item-readonly", inputs: ["title", "consumable"] }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11492
12302
|
}
|
|
11493
12303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConsumableFormItemComponent, decorators: [{
|
|
11494
12304
|
type: Component,
|
|
@@ -11578,7 +12388,7 @@ class ToolFormComponent {
|
|
|
11578
12388
|
});
|
|
11579
12389
|
}
|
|
11580
12390
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11581
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolFormComponent, isStandalone: true, selector: "cui-tool-form", inputs: { utilityId: { classPropertyName: "utilityId", publicName: "utilityId", isSignal: true, isRequired: true, transformFunction: null }, tool: { classPropertyName: "tool", publicName: "tool", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, resourceType: { classPropertyName: "resourceType", publicName: "resourceType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toolChanged: "toolChanged", toolDeleted: "toolDeleted" }, host: { properties: { "class._disabled": "isLoading() || tool().isDelete" } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @let controlsData = controls();\n\n @if (readonly()) {\n <cc-tool-form-readonly [tool]=\"tool()\" />\n } @else if (controlsData) {\n <td class=\"cc-table__td info custom\">\n {{ tool().name }}\n\n @if (tool().isDelete) {\n <cui-badge\n class=\"badge\"\n [size]=\"'sm'\"\n color=\"red\"\n >\n {{ t('DELETED') }}\n </cui-badge>\n }\n </td>\n <td class=\"cc-table__td custom\">\n <cui-input-number\n type=\"text\"\n [formControl]=\"controlsData.quantity\"\n [cuiTextFieldIsError]=\"!!controlsData.quantity.errors && controlsData.quantity.dirty\"\n />\n <cui-general-control-error-hint\n [control]=\"controlsData.quantity\"\n [isVisible]=\"!!controlsData.quantity.errors && controlsData.quantity.dirty\"\n />\n </td>\n <td class=\"cc-table__td custom\">\n <cui-select\n [formControl]=\"controlsData.unit\"\n [options]=\"toolboxOptions()\"\n />\n </td>\n <td class=\"cc-table__td button custom\">\n <button\n type=\"button\"\n cuiButton\n icon=\"cuiIconTrash\"\n size=\"xxs\"\n appearance=\"ghost\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDeleteToolbox()\"\n ></button>\n </td>\n }\n</ng-container>\n", styles: [":host{display:contents}:host._disabled .custom{pointer-events:none;opacity:.7}:host._disabled .button{opacity:1;pointer-events:all}.info{display:flex;flex-direction:row;gap:0}.badge{margin-left:auto}.custom{padding-right:4px;padding-left:4px}.readonly{min-height:36px}\n"], dependencies: [{ kind: "component", type: ToolFormReadonlyComponent, selector: "cc-tool-form-readonly", inputs: ["tool"] }, { kind: "ngmodule", type: CuiSelectModule }, { kind: "component", type: CuiSelectComponent, selector: "cui-select[options]", inputs: ["options", "defaultOptionText"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
12391
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolFormComponent, isStandalone: true, selector: "cui-tool-form", inputs: { utilityId: { classPropertyName: "utilityId", publicName: "utilityId", isSignal: true, isRequired: true, transformFunction: null }, tool: { classPropertyName: "tool", publicName: "tool", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, resourceType: { classPropertyName: "resourceType", publicName: "resourceType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toolChanged: "toolChanged", toolDeleted: "toolDeleted" }, host: { properties: { "class._disabled": "isLoading() || tool().isDelete" } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @let controlsData = controls();\n\n @if (readonly()) {\n <cc-tool-form-readonly [tool]=\"tool()\" />\n } @else if (controlsData) {\n <td class=\"cc-table__td info custom\">\n {{ tool().name }}\n\n @if (tool().isDelete) {\n <cui-badge\n class=\"badge\"\n [size]=\"'sm'\"\n color=\"red\"\n >\n {{ t('DELETED') }}\n </cui-badge>\n }\n </td>\n <td class=\"cc-table__td custom\">\n <cui-input-number\n type=\"text\"\n [formControl]=\"controlsData.quantity\"\n [cuiTextFieldIsError]=\"!!controlsData.quantity.errors && controlsData.quantity.dirty\"\n />\n <cui-general-control-error-hint\n [control]=\"controlsData.quantity\"\n [isVisible]=\"!!controlsData.quantity.errors && controlsData.quantity.dirty\"\n />\n </td>\n <td class=\"cc-table__td custom\">\n <cui-select\n [formControl]=\"controlsData.unit\"\n [options]=\"toolboxOptions()\"\n />\n </td>\n <td class=\"cc-table__td button custom\">\n <button\n type=\"button\"\n cuiButton\n icon=\"cuiIconTrash\"\n size=\"xxs\"\n appearance=\"ghost\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDeleteToolbox()\"\n ></button>\n </td>\n }\n</ng-container>\n", styles: [":host{display:contents}:host._disabled .custom{pointer-events:none;opacity:.7}:host._disabled .button{opacity:1;pointer-events:all}.info{display:flex;flex-direction:row;gap:0}.badge{margin-left:auto}.custom{padding-right:4px;padding-left:4px}.readonly{min-height:36px}\n"], dependencies: [{ kind: "component", type: ToolFormReadonlyComponent, selector: "cc-tool-form-readonly", inputs: ["tool"] }, { kind: "ngmodule", type: CuiSelectModule }, { kind: "component", type: CuiSelectComponent, selector: "cui-select[options]", inputs: ["options", "defaultOptionText"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CuiBadgeModule }, { kind: "component", type: CuiBadgeComponent, selector: "cui-badge", inputs: ["color", "size", "variant"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11582
12392
|
}
|
|
11583
12393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolFormComponent, decorators: [{
|
|
11584
12394
|
type: Component,
|
|
@@ -12687,5 +13497,5 @@ const CuiTranslations = {
|
|
|
12687
13497
|
* Generated bundle index. Do not edit.
|
|
12688
13498
|
*/
|
|
12689
13499
|
|
|
12690
|
-
export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BADGE_DEFAULT_OPTIONS, CUI_BADGE_OPTIONS, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionInfoFormComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploader, CuiFileUploaderStatus, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiHybridStorageService, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiPulseLoaderComponent, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiReadonlyUtilityModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiSkeleton, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiTimePipe, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiTranslations, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiUtilityModalCreateComponent, CuiUtilityReadonlyThumbnailComponent, CuiUtilityThumbnailComponent, CuiVideoTool, CuiVisualViewportService, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAuthInterceptor, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, presetConfigToken, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
|
|
13500
|
+
export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BADGE_DEFAULT_OPTIONS, CUI_BADGE_OPTIONS, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionInfoFormComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDateRangeCalendarComponent, CuiDateRangeCalendarModule, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploader, CuiFileUploaderStatus, CuiFilterBarComponent, CuiFilterBarModule, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiHybridStorageService, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiPulseLoaderComponent, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiReadonlyUtilityModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiSkeleton, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiTimePipe, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiTranslations, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiUtilityModalCreateComponent, CuiUtilityReadonlyThumbnailComponent, CuiUtilityThumbnailComponent, CuiVideoTool, CuiVisualViewportService, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAuthInterceptor, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, presetConfigToken, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
|
|
12691
13501
|
//# sourceMappingURL=cuby-ui-core.mjs.map
|