@ascentgl/ads-ui 21.49.0 → 21.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Input, Component, NgModule, input, output, computed, ChangeDetectionStrategy, EventEmitter, signal, effect, ViewChild, Output, ElementRef, HostListener, Directive, InjectionToken, inject, DestroyRef, Pipe, contentChild, TemplateRef, Inject, Optional, ChangeDetectorRef, Injectable, Renderer2, viewChild, ViewChildren } from '@angular/core';
|
|
3
3
|
import * as i1 from '@ascentgl/ads-icons';
|
|
4
4
|
import { AdsIconModule, AdsIconRegistry } from '@ascentgl/ads-icons';
|
|
5
|
-
import { adsIconUserCircle, adsIconBell, adsIconChevronRight, adsIconCross, adsIconPlus, adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconSortDescending, adsIconCheckCircleFilled, adsIconVisibilityEye, adsIconVisibilityEyeNone, adsIconStatusProcessing, adsIconInformation, adsIconChevronDown, adsIconLoading, adsIconDatepicker, adsIconTimepicker, adsIconCheck, adsIconDropdownArrow, adsIconChevronUp, adsIconFilter, adsIconArrowUpAndDown, adsIconMenuMoreInfo, adsIconHamburgerMenu, adsIconChevronLeft, adsIconStatusNew } from '@ascentgl/ads-icons/icons';
|
|
5
|
+
import { adsIconUserCircle, adsIconBell, adsIconChevronRight, adsIconCross, adsIconPlus, adsIconWarning, adsIconLock, adsIconPlusCircle, adsIconSearch, adsIconSortDescending, adsIconCheckCircleFilled, adsIconVisibilityEye, adsIconVisibilityEyeNone, adsIconStatusProcessing, adsIconInformation, adsIconChevronDown, adsIconLoading, adsIconDatepicker, adsIconTimepicker, adsIconCheck, adsIconDropdownArrow, adsIconChevronUp, adsIconSortDownToUp, adsIconSortUpToDown, adsIconMenuFilters, adsIconFilter, adsIconArrowUpAndDown, adsIconMenuMoreInfo, adsIconHamburgerMenu, adsIconChevronLeft, adsIconStatusNew } from '@ascentgl/ads-icons/icons';
|
|
6
6
|
import * as i1$1 from '@angular/common';
|
|
7
7
|
import { CommonModule, NgOptimizedImage, NgTemplateOutlet, NgClass, NgStyle, DOCUMENT } from '@angular/common';
|
|
8
8
|
import * as i2 from '@angular/material/badge';
|
|
@@ -55,7 +55,7 @@ import * as i6$1 from '@angular/material/expansion';
|
|
|
55
55
|
import { MatExpansionPanel, MatExpansionPanelTitle, MatExpansionPanelHeader, MatExpansionPanelDescription, MatAccordion } from '@angular/material/expansion';
|
|
56
56
|
import { ModuleRegistry, AllCommunityModule, provideGlobalGridOptions, themeQuartz } from 'ag-grid-community';
|
|
57
57
|
import * as i4$3 from '@angular/material/menu';
|
|
58
|
-
import {
|
|
58
|
+
import { MatMenuModule, MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';
|
|
59
59
|
import * as i3$4 from 'ag-grid-angular';
|
|
60
60
|
import { AgGridAngular } from 'ag-grid-angular';
|
|
61
61
|
import * as i3$5 from 'angular-split';
|
|
@@ -7030,6 +7030,388 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
7030
7030
|
}]
|
|
7031
7031
|
}] });
|
|
7032
7032
|
|
|
7033
|
+
class AdsColumnSortFilterMenuComponent {
|
|
7034
|
+
/** @ignore */
|
|
7035
|
+
constructor(registry) {
|
|
7036
|
+
this.registry = registry;
|
|
7037
|
+
/** Current sort direction for this column */
|
|
7038
|
+
this.currentSortDirection = null;
|
|
7039
|
+
/** Currently selected filter values */
|
|
7040
|
+
this.selectedFilterValues = [];
|
|
7041
|
+
/** Emits when sort option is selected */
|
|
7042
|
+
this.sortChanged = new EventEmitter();
|
|
7043
|
+
/** Emits when filter options change */
|
|
7044
|
+
this.filterChanged = new EventEmitter();
|
|
7045
|
+
/** Emits when hide column is clicked */
|
|
7046
|
+
this.hideColumn = new EventEmitter();
|
|
7047
|
+
/** @ignore */
|
|
7048
|
+
this.searchControl = new FormControl('', { nonNullable: true });
|
|
7049
|
+
/** @ignore */
|
|
7050
|
+
this.selectAllControl = new FormControl(true, { nonNullable: true });
|
|
7051
|
+
/** @ignore */
|
|
7052
|
+
this.filterOptions = signal([], ...(ngDevMode ? [{ debugName: "filterOptions" }] : []));
|
|
7053
|
+
/** @ignore */
|
|
7054
|
+
this.filteredOptions = signal([], ...(ngDevMode ? [{ debugName: "filteredOptions" }] : []));
|
|
7055
|
+
/** @ignore */
|
|
7056
|
+
this.searchValue = signal('', ...(ngDevMode ? [{ debugName: "searchValue" }] : []));
|
|
7057
|
+
/** @ignore */
|
|
7058
|
+
this.noResultsFound = signal(false, ...(ngDevMode ? [{ debugName: "noResultsFound" }] : []));
|
|
7059
|
+
/** @ignore */
|
|
7060
|
+
this.destroy$ = new Subject();
|
|
7061
|
+
/** @ignore */
|
|
7062
|
+
this.optionSubscriptions = [];
|
|
7063
|
+
/** @ignore - Flag to prevent circular updates */
|
|
7064
|
+
this.isBatchUpdate = false;
|
|
7065
|
+
/** @ignore */
|
|
7066
|
+
this.initializedConfigField = null;
|
|
7067
|
+
/** @ignore - tracks if we're currently emitting a change to prevent sync loop */
|
|
7068
|
+
this.isEmittingChange = false;
|
|
7069
|
+
/** Maximum characters before text is considered truncated */
|
|
7070
|
+
this.MAX_LABEL_LENGTH = 25;
|
|
7071
|
+
this.registry.register([
|
|
7072
|
+
adsIconSortDownToUp,
|
|
7073
|
+
adsIconSortUpToDown,
|
|
7074
|
+
adsIconCheckCircleFilled,
|
|
7075
|
+
adsIconVisibilityEyeNone,
|
|
7076
|
+
]);
|
|
7077
|
+
}
|
|
7078
|
+
/** @ignore */
|
|
7079
|
+
ngOnInit() {
|
|
7080
|
+
this.initializeFilterOptions();
|
|
7081
|
+
this.setupSearchSubscription();
|
|
7082
|
+
this.setupSelectAllSubscription();
|
|
7083
|
+
}
|
|
7084
|
+
/** @ignore */
|
|
7085
|
+
ngOnChanges(changes) {
|
|
7086
|
+
if (changes['config'] && !changes['config'].firstChange) {
|
|
7087
|
+
const newField = changes['config'].currentValue?.field;
|
|
7088
|
+
if (newField !== this.initializedConfigField) {
|
|
7089
|
+
this.initializeFilterOptions();
|
|
7090
|
+
}
|
|
7091
|
+
}
|
|
7092
|
+
if (changes['selectedFilterValues'] && !changes['selectedFilterValues'].firstChange) {
|
|
7093
|
+
if (!this.isEmittingChange) {
|
|
7094
|
+
this.syncFilterOptionsWithSelectedValues();
|
|
7095
|
+
}
|
|
7096
|
+
}
|
|
7097
|
+
}
|
|
7098
|
+
/** @ignore */
|
|
7099
|
+
ngOnDestroy() {
|
|
7100
|
+
this.destroy$.next();
|
|
7101
|
+
this.destroy$.complete();
|
|
7102
|
+
this.clearOptionSubscriptions();
|
|
7103
|
+
}
|
|
7104
|
+
/** @ignore */
|
|
7105
|
+
clearOptionSubscriptions() {
|
|
7106
|
+
this.optionSubscriptions.forEach(sub => sub.unsubscribe());
|
|
7107
|
+
this.optionSubscriptions = [];
|
|
7108
|
+
}
|
|
7109
|
+
/** @ignore */
|
|
7110
|
+
syncFilterOptionsWithSelectedValues() {
|
|
7111
|
+
const options = this.filterOptions();
|
|
7112
|
+
if (options.length === 0)
|
|
7113
|
+
return;
|
|
7114
|
+
this.isBatchUpdate = true;
|
|
7115
|
+
options.forEach((option) => {
|
|
7116
|
+
const shouldBeSelected = this.selectedFilterValues.includes(option.value);
|
|
7117
|
+
if (option.control.value !== shouldBeSelected) {
|
|
7118
|
+
option.control.setValue(shouldBeSelected, { emitEvent: false });
|
|
7119
|
+
}
|
|
7120
|
+
});
|
|
7121
|
+
// Trigger signal update to notify Angular of changes
|
|
7122
|
+
this.filterOptions.set([...options]);
|
|
7123
|
+
// Re-apply search filter to update filteredOptions
|
|
7124
|
+
this.filterOptionsBySearch(this.searchValue());
|
|
7125
|
+
this.isBatchUpdate = false;
|
|
7126
|
+
this.updateSelectAllState();
|
|
7127
|
+
}
|
|
7128
|
+
/** @ignore */
|
|
7129
|
+
initializeFilterOptions() {
|
|
7130
|
+
this.clearOptionSubscriptions();
|
|
7131
|
+
if (!this.config?.filterOptions) {
|
|
7132
|
+
this.filterOptions.set([]);
|
|
7133
|
+
this.filteredOptions.set([]);
|
|
7134
|
+
this.initializedConfigField = null;
|
|
7135
|
+
return;
|
|
7136
|
+
}
|
|
7137
|
+
this.initializedConfigField = this.config.field;
|
|
7138
|
+
const options = this.config.filterOptions.map((value) => {
|
|
7139
|
+
// If selectedFilterValues is empty, default to selected (initial state before parent sets values)
|
|
7140
|
+
// Otherwise, check if value is in selectedFilterValues
|
|
7141
|
+
const isSelected = this.selectedFilterValues.length === 0 || this.selectedFilterValues.includes(value);
|
|
7142
|
+
const control = new FormControl(isSelected, { nonNullable: true });
|
|
7143
|
+
// Subscribe to control value changes
|
|
7144
|
+
const subscription = control.valueChanges.subscribe(() => {
|
|
7145
|
+
if (!this.isBatchUpdate) {
|
|
7146
|
+
this.onOptionChanged();
|
|
7147
|
+
}
|
|
7148
|
+
});
|
|
7149
|
+
this.optionSubscriptions.push(subscription);
|
|
7150
|
+
return {
|
|
7151
|
+
value,
|
|
7152
|
+
label: value,
|
|
7153
|
+
control,
|
|
7154
|
+
};
|
|
7155
|
+
});
|
|
7156
|
+
this.filterOptions.set(options);
|
|
7157
|
+
this.filteredOptions.set([...options]);
|
|
7158
|
+
this.updateSelectAllState();
|
|
7159
|
+
}
|
|
7160
|
+
/** @ignore */
|
|
7161
|
+
setupSearchSubscription() {
|
|
7162
|
+
this.searchControl.valueChanges.pipe(takeUntil$1(this.destroy$)).subscribe((value) => {
|
|
7163
|
+
this.searchValue.set(value);
|
|
7164
|
+
this.filterOptionsBySearch(value);
|
|
7165
|
+
});
|
|
7166
|
+
}
|
|
7167
|
+
/** @ignore */
|
|
7168
|
+
setupSelectAllSubscription() {
|
|
7169
|
+
this.selectAllSubscription = this.selectAllControl.valueChanges
|
|
7170
|
+
.pipe(takeUntil$1(this.destroy$))
|
|
7171
|
+
.subscribe((isChecked) => {
|
|
7172
|
+
if (this.isBatchUpdate)
|
|
7173
|
+
return;
|
|
7174
|
+
this.isBatchUpdate = true;
|
|
7175
|
+
// Update all filter options (both filtered and main list share same objects)
|
|
7176
|
+
const allOptions = this.filterOptions();
|
|
7177
|
+
const filteredValues = new Set(this.filteredOptions().map(o => o.value));
|
|
7178
|
+
allOptions.forEach((option) => {
|
|
7179
|
+
// Only update options that are currently visible (filtered)
|
|
7180
|
+
if (filteredValues.has(option.value)) {
|
|
7181
|
+
option.control.setValue(isChecked, { emitEvent: false });
|
|
7182
|
+
}
|
|
7183
|
+
});
|
|
7184
|
+
// Trigger signal update to notify Angular of changes
|
|
7185
|
+
this.filterOptions.set([...allOptions]);
|
|
7186
|
+
this.filteredOptions.set(allOptions.filter(o => filteredValues.has(o.value)));
|
|
7187
|
+
this.isBatchUpdate = false;
|
|
7188
|
+
// Emit the filter change
|
|
7189
|
+
this.emitFilterChange();
|
|
7190
|
+
});
|
|
7191
|
+
}
|
|
7192
|
+
/** @ignore */
|
|
7193
|
+
filterOptionsBySearch(searchTerm) {
|
|
7194
|
+
const allOptions = this.filterOptions();
|
|
7195
|
+
if (!searchTerm) {
|
|
7196
|
+
this.filteredOptions.set([...allOptions]);
|
|
7197
|
+
this.noResultsFound.set(false);
|
|
7198
|
+
this.updateSelectAllState();
|
|
7199
|
+
return;
|
|
7200
|
+
}
|
|
7201
|
+
const lowerSearch = searchTerm.toLowerCase();
|
|
7202
|
+
const filtered = allOptions.filter((option) => option.label.toLowerCase().startsWith(lowerSearch));
|
|
7203
|
+
this.filteredOptions.set(filtered);
|
|
7204
|
+
this.noResultsFound.set(filtered.length === 0);
|
|
7205
|
+
this.updateSelectAllState();
|
|
7206
|
+
}
|
|
7207
|
+
/** @ignore */
|
|
7208
|
+
onOptionChanged() {
|
|
7209
|
+
this.updateSelectAllState();
|
|
7210
|
+
this.emitFilterChange();
|
|
7211
|
+
}
|
|
7212
|
+
/** @ignore */
|
|
7213
|
+
updateSelectAllState() {
|
|
7214
|
+
this.isBatchUpdate = true;
|
|
7215
|
+
// Check ALL options, not just filtered ones
|
|
7216
|
+
const allOptions = this.filterOptions();
|
|
7217
|
+
const allChecked = allOptions.length > 0 && allOptions.every((opt) => opt.control.value);
|
|
7218
|
+
this.selectAllControl.setValue(allChecked, { emitEvent: false });
|
|
7219
|
+
this.isBatchUpdate = false;
|
|
7220
|
+
}
|
|
7221
|
+
/** @ignore */
|
|
7222
|
+
emitFilterChange() {
|
|
7223
|
+
const selectedValues = this.filterOptions()
|
|
7224
|
+
.filter((opt) => opt.control.value)
|
|
7225
|
+
.map((opt) => opt.value);
|
|
7226
|
+
this.isEmittingChange = true;
|
|
7227
|
+
this.filterChanged.emit({
|
|
7228
|
+
field: this.config.field,
|
|
7229
|
+
values: selectedValues,
|
|
7230
|
+
});
|
|
7231
|
+
// Reset flag after a microtask
|
|
7232
|
+
Promise.resolve().then(() => {
|
|
7233
|
+
this.isEmittingChange = false;
|
|
7234
|
+
});
|
|
7235
|
+
}
|
|
7236
|
+
/** @ignore */
|
|
7237
|
+
onSortOptionClick(direction) {
|
|
7238
|
+
const newDirection = this.currentSortDirection === direction ? null : direction;
|
|
7239
|
+
this.sortChanged.emit({
|
|
7240
|
+
field: this.config.field,
|
|
7241
|
+
direction: newDirection,
|
|
7242
|
+
});
|
|
7243
|
+
}
|
|
7244
|
+
/** @ignore */
|
|
7245
|
+
onHideColumnClick() {
|
|
7246
|
+
this.hideColumn.emit(this.config.field);
|
|
7247
|
+
}
|
|
7248
|
+
/** @ignore */
|
|
7249
|
+
isSortActive(direction) {
|
|
7250
|
+
return this.currentSortDirection === direction;
|
|
7251
|
+
}
|
|
7252
|
+
/** @ignore */
|
|
7253
|
+
get hasFilterOptions() {
|
|
7254
|
+
return !!this.config?.filterOptions && this.config.filterOptions.length > 0;
|
|
7255
|
+
}
|
|
7256
|
+
/** @ignore */
|
|
7257
|
+
get hasSortOptions() {
|
|
7258
|
+
return !!this.config?.sortOptions && this.config.sortOptions.length > 0;
|
|
7259
|
+
}
|
|
7260
|
+
/** @ignore */
|
|
7261
|
+
get sortOptions() {
|
|
7262
|
+
return this.config?.sortOptions || [];
|
|
7263
|
+
}
|
|
7264
|
+
/** @ignore - Check if text would be truncated based on character length */
|
|
7265
|
+
isTextTruncated(text) {
|
|
7266
|
+
return text.length > this.MAX_LABEL_LENGTH;
|
|
7267
|
+
}
|
|
7268
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuComponent, deps: [{ token: i1.AdsIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7269
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsColumnSortFilterMenuComponent, isStandalone: false, selector: "ads-column-sort-filter-menu", inputs: { config: "config", currentSortDirection: "currentSortDirection", selectedFilterValues: "selectedFilterValues" }, outputs: { sortChanged: "sortChanged", filterChanged: "filterChanged", hideColumn: "hideColumn" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"column-sort-filter-menu\"\n (click)=\"$event.stopPropagation()\"\n [class.full-height]=\"hasFilterOptions && hasSortOptions\"\n>\n <!-- Sort Options -->\n @if (hasSortOptions) {\n <div class=\"sort-section\">\n @for (sortOption of sortOptions; track sortOption.direction) {\n <div\n class=\"sort-option\"\n [class.active]=\"isSortActive(sortOption.direction)\"\n (click)=\"onSortOptionClick(sortOption.direction)\"\n >\n <ads-icon\n [name]=\"sortOption.direction === 'asc' ? 'sort_down_to_up' : 'sort_up_to_down'\"\n [theme]=\"isSortActive(sortOption.direction) ? 'secondary' : 'iconPrimary'\"\n size=\"xxs_16\"\n class=\"sort-icon\"\n />\n <span class=\"sort-label\">{{ sortOption.label }}</span>\n @if (isSortActive(sortOption.direction)) {\n <ads-icon\n name=\"check_circle_filled\"\n theme=\"secondary\"\n size=\"xxs_16\"\n />\n }\n </div>\n }\n </div>\n }\n\n @if (hasFilterOptions && hasSortOptions) {\n <ads-divider />\n }\n\n <!-- Filter Section -->\n @if (hasFilterOptions) {\n <div class=\"filter-section\">\n <ads-search-input\n [control]=\"searchControl\"\n placeholder=\"Filter Search\"\n [showFooter]=\"false\"\n />\n\n @if (noResultsFound()) {\n <p class=\"no-results\">\n Can't find \"{{ searchValue() }}.\" Try searching something else.\n </p>\n } @else {\n <div class=\"filter-options\">\n <!-- Select All - only show when not searching -->\n @if (!searchValue()) {\n <ads-checkbox\n [control]=\"selectAllControl\"\n label=\"Select All\"\n [showFooter]=\"false\"\n />\n }\n\n <!-- Filter Options List -->\n @for (option of filteredOptions(); track option.value) {\n <div class=\"filter-option-wrapper\" [matTooltip]=\"option.label\" [matTooltipDisabled]=\"!isTextTruncated(option.label)\">\n <ads-checkbox\n [control]=\"option.control\"\n [label]=\"option.label\"\n [showFooter]=\"false\"\n />\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Hide Column -->\n <div class=\"hide-column-section\" (click)=\"onHideColumnClick()\">\n <ads-icon name=\"visibility_eye_none\" theme=\"iconPrimary\" stroke=\"iconPrimary\" size=\"xxs_16\" />\n <span>Hide Column</span>\n </div>\n</div>\n\n", styles: [".column-sort-filter-menu{width:234px;max-height:358px;background-color:var(--color-white);display:flex;flex-direction:column}.column-sort-filter-menu.full-height{height:358px}.column-sort-filter-menu .sort-section{padding:0;flex-shrink:0}.column-sort-filter-menu .sort-section .sort-option{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:background-color .2s ease}.column-sort-filter-menu .sort-section .sort-option .sort-label{font-size:16px;line-height:21px;color:var(--color-dark)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active){background-color:var(--color-secondary-hover)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active) .sort-label{color:var(--color-white)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active) .sort-icon ::ng-deep svg{fill:var(--color-white)!important}.column-sort-filter-menu .sort-section .sort-option.active{background-color:var(--color-secondary-10)}.column-sort-filter-menu .filter-section{padding:0 12px;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.column-sort-filter-menu .filter-section ads-search-input{display:block;padding:12px 0;flex-shrink:0}.column-sort-filter-menu .filter-section .no-results{color:var(--color-error);font-size:12px;line-height:16px;padding:12px 0;font-weight:600;margin:0}.column-sort-filter-menu .filter-section .filter-options{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.column-sort-filter-menu .filter-section .filter-options .filter-option-wrapper ads-checkbox{display:block}.column-sort-filter-menu .filter-section .filter-options .filter-option-wrapper ads-checkbox ::ng-deep .checkbox-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.column-sort-filter-menu .hide-column-section{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:background-color .2s ease;flex-shrink:0;border-top:1px solid var(--color-light)}.column-sort-filter-menu .hide-column-section:hover{background-color:var(--color-secondary-hover)}.column-sort-filter-menu .hide-column-section:hover span{color:var(--color-white)}.column-sort-filter-menu .hide-column-section:hover ads-icon ::ng-deep svg{fill:var(--color-white)!important;stroke:var(--color-white)!important}.column-sort-filter-menu .hide-column-section:active{background-color:var(--color-secondary-pressed)}.column-sort-filter-menu .hide-column-section:active span{color:var(--color-white)}.column-sort-filter-menu .hide-column-section:active ads-icon ::ng-deep svg{fill:var(--color-white)!important;stroke:var(--color-white)!important}.column-sort-filter-menu .hide-column-section span{font-size:16px;line-height:21px;color:var(--color-dark)}\n"], dependencies: [{ kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: AdsSearchInputComponent, selector: "ads-search-input", inputs: ["searchCallback", "isIconClickable", "searchEmptyValue", "loading"] }, { kind: "component", type: AdsCheckboxComponent, selector: "ads-checkbox", inputs: ["indeterminate", "width", "tooltip", "tooltipHref", "size"] }, { kind: "component", type: DividerComponent, selector: "ads-divider", inputs: ["margin", "color"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
7270
|
+
}
|
|
7271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuComponent, decorators: [{
|
|
7272
|
+
type: Component,
|
|
7273
|
+
args: [{ selector: 'ads-column-sort-filter-menu', standalone: false, template: "<div\n class=\"column-sort-filter-menu\"\n (click)=\"$event.stopPropagation()\"\n [class.full-height]=\"hasFilterOptions && hasSortOptions\"\n>\n <!-- Sort Options -->\n @if (hasSortOptions) {\n <div class=\"sort-section\">\n @for (sortOption of sortOptions; track sortOption.direction) {\n <div\n class=\"sort-option\"\n [class.active]=\"isSortActive(sortOption.direction)\"\n (click)=\"onSortOptionClick(sortOption.direction)\"\n >\n <ads-icon\n [name]=\"sortOption.direction === 'asc' ? 'sort_down_to_up' : 'sort_up_to_down'\"\n [theme]=\"isSortActive(sortOption.direction) ? 'secondary' : 'iconPrimary'\"\n size=\"xxs_16\"\n class=\"sort-icon\"\n />\n <span class=\"sort-label\">{{ sortOption.label }}</span>\n @if (isSortActive(sortOption.direction)) {\n <ads-icon\n name=\"check_circle_filled\"\n theme=\"secondary\"\n size=\"xxs_16\"\n />\n }\n </div>\n }\n </div>\n }\n\n @if (hasFilterOptions && hasSortOptions) {\n <ads-divider />\n }\n\n <!-- Filter Section -->\n @if (hasFilterOptions) {\n <div class=\"filter-section\">\n <ads-search-input\n [control]=\"searchControl\"\n placeholder=\"Filter Search\"\n [showFooter]=\"false\"\n />\n\n @if (noResultsFound()) {\n <p class=\"no-results\">\n Can't find \"{{ searchValue() }}.\" Try searching something else.\n </p>\n } @else {\n <div class=\"filter-options\">\n <!-- Select All - only show when not searching -->\n @if (!searchValue()) {\n <ads-checkbox\n [control]=\"selectAllControl\"\n label=\"Select All\"\n [showFooter]=\"false\"\n />\n }\n\n <!-- Filter Options List -->\n @for (option of filteredOptions(); track option.value) {\n <div class=\"filter-option-wrapper\" [matTooltip]=\"option.label\" [matTooltipDisabled]=\"!isTextTruncated(option.label)\">\n <ads-checkbox\n [control]=\"option.control\"\n [label]=\"option.label\"\n [showFooter]=\"false\"\n />\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Hide Column -->\n <div class=\"hide-column-section\" (click)=\"onHideColumnClick()\">\n <ads-icon name=\"visibility_eye_none\" theme=\"iconPrimary\" stroke=\"iconPrimary\" size=\"xxs_16\" />\n <span>Hide Column</span>\n </div>\n</div>\n\n", styles: [".column-sort-filter-menu{width:234px;max-height:358px;background-color:var(--color-white);display:flex;flex-direction:column}.column-sort-filter-menu.full-height{height:358px}.column-sort-filter-menu .sort-section{padding:0;flex-shrink:0}.column-sort-filter-menu .sort-section .sort-option{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:background-color .2s ease}.column-sort-filter-menu .sort-section .sort-option .sort-label{font-size:16px;line-height:21px;color:var(--color-dark)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active){background-color:var(--color-secondary-hover)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active) .sort-label{color:var(--color-white)}.column-sort-filter-menu .sort-section .sort-option:hover:not(.active) .sort-icon ::ng-deep svg{fill:var(--color-white)!important}.column-sort-filter-menu .sort-section .sort-option.active{background-color:var(--color-secondary-10)}.column-sort-filter-menu .filter-section{padding:0 12px;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.column-sort-filter-menu .filter-section ads-search-input{display:block;padding:12px 0;flex-shrink:0}.column-sort-filter-menu .filter-section .no-results{color:var(--color-error);font-size:12px;line-height:16px;padding:12px 0;font-weight:600;margin:0}.column-sort-filter-menu .filter-section .filter-options{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.column-sort-filter-menu .filter-section .filter-options .filter-option-wrapper ads-checkbox{display:block}.column-sort-filter-menu .filter-section .filter-options .filter-option-wrapper ads-checkbox ::ng-deep .checkbox-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.column-sort-filter-menu .hide-column-section{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:background-color .2s ease;flex-shrink:0;border-top:1px solid var(--color-light)}.column-sort-filter-menu .hide-column-section:hover{background-color:var(--color-secondary-hover)}.column-sort-filter-menu .hide-column-section:hover span{color:var(--color-white)}.column-sort-filter-menu .hide-column-section:hover ads-icon ::ng-deep svg{fill:var(--color-white)!important;stroke:var(--color-white)!important}.column-sort-filter-menu .hide-column-section:active{background-color:var(--color-secondary-pressed)}.column-sort-filter-menu .hide-column-section:active span{color:var(--color-white)}.column-sort-filter-menu .hide-column-section:active ads-icon ::ng-deep svg{fill:var(--color-white)!important;stroke:var(--color-white)!important}.column-sort-filter-menu .hide-column-section span{font-size:16px;line-height:21px;color:var(--color-dark)}\n"] }]
|
|
7274
|
+
}], ctorParameters: () => [{ type: i1.AdsIconRegistry }], propDecorators: { config: [{
|
|
7275
|
+
type: Input
|
|
7276
|
+
}], currentSortDirection: [{
|
|
7277
|
+
type: Input
|
|
7278
|
+
}], selectedFilterValues: [{
|
|
7279
|
+
type: Input
|
|
7280
|
+
}], sortChanged: [{
|
|
7281
|
+
type: Output
|
|
7282
|
+
}], filterChanged: [{
|
|
7283
|
+
type: Output
|
|
7284
|
+
}], hideColumn: [{
|
|
7285
|
+
type: Output
|
|
7286
|
+
}] } });
|
|
7287
|
+
|
|
7288
|
+
class AdsCustomHeaderComponent {
|
|
7289
|
+
constructor(registry) {
|
|
7290
|
+
this.registry = registry;
|
|
7291
|
+
this.menuOpen = false;
|
|
7292
|
+
this.registry.register([adsIconMenuFilters]);
|
|
7293
|
+
}
|
|
7294
|
+
agInit(params) {
|
|
7295
|
+
this.params = params;
|
|
7296
|
+
}
|
|
7297
|
+
refresh(params) {
|
|
7298
|
+
this.params = params;
|
|
7299
|
+
return true;
|
|
7300
|
+
}
|
|
7301
|
+
get displayName() {
|
|
7302
|
+
return this.params.displayName || '';
|
|
7303
|
+
}
|
|
7304
|
+
get field() {
|
|
7305
|
+
return this.params.column.getColId();
|
|
7306
|
+
}
|
|
7307
|
+
get hasSortFilterConfig() {
|
|
7308
|
+
return !!this.params.sortFilterConfig;
|
|
7309
|
+
}
|
|
7310
|
+
get sortFilterConfig() {
|
|
7311
|
+
return this.params.sortFilterConfig;
|
|
7312
|
+
}
|
|
7313
|
+
get sortDirection() {
|
|
7314
|
+
return this.params.getSortDirection?.(this.field) ?? null;
|
|
7315
|
+
}
|
|
7316
|
+
get filterValues() {
|
|
7317
|
+
return this.params.getFilterValues?.(this.field) ?? [];
|
|
7318
|
+
}
|
|
7319
|
+
get isColumnSorted() {
|
|
7320
|
+
return this.params.isColumnSorted?.(this.field) ?? false;
|
|
7321
|
+
}
|
|
7322
|
+
get isColumnFiltered() {
|
|
7323
|
+
return this.params.isColumnFiltered?.(this.field) ?? false;
|
|
7324
|
+
}
|
|
7325
|
+
get isActive() {
|
|
7326
|
+
return this.isColumnSorted || this.isColumnFiltered;
|
|
7327
|
+
}
|
|
7328
|
+
get isLastColumn() {
|
|
7329
|
+
const allColumns = this.params.api.getAllDisplayedColumns();
|
|
7330
|
+
const lastColumn = allColumns[allColumns.length - 1];
|
|
7331
|
+
return this.params.column === lastColumn;
|
|
7332
|
+
}
|
|
7333
|
+
onSortChanged(event) {
|
|
7334
|
+
this.params.onSortChanged?.(event);
|
|
7335
|
+
}
|
|
7336
|
+
onFilterChanged(event) {
|
|
7337
|
+
this.params.onFilterChanged?.(event);
|
|
7338
|
+
}
|
|
7339
|
+
onHideColumn(field) {
|
|
7340
|
+
this.params.onHideColumn?.(field);
|
|
7341
|
+
this.menuOpen = false;
|
|
7342
|
+
}
|
|
7343
|
+
toggleMenu() {
|
|
7344
|
+
this.menuOpen = !this.menuOpen;
|
|
7345
|
+
}
|
|
7346
|
+
closeMenu() {
|
|
7347
|
+
this.menuOpen = false;
|
|
7348
|
+
}
|
|
7349
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderComponent, deps: [{ token: i1.AdsIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7350
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsCustomHeaderComponent, isStandalone: false, selector: "ads-custom-header", ngImport: i0, template: "<div class=\"ads-custom-header\">\n <span\n class=\"menu-trigger-anchor\"\n [class.align-right]=\"isLastColumn\"\n #menuTrigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"sortFilterMenu\"\n (menuOpened)=\"menuOpen = true\"\n (menuClosed)=\"menuOpen = false\"\n ></span>\n\n <span class=\"header-text\">{{ displayName }}</span>\n\n @if (hasSortFilterConfig) {\n <button\n class=\"header-menu-button\"\n [class.active]=\"isActive\"\n (click)=\"menuTrigger.openMenu(); $event.stopPropagation()\"\n >\n <ads-icon name=\"menu_filters\" theme=\"iconPrimary\" stroke=\"iconPrimary\" size=\"auto\" />\n </button>\n }\n</div>\n\n<mat-menu #sortFilterMenu=\"matMenu\" class=\"column-sort-filter-panel\" [xPosition]=\"isLastColumn ? 'before' : 'after'\">\n @if (sortFilterConfig) {\n <ads-column-sort-filter-menu\n [config]=\"sortFilterConfig\"\n [currentSortDirection]=\"sortDirection\"\n [selectedFilterValues]=\"filterValues\"\n (sortChanged)=\"onSortChanged($event)\"\n (filterChanged)=\"onFilterChanged($event)\"\n (hideColumn)=\"onHideColumn($event)\"\n />\n }\n</mat-menu>\n\n", styles: [":host{display:block;width:100%;height:100%}.ads-custom-header{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;position:relative}.ads-custom-header .menu-trigger-anchor{position:absolute;left:0;bottom:0;width:1px;height:1px;pointer-events:none}.ads-custom-header .menu-trigger-anchor.align-right{left:auto;right:0}.ads-custom-header .header-text{font-weight:600;font-size:16px;line-height:21px;color:var(--color-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ads-custom-header .header-menu-button{display:flex;align-items:center;justify-content:center;gap:2px;padding:4px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}::ng-deep .column-sort-filter-panel{margin-top:1px}::ng-deep .column-sort-filter-panel .mat-mdc-menu-content{padding:0}\n"], dependencies: [{ kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i4$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: AdsColumnSortFilterMenuComponent, selector: "ads-column-sort-filter-menu", inputs: ["config", "currentSortDirection", "selectedFilterValues"], outputs: ["sortChanged", "filterChanged", "hideColumn"] }] }); }
|
|
7351
|
+
}
|
|
7352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderComponent, decorators: [{
|
|
7353
|
+
type: Component,
|
|
7354
|
+
args: [{ selector: 'ads-custom-header', standalone: false, template: "<div class=\"ads-custom-header\">\n <span\n class=\"menu-trigger-anchor\"\n [class.align-right]=\"isLastColumn\"\n #menuTrigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"sortFilterMenu\"\n (menuOpened)=\"menuOpen = true\"\n (menuClosed)=\"menuOpen = false\"\n ></span>\n\n <span class=\"header-text\">{{ displayName }}</span>\n\n @if (hasSortFilterConfig) {\n <button\n class=\"header-menu-button\"\n [class.active]=\"isActive\"\n (click)=\"menuTrigger.openMenu(); $event.stopPropagation()\"\n >\n <ads-icon name=\"menu_filters\" theme=\"iconPrimary\" stroke=\"iconPrimary\" size=\"auto\" />\n </button>\n }\n</div>\n\n<mat-menu #sortFilterMenu=\"matMenu\" class=\"column-sort-filter-panel\" [xPosition]=\"isLastColumn ? 'before' : 'after'\">\n @if (sortFilterConfig) {\n <ads-column-sort-filter-menu\n [config]=\"sortFilterConfig\"\n [currentSortDirection]=\"sortDirection\"\n [selectedFilterValues]=\"filterValues\"\n (sortChanged)=\"onSortChanged($event)\"\n (filterChanged)=\"onFilterChanged($event)\"\n (hideColumn)=\"onHideColumn($event)\"\n />\n }\n</mat-menu>\n\n", styles: [":host{display:block;width:100%;height:100%}.ads-custom-header{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;position:relative}.ads-custom-header .menu-trigger-anchor{position:absolute;left:0;bottom:0;width:1px;height:1px;pointer-events:none}.ads-custom-header .menu-trigger-anchor.align-right{left:auto;right:0}.ads-custom-header .header-text{font-weight:600;font-size:16px;line-height:21px;color:var(--color-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ads-custom-header .header-menu-button{display:flex;align-items:center;justify-content:center;gap:2px;padding:4px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}::ng-deep .column-sort-filter-panel{margin-top:1px}::ng-deep .column-sort-filter-panel .mat-mdc-menu-content{padding:0}\n"] }]
|
|
7355
|
+
}], ctorParameters: () => [{ type: i1.AdsIconRegistry }] });
|
|
7356
|
+
|
|
7357
|
+
class AdsColumnSortFilterMenuModule {
|
|
7358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7359
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuModule, declarations: [AdsColumnSortFilterMenuComponent], imports: [CommonModule,
|
|
7360
|
+
ReactiveFormsModule,
|
|
7361
|
+
AdsIconModule,
|
|
7362
|
+
AdsSearchInputModule,
|
|
7363
|
+
AdsCheckboxModule,
|
|
7364
|
+
AdsDividerModule,
|
|
7365
|
+
MatTooltip], exports: [AdsColumnSortFilterMenuComponent] }); }
|
|
7366
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuModule, imports: [CommonModule,
|
|
7367
|
+
ReactiveFormsModule,
|
|
7368
|
+
AdsIconModule,
|
|
7369
|
+
AdsSearchInputModule,
|
|
7370
|
+
AdsCheckboxModule,
|
|
7371
|
+
AdsDividerModule] }); }
|
|
7372
|
+
}
|
|
7373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsColumnSortFilterMenuModule, decorators: [{
|
|
7374
|
+
type: NgModule,
|
|
7375
|
+
args: [{
|
|
7376
|
+
declarations: [AdsColumnSortFilterMenuComponent],
|
|
7377
|
+
imports: [
|
|
7378
|
+
CommonModule,
|
|
7379
|
+
ReactiveFormsModule,
|
|
7380
|
+
AdsIconModule,
|
|
7381
|
+
AdsSearchInputModule,
|
|
7382
|
+
AdsCheckboxModule,
|
|
7383
|
+
AdsDividerModule,
|
|
7384
|
+
MatTooltip,
|
|
7385
|
+
],
|
|
7386
|
+
exports: [AdsColumnSortFilterMenuComponent],
|
|
7387
|
+
}]
|
|
7388
|
+
}] });
|
|
7389
|
+
|
|
7390
|
+
class AdsCustomHeaderModule {
|
|
7391
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7392
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderModule, declarations: [AdsCustomHeaderComponent], imports: [CommonModule,
|
|
7393
|
+
AdsIconModule,
|
|
7394
|
+
MatMenuModule,
|
|
7395
|
+
AdsColumnSortFilterMenuModule], exports: [AdsCustomHeaderComponent] }); }
|
|
7396
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderModule, imports: [CommonModule,
|
|
7397
|
+
AdsIconModule,
|
|
7398
|
+
MatMenuModule,
|
|
7399
|
+
AdsColumnSortFilterMenuModule] }); }
|
|
7400
|
+
}
|
|
7401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsCustomHeaderModule, decorators: [{
|
|
7402
|
+
type: NgModule,
|
|
7403
|
+
args: [{
|
|
7404
|
+
declarations: [AdsCustomHeaderComponent],
|
|
7405
|
+
imports: [
|
|
7406
|
+
CommonModule,
|
|
7407
|
+
AdsIconModule,
|
|
7408
|
+
MatMenuModule,
|
|
7409
|
+
AdsColumnSortFilterMenuModule,
|
|
7410
|
+
],
|
|
7411
|
+
exports: [AdsCustomHeaderComponent],
|
|
7412
|
+
}]
|
|
7413
|
+
}] });
|
|
7414
|
+
|
|
7033
7415
|
class AdsTableButtonComponent {
|
|
7034
7416
|
constructor() {
|
|
7035
7417
|
/** The unique ID for the button */
|
|
@@ -7086,6 +7468,10 @@ class AdsTableComponent {
|
|
|
7086
7468
|
};
|
|
7087
7469
|
/** Show/hide the header with the column visibility button */
|
|
7088
7470
|
this.showHeaderActions = false;
|
|
7471
|
+
/** Enable custom column sort/filter menu (optional, default false for backward compatibility) */
|
|
7472
|
+
this.enableCustomSortFilter = false;
|
|
7473
|
+
/** Configuration for custom sort/filter per column */
|
|
7474
|
+
this.columnSortFilterConfigs = [];
|
|
7089
7475
|
/** Event emitted when all filters are cleared */
|
|
7090
7476
|
this.filtersCleared = new EventEmitter();
|
|
7091
7477
|
/** @ignore */
|
|
@@ -7103,11 +7489,59 @@ class AdsTableComponent {
|
|
|
7103
7489
|
/** @ignore */
|
|
7104
7490
|
this.sortedColumns = [];
|
|
7105
7491
|
/** @ignore */
|
|
7492
|
+
this.activeColumnMenu = signal(null, ...(ngDevMode ? [{ debugName: "activeColumnMenu" }] : []));
|
|
7493
|
+
/** @ignore */
|
|
7494
|
+
this.columnSortStates = signal(new Map(), ...(ngDevMode ? [{ debugName: "columnSortStates" }] : []));
|
|
7495
|
+
/** @ignore */
|
|
7496
|
+
this.columnFilterStates = signal(new Map(), ...(ngDevMode ? [{ debugName: "columnFilterStates" }] : []));
|
|
7497
|
+
/** @ignore */
|
|
7498
|
+
this.frameworkComponents = {
|
|
7499
|
+
adsCustomHeader: AdsCustomHeaderComponent,
|
|
7500
|
+
};
|
|
7501
|
+
/** @ignore */
|
|
7106
7502
|
this.filteredColumns = [];
|
|
7107
7503
|
/** @ignore */
|
|
7108
7504
|
this.columnVisibilityMenuOpen = false;
|
|
7505
|
+
/** @ignore */
|
|
7506
|
+
this.isExternalFilterPresent = () => {
|
|
7507
|
+
// Check if any custom column filter is active
|
|
7508
|
+
for (const [field, values] of this.columnFilterStates()) {
|
|
7509
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7510
|
+
if (config?.filterOptions) {
|
|
7511
|
+
// Filter is active if some but not all options are selected, OR if no options are selected
|
|
7512
|
+
if (values.length === 0 || (values.length > 0 && values.length < config.filterOptions.length)) {
|
|
7513
|
+
return true;
|
|
7514
|
+
}
|
|
7515
|
+
}
|
|
7516
|
+
}
|
|
7517
|
+
return false;
|
|
7518
|
+
};
|
|
7519
|
+
/** @ignore */
|
|
7520
|
+
this.doesExternalFilterPass = (node) => {
|
|
7521
|
+
if (!node.data)
|
|
7522
|
+
return true;
|
|
7523
|
+
for (const [field, selectedValues] of this.columnFilterStates()) {
|
|
7524
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7525
|
+
if (!config?.filterOptions)
|
|
7526
|
+
continue;
|
|
7527
|
+
// If no values are selected, hide all rows for this filter
|
|
7528
|
+
if (selectedValues.length === 0) {
|
|
7529
|
+
return false;
|
|
7530
|
+
}
|
|
7531
|
+
// If all values are selected, don't filter (show all)
|
|
7532
|
+
if (selectedValues.length === config.filterOptions.length) {
|
|
7533
|
+
continue;
|
|
7534
|
+
}
|
|
7535
|
+
const cellValue = node.data[field];
|
|
7536
|
+
const cellValueStr = cellValue != null ? String(cellValue) : '';
|
|
7537
|
+
if (!selectedValues.includes(cellValueStr)) {
|
|
7538
|
+
return false;
|
|
7539
|
+
}
|
|
7540
|
+
}
|
|
7541
|
+
return true;
|
|
7542
|
+
};
|
|
7109
7543
|
this.themeQuartz = themeQuartz;
|
|
7110
|
-
this.registry.register([adsIconFilter, adsIconVisibilityEyeNone, adsIconArrowUpAndDown, adsIconCross]);
|
|
7544
|
+
this.registry.register([adsIconFilter, adsIconVisibilityEyeNone, adsIconArrowUpAndDown, adsIconCross, adsIconCheckCircleFilled]);
|
|
7111
7545
|
}
|
|
7112
7546
|
/** @ignore */
|
|
7113
7547
|
getBreakpoint(width) {
|
|
@@ -7132,6 +7566,69 @@ class AdsTableComponent {
|
|
|
7132
7566
|
return this.cachedDefaultColDef;
|
|
7133
7567
|
}
|
|
7134
7568
|
/** @ignore */
|
|
7569
|
+
getProcessedColumnDefs() {
|
|
7570
|
+
const columns = this.tableColumnDefs();
|
|
7571
|
+
if (!this.enableCustomSortFilter) {
|
|
7572
|
+
return columns;
|
|
7573
|
+
}
|
|
7574
|
+
// Import the custom header component dynamically
|
|
7575
|
+
return columns.map(col => {
|
|
7576
|
+
const config = this.getColumnSortFilterConfig(col.field || '');
|
|
7577
|
+
if (config) {
|
|
7578
|
+
// Create comparator based on sortType
|
|
7579
|
+
const comparator = this.createComparator(config);
|
|
7580
|
+
return {
|
|
7581
|
+
...col,
|
|
7582
|
+
headerComponent: 'adsCustomHeader',
|
|
7583
|
+
headerComponentParams: {
|
|
7584
|
+
sortFilterConfig: config,
|
|
7585
|
+
onSortChanged: this.onColumnSortChanged.bind(this),
|
|
7586
|
+
onFilterChanged: this.onColumnFilterChanged.bind(this),
|
|
7587
|
+
onHideColumn: this.onHideColumn.bind(this),
|
|
7588
|
+
getSortDirection: this.getColumnSortDirection.bind(this),
|
|
7589
|
+
getFilterValues: this.getColumnFilterValues.bind(this),
|
|
7590
|
+
isColumnSorted: this.isColumnSorted.bind(this),
|
|
7591
|
+
isColumnFiltered: this.isColumnFiltered.bind(this),
|
|
7592
|
+
},
|
|
7593
|
+
sortable: true, // Enable AG Grid sorting
|
|
7594
|
+
comparator: comparator,
|
|
7595
|
+
filter: false, // Disable default AG Grid filter - we handle filtering externally
|
|
7596
|
+
};
|
|
7597
|
+
}
|
|
7598
|
+
return col;
|
|
7599
|
+
});
|
|
7600
|
+
}
|
|
7601
|
+
/** @ignore */
|
|
7602
|
+
createComparator(config) {
|
|
7603
|
+
const sortType = config.sortType || 'string';
|
|
7604
|
+
if (sortType === 'custom' && config.sortComparator) {
|
|
7605
|
+
return (valueA, valueB, _nodeA, _nodeB, isDescending) => {
|
|
7606
|
+
return config.sortComparator(valueA, valueB, isDescending);
|
|
7607
|
+
};
|
|
7608
|
+
}
|
|
7609
|
+
switch (sortType) {
|
|
7610
|
+
case 'number':
|
|
7611
|
+
return (valueA, valueB) => {
|
|
7612
|
+
const numA = Number(valueA) || 0;
|
|
7613
|
+
const numB = Number(valueB) || 0;
|
|
7614
|
+
return numA - numB;
|
|
7615
|
+
};
|
|
7616
|
+
case 'date':
|
|
7617
|
+
return (valueA, valueB) => {
|
|
7618
|
+
const dateA = valueA ? new Date(valueA).getTime() : 0;
|
|
7619
|
+
const dateB = valueB ? new Date(valueB).getTime() : 0;
|
|
7620
|
+
return dateA - dateB;
|
|
7621
|
+
};
|
|
7622
|
+
case 'string':
|
|
7623
|
+
default:
|
|
7624
|
+
return (valueA, valueB) => {
|
|
7625
|
+
const strA = String(valueA || '').toLowerCase();
|
|
7626
|
+
const strB = String(valueB || '').toLowerCase();
|
|
7627
|
+
return strA.localeCompare(strB);
|
|
7628
|
+
};
|
|
7629
|
+
}
|
|
7630
|
+
}
|
|
7631
|
+
/** @ignore */
|
|
7135
7632
|
ngAfterViewInit() {
|
|
7136
7633
|
// Observe the table element for resize changes
|
|
7137
7634
|
const tableElement = this.elementRef.nativeElement.querySelector('ag-grid-angular');
|
|
@@ -7338,10 +7835,27 @@ class AdsTableComponent {
|
|
|
7338
7835
|
}
|
|
7339
7836
|
/** @ignore */
|
|
7340
7837
|
updateFilteringState() {
|
|
7838
|
+
const filteredColumnsList = [];
|
|
7839
|
+
// Check AG Grid's internal filter model
|
|
7341
7840
|
if (this.gridApi) {
|
|
7342
7841
|
const filterModel = this.gridApi.getFilterModel();
|
|
7343
|
-
|
|
7842
|
+
filteredColumnsList.push(...Object.keys(filterModel));
|
|
7843
|
+
}
|
|
7844
|
+
// Check custom column filter states
|
|
7845
|
+
for (const [field, values] of this.columnFilterStates()) {
|
|
7846
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7847
|
+
if (config?.filterOptions) {
|
|
7848
|
+
// Column is filtered if:
|
|
7849
|
+
// - No options are selected (empty array = all unchecked)
|
|
7850
|
+
// - Some but not all options are selected
|
|
7851
|
+
if (values.length === 0 || values.length < config.filterOptions.length) {
|
|
7852
|
+
if (!filteredColumnsList.includes(field)) {
|
|
7853
|
+
filteredColumnsList.push(field);
|
|
7854
|
+
}
|
|
7855
|
+
}
|
|
7856
|
+
}
|
|
7344
7857
|
}
|
|
7858
|
+
this.filteredColumns = filteredColumnsList;
|
|
7345
7859
|
}
|
|
7346
7860
|
/** @ignore */
|
|
7347
7861
|
onSortChanged() {
|
|
@@ -7364,7 +7878,20 @@ class AdsTableComponent {
|
|
|
7364
7878
|
/** @ignore */
|
|
7365
7879
|
clearAllFilters() {
|
|
7366
7880
|
if (this.gridApi) {
|
|
7881
|
+
// Clear AG Grid's internal filter model
|
|
7367
7882
|
this.gridApi.setFilterModel(null);
|
|
7883
|
+
// Clear custom column filter states (reset to all options selected)
|
|
7884
|
+
const newStates = new Map();
|
|
7885
|
+
for (const [field] of this.columnFilterStates()) {
|
|
7886
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7887
|
+
if (config?.filterOptions) {
|
|
7888
|
+
// Reset to all options selected
|
|
7889
|
+
newStates.set(field, [...config.filterOptions]);
|
|
7890
|
+
}
|
|
7891
|
+
}
|
|
7892
|
+
this.columnFilterStates.set(newStates);
|
|
7893
|
+
// Trigger external filter update
|
|
7894
|
+
this.gridApi.onFilterChanged();
|
|
7368
7895
|
this.updateFilteringState();
|
|
7369
7896
|
// Emit event to notify the header template that filters were cleared
|
|
7370
7897
|
this.filtersCleared.emit();
|
|
@@ -7377,9 +7904,101 @@ class AdsTableComponent {
|
|
|
7377
7904
|
defaultState: { sort: null },
|
|
7378
7905
|
});
|
|
7379
7906
|
this.updateSortingState();
|
|
7907
|
+
// Clear custom sort states
|
|
7908
|
+
this.columnSortStates.set(new Map());
|
|
7909
|
+
}
|
|
7910
|
+
}
|
|
7911
|
+
// ============ Custom Sort/Filter Menu Methods ============
|
|
7912
|
+
/** @ignore */
|
|
7913
|
+
getColumnSortFilterConfig(field) {
|
|
7914
|
+
return this.columnSortFilterConfigs.find(config => config.field === field);
|
|
7915
|
+
}
|
|
7916
|
+
/** @ignore */
|
|
7917
|
+
getColumnSortDirection(field) {
|
|
7918
|
+
return this.columnSortStates().get(field) ?? null;
|
|
7919
|
+
}
|
|
7920
|
+
/** @ignore */
|
|
7921
|
+
getColumnFilterValues(field) {
|
|
7922
|
+
const storedValues = this.columnFilterStates().get(field);
|
|
7923
|
+
if (storedValues !== undefined) {
|
|
7924
|
+
return storedValues;
|
|
7925
|
+
}
|
|
7926
|
+
// If no filter state exists for this field, return all options (initial state = all selected)
|
|
7927
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7928
|
+
return config?.filterOptions ?? [];
|
|
7929
|
+
}
|
|
7930
|
+
/** @ignore */
|
|
7931
|
+
isColumnSorted(field) {
|
|
7932
|
+
return this.columnSortStates().get(field) !== null && this.columnSortStates().get(field) !== undefined;
|
|
7933
|
+
}
|
|
7934
|
+
/** @ignore */
|
|
7935
|
+
isColumnFiltered(field) {
|
|
7936
|
+
const config = this.getColumnSortFilterConfig(field);
|
|
7937
|
+
if (!config?.filterOptions)
|
|
7938
|
+
return false;
|
|
7939
|
+
const selectedValues = this.columnFilterStates().get(field);
|
|
7940
|
+
// Column is filtered if:
|
|
7941
|
+
// - No options are selected (empty array = all unchecked)
|
|
7942
|
+
// - Some but not all options are selected
|
|
7943
|
+
if (selectedValues === undefined)
|
|
7944
|
+
return false;
|
|
7945
|
+
return selectedValues.length === 0 || selectedValues.length < config.filterOptions.length;
|
|
7946
|
+
}
|
|
7947
|
+
/** @ignore */
|
|
7948
|
+
onColumnSortChanged(event) {
|
|
7949
|
+
const newStates = new Map(this.columnSortStates());
|
|
7950
|
+
if (event.direction === null) {
|
|
7951
|
+
newStates.delete(event.field);
|
|
7952
|
+
}
|
|
7953
|
+
else {
|
|
7954
|
+
// Clear other sorts if not multi-sort (single column sort)
|
|
7955
|
+
newStates.clear();
|
|
7956
|
+
newStates.set(event.field, event.direction);
|
|
7957
|
+
}
|
|
7958
|
+
this.columnSortStates.set(newStates);
|
|
7959
|
+
// Apply sort to grid
|
|
7960
|
+
if (this.gridApi) {
|
|
7961
|
+
if (event.direction === null) {
|
|
7962
|
+
this.gridApi.applyColumnState({
|
|
7963
|
+
state: [{ colId: event.field, sort: null }],
|
|
7964
|
+
});
|
|
7965
|
+
}
|
|
7966
|
+
else {
|
|
7967
|
+
this.gridApi.applyColumnState({
|
|
7968
|
+
state: [{ colId: event.field, sort: event.direction }],
|
|
7969
|
+
defaultState: { sort: null },
|
|
7970
|
+
});
|
|
7971
|
+
}
|
|
7972
|
+
this.updateSortingState();
|
|
7380
7973
|
}
|
|
7381
7974
|
}
|
|
7382
7975
|
/** @ignore */
|
|
7976
|
+
onColumnFilterChanged(event) {
|
|
7977
|
+
const newStates = new Map(this.columnFilterStates());
|
|
7978
|
+
newStates.set(event.field, event.values);
|
|
7979
|
+
this.columnFilterStates.set(newStates);
|
|
7980
|
+
// Apply external filter to grid immediately
|
|
7981
|
+
if (this.gridApi) {
|
|
7982
|
+
this.gridApi.onFilterChanged();
|
|
7983
|
+
this.updateFilteringState();
|
|
7984
|
+
}
|
|
7985
|
+
}
|
|
7986
|
+
/** @ignore */
|
|
7987
|
+
onHideColumn(field) {
|
|
7988
|
+
const visibilityItem = this.columnVisibilityList().find(item => item.field === field);
|
|
7989
|
+
if (visibilityItem) {
|
|
7990
|
+
visibilityItem.control.setValue(false);
|
|
7991
|
+
}
|
|
7992
|
+
}
|
|
7993
|
+
/** @ignore */
|
|
7994
|
+
openColumnSortFilterMenu(field) {
|
|
7995
|
+
this.activeColumnMenu.set(field);
|
|
7996
|
+
}
|
|
7997
|
+
/** @ignore */
|
|
7998
|
+
closeColumnSortFilterMenu() {
|
|
7999
|
+
this.activeColumnMenu.set(null);
|
|
8000
|
+
}
|
|
8001
|
+
/** @ignore */
|
|
7383
8002
|
updateGridColumns() {
|
|
7384
8003
|
if (!this.gridApi) {
|
|
7385
8004
|
// If grid is not ready yet, update the column definitions directly
|
|
@@ -7584,11 +8203,11 @@ class AdsTableComponent {
|
|
|
7584
8203
|
this.unsubscribeFromControls();
|
|
7585
8204
|
}
|
|
7586
8205
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsTableComponent, deps: [{ token: i0.ElementRef }, { token: i1.AdsIconRegistry }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7587
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsTableComponent, isStandalone: false, selector: "ads-table", inputs: { width: "width", height: "height", headerTemplate: "headerTemplate", gridOptions: "gridOptions", rowData: "rowData", columnDefs: "columnDefs", icons: "icons", defaultColDef: "defaultColDef", loading: "loading", columnDefsByBreakpoint: "columnDefsByBreakpoint", showHeaderActions: "showHeaderActions" }, outputs: { filtersCleared: "filtersCleared" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\n @if (showHeaderActions) {\n <div class=\"table-header\">\n <div class=\"header-template\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\n }\n </div>\n\n <div class=\"header-actions\">\n <ads-table-button\n id=\"show-hide-columns-button\"\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\n (menuOpened)=\"openColumnVisibilityMenu()\"\n (menuClosed)=\"onColumnVisibilityMenuClosed()\"\n >\n <ads-icon\n name=\"visibility_eye_none\"\n theme=\"secondary\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n {{ hideColumnButtonLabel }}\n </ads-table-button>\n\n <ads-table-button\n id=\"filter-button\"\n [disabled]=\"!isFilteredTable\"\n (click)=\"clearAllFilters()\"\n >\n <ads-icon\n name=\"filter\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ filterButtonLabel }}\n\n @if(isFilteredTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n <ads-table-button\n id=\"sort-button\"\n [disabled]=\"!isSortedTable\"\n (click)=\"clearAllSorting()\"\n >\n <ads-icon\n name=\"arrow_up_and_down\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ sortButtonLabel }}\n @if (isSortedTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n </div>\n </div>\n }\n\n <ag-grid-angular\n [ngStyle]=\"{ height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"tableColumnDefs()\"\n [defaultColDef]=\"getDefaultColDef()\"\n (gridReady)=\"gridReady($event)\"\n (firstDataRendered)=\"firstDataRendered($event)\"\n (sortChanged)=\"sortChanged($event)\"\n (filterChanged)=\"filterChanged($event)\"\n [theme]=\"themeQuartz\"\n [loading]=\"loading\"\n />\n</div>\n\n<!-- Column Visibility Menu -->\n<mat-menu #columnVisibilityMenu=\"matMenu\" class=\"column-visibility-menu\" [class.has-header]=\"showHeaderActions\">\n <div class=\"menu-content\" (click)=\"$event.stopPropagation()\">\n <p class=\"dropdown-label\">Show/Hide Columns</p>\n <div class=\"dropdown-body\">\n @for (column of columnVisibilityList(); track $index) {\n <div class=\"column-row\">\n <span\n class=\"column-name\"\n [matTooltip]=\"column.headerName\"\n [matTooltipDisabled]=\"getTooltipDisabled(column.headerName)\"\n >\n {{ column.headerName }}\n </span>\n <div class=\"column-toggle\">\n <ads-slide-toggle\n [id]=\"'toggle-' + column.field\"\n [control]=\"column.control\"\n [showFooter]=\"false\"\n [customTitles]=\"['Show', 'Hide']\"\n />\n </div>\n </div>\n }\n </div>\n\n <ads-divider />\n\n <div class=\"dropdown-footer\">\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"hideAllColumns()\"\n [disabled]=\"allColumnsHidden\"\n variant=\"tertiary\"\n id='hide-all-button'\n size=\"xs\"\n >\n Hide All\n </ads-button>\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"showAllColumns()\"\n [disabled]=\"allColumnsVisible\"\n variant=\"tertiary\"\n id=\"show-all-button\"\n size=\"xs\"\n >\n Show All\n </ads-button>\n </div>\n </div>\n</mat-menu>\n", styles: [":host::ng-deep{--ag-wrapper-border-radius: 10px}:host::ng-deep ag-grid-angular{--ag-grid-size: 4px;--ag-border-radius: 5px;--ag-font-family: \"Roboto\";--ag-font-size: 16px;--ag-header-foreground-color: var(--color-medium);--ag-header-background-color: var(--color-light-30);--ag-background-color: var(--color-white);--ag-header-height: 45px;--ag-row-height: 45px;--ag-border-color: var(--color-light);--ag-foreground-color: var(--color-medium);--ag-spacing: 4px;--ag-inherited-accent-color: var(--color-secondary-hover)}:host::ng-deep ag-grid-angular .ag-header-cell-text{font-weight:600;line-height:21px}:host::ng-deep ag-grid-angular .ag-cell:focus,:host::ng-deep ag-grid-angular .ag-cell-focus{outline:none!important;border:none!important;box-shadow:none!important}:host::ng-deep ag-grid-angular .ag-row,:host::ng-deep ag-grid-angular .ag-header,:host::ng-deep ag-grid-angular .ag-advanced-filter-header{border-bottom:none}:host::ng-deep ag-grid-angular .ag-row-even{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-row-odd{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-sort-indicator-container{min-width:fit-content}:host::ng-deep ag-grid-angular .ag-sort-indicator-icon>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-header-cell-filter-button>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-theme-quartz{--ag-background-color: var(--color-light-30);--ag-foreground-color: var(--color-black);--ag-input-border-color: var(--color-light);--ag-input-focus-border-color: var(--color-medium);--ag-input-focus-box-shadow: none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input::placeholder{color:var(--color-medium);opacity:1}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper:before{background-image:none;content:none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input{padding-left:8px!important}:host::ng-deep .ads-table-container{display:flex;flex-direction:column;width:100%;height:100%}:host::ng-deep .ads-table-container.with-header::ng-deep ag-grid-angular .ag-root-wrapper{border-top:none;border-top-left-radius:0;border-top-right-radius:0}:host::ng-deep .ads-table-container .table-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--color-white);border:1px solid var(--color-light);border-top-left-radius:var(--ag-wrapper-border-radius);border-top-right-radius:var(--ag-wrapper-border-radius)}:host::ng-deep .ads-table-container .table-header .header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}:host::ng-deep .ads-table-container .table-header .header-actions ads-table-button{display:flex}::ng-deep .column-visibility-menu{width:234px;max-width:498px;border-radius:5px;box-shadow:0 4px 12px #00000026;border:1px solid var(--color-light)}::ng-deep .column-visibility-menu .mat-mdc-menu-content{padding:0}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content{background-color:var(--color-white)}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-label{padding:12px 12px 0;color:var(--color-medium);font-size:12px;font-weight:600;line-height:16px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body{overflow-y:auto}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row{display:flex;justify-content:space-between;align-items:center;padding:0 12px;height:45px;gap:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-name{font-size:16px;font-weight:400;color:var(--color-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;flex:1}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle{display:flex;justify-content:flex-end}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle ::ng-deep ads-slide-toggle .ads-toggle{height:45px!important}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer{display:flex;justify-content:space-between;gap:12px;padding:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer ::ng-deep ads-button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i3$4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: AdsSlideToggleComponent, selector: "ads-slide-toggle", inputs: ["enableYesOrNo", "customTitles", "control", "label", "id", "width"] }, { kind: "component", type: AdsButtonComponent, selector: "ads-button", inputs: ["id", "variant", "disabled", "size", "type", "fullWidth"] }, { kind: "component", type: AdsTableButtonComponent, selector: "ads-table-button", inputs: ["id", "disabled", "fullWidth", "matMenuTriggerFor"], outputs: ["menuOpened"] }, { kind: "component", type: DividerComponent, selector: "ads-divider", inputs: ["margin", "color"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
|
|
8206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsTableComponent, isStandalone: false, selector: "ads-table", inputs: { width: "width", height: "height", headerTemplate: "headerTemplate", gridOptions: "gridOptions", rowData: "rowData", columnDefs: "columnDefs", icons: "icons", defaultColDef: "defaultColDef", loading: "loading", columnDefsByBreakpoint: "columnDefsByBreakpoint", showHeaderActions: "showHeaderActions", enableCustomSortFilter: "enableCustomSortFilter", columnSortFilterConfigs: "columnSortFilterConfigs" }, outputs: { filtersCleared: "filtersCleared" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\n @if (showHeaderActions) {\n <div class=\"table-header\">\n <div class=\"header-template\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\n }\n </div>\n\n <div class=\"header-actions\">\n <ads-table-button\n id=\"show-hide-columns-button\"\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\n (menuOpened)=\"openColumnVisibilityMenu()\"\n (menuClosed)=\"onColumnVisibilityMenuClosed()\"\n >\n <ads-icon\n name=\"visibility_eye_none\"\n theme=\"secondary\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n {{ hideColumnButtonLabel }}\n </ads-table-button>\n\n <ads-table-button\n id=\"filter-button\"\n [disabled]=\"!isFilteredTable\"\n (click)=\"clearAllFilters()\"\n >\n <ads-icon\n name=\"filter\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ filterButtonLabel }}\n\n @if(isFilteredTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n <ads-table-button\n id=\"sort-button\"\n [disabled]=\"!isSortedTable\"\n (click)=\"clearAllSorting()\"\n >\n <ads-icon\n name=\"arrow_up_and_down\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ sortButtonLabel }}\n @if (isSortedTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n </div>\n </div>\n }\n\n <ag-grid-angular\n [ngStyle]=\"{ height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"getProcessedColumnDefs()\"\n [defaultColDef]=\"getDefaultColDef()\"\n [components]=\"frameworkComponents\"\n [isExternalFilterPresent]=\"isExternalFilterPresent\"\n [doesExternalFilterPass]=\"doesExternalFilterPass\"\n (gridReady)=\"gridReady($event)\"\n (firstDataRendered)=\"firstDataRendered($event)\"\n (sortChanged)=\"sortChanged($event)\"\n (filterChanged)=\"filterChanged($event)\"\n [theme]=\"themeQuartz\"\n [loading]=\"loading\"\n [enableCellTextSelection]=\"true\"\n [ensureDomOrder]=\"true\"\n />\n\n<!-- Column Visibility Menu -->\n<mat-menu #columnVisibilityMenu=\"matMenu\" class=\"column-visibility-menu\" [class.has-header]=\"showHeaderActions\">\n <div class=\"menu-content\" (click)=\"$event.stopPropagation()\">\n <p class=\"dropdown-label\">Show/Hide Columns</p>\n <div class=\"dropdown-body\">\n @for (column of columnVisibilityList(); track $index) {\n <div class=\"column-row\">\n <span\n class=\"column-name\"\n [matTooltip]=\"column.headerName\"\n [matTooltipDisabled]=\"getTooltipDisabled(column.headerName)\"\n >\n {{ column.headerName }}\n </span>\n <div class=\"column-toggle\">\n <ads-slide-toggle\n [id]=\"'toggle-' + column.field\"\n [control]=\"column.control\"\n [showFooter]=\"false\"\n [customTitles]=\"['Show', 'Hide']\"\n />\n </div>\n </div>\n }\n </div>\n\n <ads-divider />\n\n <div class=\"dropdown-footer\">\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"hideAllColumns()\"\n [disabled]=\"allColumnsHidden\"\n variant=\"tertiary\"\n id='hide-all-button'\n size=\"xs\"\n >\n Hide All\n </ads-button>\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"showAllColumns()\"\n [disabled]=\"allColumnsVisible\"\n variant=\"tertiary\"\n id=\"show-all-button\"\n size=\"xs\"\n >\n Show All\n </ads-button>\n </div>\n </div>\n</mat-menu>\n", styles: [":host::ng-deep{--ag-wrapper-border-radius: 10px}:host::ng-deep ag-grid-angular{--ag-grid-size: 4px;--ag-border-radius: 5px;--ag-font-family: \"Roboto\";--ag-font-size: 16px;--ag-header-foreground-color: var(--color-medium);--ag-header-background-color: var(--color-light-30);--ag-background-color: var(--color-white);--ag-header-height: 45px;--ag-row-height: 45px;--ag-border-color: var(--color-light);--ag-foreground-color: var(--color-medium);--ag-spacing: 4px;--ag-inherited-accent-color: var(--color-secondary-hover)}:host::ng-deep ag-grid-angular .ag-header-cell-text{font-weight:600;line-height:21px}:host::ng-deep ag-grid-angular .ag-cell:focus,:host::ng-deep ag-grid-angular .ag-cell-focus{outline:none!important;border:none!important;box-shadow:none!important}:host::ng-deep ag-grid-angular .ag-row,:host::ng-deep ag-grid-angular .ag-header,:host::ng-deep ag-grid-angular .ag-advanced-filter-header{border-bottom:none}:host::ng-deep ag-grid-angular .ag-row-even{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-row-odd{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-sort-indicator-container{min-width:fit-content}:host::ng-deep ag-grid-angular .ag-sort-indicator-icon>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-header-cell-filter-button>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-theme-quartz{--ag-background-color: var(--color-light-30);--ag-foreground-color: var(--color-black);--ag-input-border-color: var(--color-light);--ag-input-focus-border-color: var(--color-medium);--ag-input-focus-box-shadow: none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input::placeholder{color:var(--color-medium);opacity:1}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper:before{background-image:none;content:none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input{padding-left:8px!important}:host::ng-deep .ads-table-container{display:flex;flex-direction:column;width:100%;height:100%}:host::ng-deep .ads-table-container.with-header::ng-deep ag-grid-angular .ag-root-wrapper{border-top:none;border-top-left-radius:0;border-top-right-radius:0}:host::ng-deep .ads-table-container .table-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--color-white);border:1px solid var(--color-light);border-top-left-radius:var(--ag-wrapper-border-radius);border-top-right-radius:var(--ag-wrapper-border-radius)}:host::ng-deep .ads-table-container .table-header .header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}:host::ng-deep .ads-table-container .table-header .header-actions ads-table-button{display:flex}::ng-deep .column-visibility-menu{width:234px;max-width:498px;border-radius:5px;box-shadow:0 4px 12px #00000026;border:1px solid var(--color-light)}::ng-deep .column-visibility-menu .mat-mdc-menu-content{padding:0}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content{background-color:var(--color-white)}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-label{padding:12px 12px 0;color:var(--color-medium);font-size:12px;font-weight:600;line-height:16px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body{overflow-y:auto}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row{display:flex;justify-content:space-between;align-items:center;padding:0 12px;height:45px;gap:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-name{font-size:16px;font-weight:400;color:var(--color-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;flex:1}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle{display:flex;justify-content:flex-end}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle ::ng-deep ads-slide-toggle .ads-toggle{height:45px!important}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer{display:flex;justify-content:space-between;gap:12px;padding:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer ::ng-deep ads-button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i3$4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "component", type: AdsSlideToggleComponent, selector: "ads-slide-toggle", inputs: ["enableYesOrNo", "customTitles", "control", "label", "id", "width"] }, { kind: "component", type: AdsButtonComponent, selector: "ads-button", inputs: ["id", "variant", "disabled", "size", "type", "fullWidth"] }, { kind: "component", type: AdsTableButtonComponent, selector: "ads-table-button", inputs: ["id", "disabled", "fullWidth", "matMenuTriggerFor"], outputs: ["menuOpened"] }, { kind: "component", type: DividerComponent, selector: "ads-divider", inputs: ["margin", "color"] }, { kind: "directive", type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
|
|
7588
8207
|
}
|
|
7589
8208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsTableComponent, decorators: [{
|
|
7590
8209
|
type: Component,
|
|
7591
|
-
args: [{ selector: 'ads-table', standalone: false, template: "<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\n @if (showHeaderActions) {\n <div class=\"table-header\">\n <div class=\"header-template\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\n }\n </div>\n\n <div class=\"header-actions\">\n <ads-table-button\n id=\"show-hide-columns-button\"\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\n (menuOpened)=\"openColumnVisibilityMenu()\"\n (menuClosed)=\"onColumnVisibilityMenuClosed()\"\n >\n <ads-icon\n name=\"visibility_eye_none\"\n theme=\"secondary\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n {{ hideColumnButtonLabel }}\n </ads-table-button>\n\n <ads-table-button\n id=\"filter-button\"\n [disabled]=\"!isFilteredTable\"\n (click)=\"clearAllFilters()\"\n >\n <ads-icon\n name=\"filter\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ filterButtonLabel }}\n\n @if(isFilteredTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n <ads-table-button\n id=\"sort-button\"\n [disabled]=\"!isSortedTable\"\n (click)=\"clearAllSorting()\"\n >\n <ads-icon\n name=\"arrow_up_and_down\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ sortButtonLabel }}\n @if (isSortedTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n </div>\n </div>\n }\n\n <ag-grid-angular\n [ngStyle]=\"{ height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"
|
|
8210
|
+
args: [{ selector: 'ads-table', standalone: false, template: "<div class=\"ads-table-container\" [style.width]=\"width\" [class.with-header]=\"showHeaderActions\">\n @if (showHeaderActions) {\n <div class=\"table-header\">\n <div class=\"header-template\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\" />\n }\n </div>\n\n <div class=\"header-actions\">\n <ads-table-button\n id=\"show-hide-columns-button\"\n [matMenuTriggerFor]=\"columnVisibilityMenu\"\n (menuOpened)=\"openColumnVisibilityMenu()\"\n (menuClosed)=\"onColumnVisibilityMenuClosed()\"\n >\n <ads-icon\n name=\"visibility_eye_none\"\n theme=\"secondary\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n {{ hideColumnButtonLabel }}\n </ads-table-button>\n\n <ads-table-button\n id=\"filter-button\"\n [disabled]=\"!isFilteredTable\"\n (click)=\"clearAllFilters()\"\n >\n <ads-icon\n name=\"filter\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ filterButtonLabel }}\n\n @if(isFilteredTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n <ads-table-button\n id=\"sort-button\"\n [disabled]=\"!isSortedTable\"\n (click)=\"clearAllSorting()\"\n >\n <ads-icon\n name=\"arrow_up_and_down\"\n theme=\"secondary\"\n size=\"xxxs\"\n />\n {{ sortButtonLabel }}\n @if (isSortedTable) {\n <ads-icon\n name=\"cross\"\n stroke=\"secondary\"\n size=\"xxxs\"\n />\n }\n </ads-table-button>\n </div>\n </div>\n }\n\n <ag-grid-angular\n [ngStyle]=\"{ height: height }\"\n [icons]=\"getAgGridIcons()\"\n class=\"ag-theme-quartz\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"rowData\"\n [columnDefs]=\"getProcessedColumnDefs()\"\n [defaultColDef]=\"getDefaultColDef()\"\n [components]=\"frameworkComponents\"\n [isExternalFilterPresent]=\"isExternalFilterPresent\"\n [doesExternalFilterPass]=\"doesExternalFilterPass\"\n (gridReady)=\"gridReady($event)\"\n (firstDataRendered)=\"firstDataRendered($event)\"\n (sortChanged)=\"sortChanged($event)\"\n (filterChanged)=\"filterChanged($event)\"\n [theme]=\"themeQuartz\"\n [loading]=\"loading\"\n [enableCellTextSelection]=\"true\"\n [ensureDomOrder]=\"true\"\n />\n\n<!-- Column Visibility Menu -->\n<mat-menu #columnVisibilityMenu=\"matMenu\" class=\"column-visibility-menu\" [class.has-header]=\"showHeaderActions\">\n <div class=\"menu-content\" (click)=\"$event.stopPropagation()\">\n <p class=\"dropdown-label\">Show/Hide Columns</p>\n <div class=\"dropdown-body\">\n @for (column of columnVisibilityList(); track $index) {\n <div class=\"column-row\">\n <span\n class=\"column-name\"\n [matTooltip]=\"column.headerName\"\n [matTooltipDisabled]=\"getTooltipDisabled(column.headerName)\"\n >\n {{ column.headerName }}\n </span>\n <div class=\"column-toggle\">\n <ads-slide-toggle\n [id]=\"'toggle-' + column.field\"\n [control]=\"column.control\"\n [showFooter]=\"false\"\n [customTitles]=\"['Show', 'Hide']\"\n />\n </div>\n </div>\n }\n </div>\n\n <ads-divider />\n\n <div class=\"dropdown-footer\">\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"hideAllColumns()\"\n [disabled]=\"allColumnsHidden\"\n variant=\"tertiary\"\n id='hide-all-button'\n size=\"xs\"\n >\n Hide All\n </ads-button>\n <ads-button\n [fullWidth]=\"true\"\n (click)=\"showAllColumns()\"\n [disabled]=\"allColumnsVisible\"\n variant=\"tertiary\"\n id=\"show-all-button\"\n size=\"xs\"\n >\n Show All\n </ads-button>\n </div>\n </div>\n</mat-menu>\n", styles: [":host::ng-deep{--ag-wrapper-border-radius: 10px}:host::ng-deep ag-grid-angular{--ag-grid-size: 4px;--ag-border-radius: 5px;--ag-font-family: \"Roboto\";--ag-font-size: 16px;--ag-header-foreground-color: var(--color-medium);--ag-header-background-color: var(--color-light-30);--ag-background-color: var(--color-white);--ag-header-height: 45px;--ag-row-height: 45px;--ag-border-color: var(--color-light);--ag-foreground-color: var(--color-medium);--ag-spacing: 4px;--ag-inherited-accent-color: var(--color-secondary-hover)}:host::ng-deep ag-grid-angular .ag-header-cell-text{font-weight:600;line-height:21px}:host::ng-deep ag-grid-angular .ag-cell:focus,:host::ng-deep ag-grid-angular .ag-cell-focus{outline:none!important;border:none!important;box-shadow:none!important}:host::ng-deep ag-grid-angular .ag-row,:host::ng-deep ag-grid-angular .ag-header,:host::ng-deep ag-grid-angular .ag-advanced-filter-header{border-bottom:none}:host::ng-deep ag-grid-angular .ag-row-even{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-row-odd{background-color:var(--color-white)}:host::ng-deep ag-grid-angular .ag-sort-indicator-container{min-width:fit-content}:host::ng-deep ag-grid-angular .ag-sort-indicator-icon>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-header-cell-filter-button>svg{fill:var(--color-medium);stroke:var(--color-medium)}:host::ng-deep ag-grid-angular .ag-theme-quartz{--ag-background-color: var(--color-light-30);--ag-foreground-color: var(--color-black);--ag-input-border-color: var(--color-light);--ag-input-focus-border-color: var(--color-medium);--ag-input-focus-box-shadow: none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input::placeholder{color:var(--color-medium);opacity:1}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper:before{background-image:none;content:none}:host::ng-deep ag-grid-angular .ag-theme-quartz .ag-input-wrapper input{padding-left:8px!important}:host::ng-deep .ads-table-container{display:flex;flex-direction:column;width:100%;height:100%}:host::ng-deep .ads-table-container.with-header::ng-deep ag-grid-angular .ag-root-wrapper{border-top:none;border-top-left-radius:0;border-top-right-radius:0}:host::ng-deep .ads-table-container .table-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--color-white);border:1px solid var(--color-light);border-top-left-radius:var(--ag-wrapper-border-radius);border-top-right-radius:var(--ag-wrapper-border-radius)}:host::ng-deep .ads-table-container .table-header .header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}:host::ng-deep .ads-table-container .table-header .header-actions ads-table-button{display:flex}::ng-deep .column-visibility-menu{width:234px;max-width:498px;border-radius:5px;box-shadow:0 4px 12px #00000026;border:1px solid var(--color-light)}::ng-deep .column-visibility-menu .mat-mdc-menu-content{padding:0}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content{background-color:var(--color-white)}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-label{padding:12px 12px 0;color:var(--color-medium);font-size:12px;font-weight:600;line-height:16px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body{overflow-y:auto}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row{display:flex;justify-content:space-between;align-items:center;padding:0 12px;height:45px;gap:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-name{font-size:16px;font-weight:400;color:var(--color-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;flex:1}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle{display:flex;justify-content:flex-end}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-body .column-row .column-toggle ::ng-deep ads-slide-toggle .ads-toggle{height:45px!important}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer{display:flex;justify-content:space-between;gap:12px;padding:12px}::ng-deep .column-visibility-menu .mat-mdc-menu-content .menu-content .dropdown-footer ::ng-deep ads-button{flex:1}\n"] }]
|
|
7592
8211
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AdsIconRegistry }, { type: i0.ChangeDetectorRef }], propDecorators: { width: [{
|
|
7593
8212
|
type: Input
|
|
7594
8213
|
}], height: [{
|
|
@@ -7611,6 +8230,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
7611
8230
|
type: Input
|
|
7612
8231
|
}], showHeaderActions: [{
|
|
7613
8232
|
type: Input
|
|
8233
|
+
}], enableCustomSortFilter: [{
|
|
8234
|
+
type: Input
|
|
8235
|
+
}], columnSortFilterConfigs: [{
|
|
8236
|
+
type: Input
|
|
7614
8237
|
}], filtersCleared: [{
|
|
7615
8238
|
type: Output
|
|
7616
8239
|
}], menuTrigger: [{
|
|
@@ -7643,7 +8266,9 @@ class AdsTableModule {
|
|
|
7643
8266
|
AdsTableButtonModule,
|
|
7644
8267
|
AdsDividerModule,
|
|
7645
8268
|
MatTooltip,
|
|
7646
|
-
MatMenuModule
|
|
8269
|
+
MatMenuModule,
|
|
8270
|
+
AdsColumnSortFilterMenuModule,
|
|
8271
|
+
AdsCustomHeaderModule], exports: [AdsTableComponent] }); }
|
|
7647
8272
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsTableModule, imports: [CommonModule,
|
|
7648
8273
|
AdsIconModule,
|
|
7649
8274
|
AgGridAngular,
|
|
@@ -7652,7 +8277,9 @@ class AdsTableModule {
|
|
|
7652
8277
|
AdsButtonModule,
|
|
7653
8278
|
AdsTableButtonModule,
|
|
7654
8279
|
AdsDividerModule,
|
|
7655
|
-
MatMenuModule
|
|
8280
|
+
MatMenuModule,
|
|
8281
|
+
AdsColumnSortFilterMenuModule,
|
|
8282
|
+
AdsCustomHeaderModule] }); }
|
|
7656
8283
|
}
|
|
7657
8284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsTableModule, decorators: [{
|
|
7658
8285
|
type: NgModule,
|
|
@@ -7669,6 +8296,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
7669
8296
|
AdsDividerModule,
|
|
7670
8297
|
MatTooltip,
|
|
7671
8298
|
MatMenuModule,
|
|
8299
|
+
AdsColumnSortFilterMenuModule,
|
|
8300
|
+
AdsCustomHeaderModule,
|
|
7672
8301
|
],
|
|
7673
8302
|
exports: [AdsTableComponent],
|
|
7674
8303
|
}]
|
|
@@ -9739,5 +10368,5 @@ function provideAdsUi(config) {
|
|
|
9739
10368
|
* Generated bundle index. Do not edit.
|
|
9740
10369
|
*/
|
|
9741
10370
|
|
|
9742
|
-
export { AdsAscentLogoComponent, AdsAscentLogoModule, AdsAvatarComponent, AdsAvatarModule, AdsBreadcrumbComponent, AdsBreadcrumbModule, AdsBubbleComponent, AdsBubbleModule, AdsButtonComponent, AdsButtonContainerComponent, AdsButtonContainerModule, AdsButtonModule, AdsCardComponent, AdsCardModule, AdsCheckboxComponent, AdsCheckboxModule, AdsChipComponent, AdsChipModule, AdsCreateTagComponent, AdsCreateTagModule, AdsDatepickerComponent, AdsDatepickerModule, AdsDatetimepickerComponent, AdsDatetimepickerModule, AdsDividerModule, AdsDragAndDropListComponent, AdsDragAndDropListModule, AdsDropdownComponent, AdsDropdownModule, AdsErrorPageCodeComponent, AdsErrorPageCodeModule, AdsErrorPageComponent, AdsErrorPageModule, AdsExpansionPanelComponent, AdsExpansionPanelModule, AdsFooterComponent, AdsFooterContainerComponent, AdsFooterContainerModule, AdsFooterModule, AdsGenericLogoComponent, AdsGenericLogoModule, AdsHeaderComponent, AdsHeaderContainerComponent, AdsHeaderContainerModule, AdsHeaderModule, AdsHorizontalNavBarComponent, AdsHorizontalNavBarModule, AdsHorizontalStepperComponent, AdsHorizontalStepperModule, AdsIconButtonComponent, AdsIconButtonModule, AdsIconHoverComponent, AdsIconHoverModule, AdsInputComponent, AdsInputDropdownComponent, AdsInputDropdownModule, AdsInputModule, AdsInternationalPhoneFieldComponent, AdsInternationalPhoneFieldModule, AdsLinkButtonComponent, AdsLinkButtonModule, AdsMainMenuComponent, AdsMainMenuModule, AdsModalComponent, AdsModalModule, AdsMultiSelectDropdownComponent, AdsMultiSelectDropdownModule, AdsNavMenuComponent, AdsNavMenuModule, AdsNavigationCollapseHandleComponent, AdsNavigationCollapseHandleModule, AdsNavigationComponent, AdsNavigationHeaderComponent, AdsNavigationHeaderModule, AdsNavigationItemComponent, AdsNavigationItemModule, AdsNavigationItemsContainerComponent, AdsNavigationItemsContainerModule, AdsNavigationModule, AdsNumericBadgeComponent, AdsNumericBadgeModule, AdsNumericStepperComponent, AdsNumericStepperModule, AdsOrgDisplayTextComponent, AdsOrgDisplayTextModule, AdsPeakEssentialsLogoComponent, AdsPeakEssentialsLogoModule, AdsPeakMarketplaceLogoComponent, AdsPeakMarketplaceLogoModule, AdsPeakOrderManagementLogoComponent, AdsPeakOrderManagementLogoModule, AdsPhoneFieldComponent, AdsPhoneFieldModule, AdsPilotPayLogoComponent, AdsPilotPayLogoModule, AdsPrimaryLogoComponent, AdsPrimaryLogoModule, AdsProgressBarComponent, AdsProgressBarModule, AdsProgressIndicatorSpinnerComponent, AdsProgressIndicatorSpinnerModule, AdsProgressSpinnerComponent, AdsProgressSpinnerModule, AdsProgressStepperComponent, AdsProgressStepperModule, AdsRadioButtonComponent, AdsRadioButtonModule, AdsScmsLogoComponent, AdsScmsLogoModule, AdsScmsSideNavBarComponent, AdsScmsSideNavBarModule, AdsSearchDropdownComponent, AdsSearchDropdownModule, AdsSearchInputComponent, AdsSearchInputModule, AdsShellLayoutModule, AdsShipmentHorizontalStepperComponent, AdsShipmentHorizontalStepperModule, AdsSideNavBarComponent, AdsSideNavBarModule, AdsSideNavBarV2Component, AdsSideNavBarV2Module, AdsSlideToggle, AdsSlideToggleComponent, AdsSliderComponent, AdsSliderModule, AdsSnackbarComponent, AdsSnackbarModule, AdsSplashPageComponent, AdsSplashPageModule, AdsStepperComponent, AdsStepperModule, AdsTableComponent, AdsTableModule, AdsTabsComponent, AdsTabsModule, AdsTagComponent, AdsTagContainerComponent, AdsTagContainerModule, AdsTagModule, AdsTextareaComponent, AdsTextareaModule, AdsTimeFieldComponent, AdsTimeFieldModule, AdsTimepickerComponent, AdsTimepickerModule, AdsVerticalSideNavigationStepperComponent, AdsVerticalSideNavigationStepperModule, AdsWizardStepperComponent, AdsWizardStepperModule, AscentCardComponent, AscentCardModule, BadgeColor, Colors, CustomDatetimeAdapter, DividerComponent, ErrorPageDefault, HorizontalStepStatus, MainMenuService, ModalActionType, ModalPanelClass, PanelClass, ShellLayoutComponent, SpinnerSize, StepStatus, TableBreakpoint, ViewportService, WindowService, WizardStepStatus, provideAdsUi };
|
|
10371
|
+
export { AdsAscentLogoComponent, AdsAscentLogoModule, AdsAvatarComponent, AdsAvatarModule, AdsBreadcrumbComponent, AdsBreadcrumbModule, AdsBubbleComponent, AdsBubbleModule, AdsButtonComponent, AdsButtonContainerComponent, AdsButtonContainerModule, AdsButtonModule, AdsCardComponent, AdsCardModule, AdsCheckboxComponent, AdsCheckboxModule, AdsChipComponent, AdsChipModule, AdsColumnSortFilterMenuComponent, AdsColumnSortFilterMenuModule, AdsCreateTagComponent, AdsCreateTagModule, AdsCustomHeaderComponent, AdsCustomHeaderModule, AdsDatepickerComponent, AdsDatepickerModule, AdsDatetimepickerComponent, AdsDatetimepickerModule, AdsDividerModule, AdsDragAndDropListComponent, AdsDragAndDropListModule, AdsDropdownComponent, AdsDropdownModule, AdsErrorPageCodeComponent, AdsErrorPageCodeModule, AdsErrorPageComponent, AdsErrorPageModule, AdsExpansionPanelComponent, AdsExpansionPanelModule, AdsFooterComponent, AdsFooterContainerComponent, AdsFooterContainerModule, AdsFooterModule, AdsGenericLogoComponent, AdsGenericLogoModule, AdsHeaderComponent, AdsHeaderContainerComponent, AdsHeaderContainerModule, AdsHeaderModule, AdsHorizontalNavBarComponent, AdsHorizontalNavBarModule, AdsHorizontalStepperComponent, AdsHorizontalStepperModule, AdsIconButtonComponent, AdsIconButtonModule, AdsIconHoverComponent, AdsIconHoverModule, AdsInputComponent, AdsInputDropdownComponent, AdsInputDropdownModule, AdsInputModule, AdsInternationalPhoneFieldComponent, AdsInternationalPhoneFieldModule, AdsLinkButtonComponent, AdsLinkButtonModule, AdsMainMenuComponent, AdsMainMenuModule, AdsModalComponent, AdsModalModule, AdsMultiSelectDropdownComponent, AdsMultiSelectDropdownModule, AdsNavMenuComponent, AdsNavMenuModule, AdsNavigationCollapseHandleComponent, AdsNavigationCollapseHandleModule, AdsNavigationComponent, AdsNavigationHeaderComponent, AdsNavigationHeaderModule, AdsNavigationItemComponent, AdsNavigationItemModule, AdsNavigationItemsContainerComponent, AdsNavigationItemsContainerModule, AdsNavigationModule, AdsNumericBadgeComponent, AdsNumericBadgeModule, AdsNumericStepperComponent, AdsNumericStepperModule, AdsOrgDisplayTextComponent, AdsOrgDisplayTextModule, AdsPeakEssentialsLogoComponent, AdsPeakEssentialsLogoModule, AdsPeakMarketplaceLogoComponent, AdsPeakMarketplaceLogoModule, AdsPeakOrderManagementLogoComponent, AdsPeakOrderManagementLogoModule, AdsPhoneFieldComponent, AdsPhoneFieldModule, AdsPilotPayLogoComponent, AdsPilotPayLogoModule, AdsPrimaryLogoComponent, AdsPrimaryLogoModule, AdsProgressBarComponent, AdsProgressBarModule, AdsProgressIndicatorSpinnerComponent, AdsProgressIndicatorSpinnerModule, AdsProgressSpinnerComponent, AdsProgressSpinnerModule, AdsProgressStepperComponent, AdsProgressStepperModule, AdsRadioButtonComponent, AdsRadioButtonModule, AdsScmsLogoComponent, AdsScmsLogoModule, AdsScmsSideNavBarComponent, AdsScmsSideNavBarModule, AdsSearchDropdownComponent, AdsSearchDropdownModule, AdsSearchInputComponent, AdsSearchInputModule, AdsShellLayoutModule, AdsShipmentHorizontalStepperComponent, AdsShipmentHorizontalStepperModule, AdsSideNavBarComponent, AdsSideNavBarModule, AdsSideNavBarV2Component, AdsSideNavBarV2Module, AdsSlideToggle, AdsSlideToggleComponent, AdsSliderComponent, AdsSliderModule, AdsSnackbarComponent, AdsSnackbarModule, AdsSplashPageComponent, AdsSplashPageModule, AdsStepperComponent, AdsStepperModule, AdsTableComponent, AdsTableModule, AdsTabsComponent, AdsTabsModule, AdsTagComponent, AdsTagContainerComponent, AdsTagContainerModule, AdsTagModule, AdsTextareaComponent, AdsTextareaModule, AdsTimeFieldComponent, AdsTimeFieldModule, AdsTimepickerComponent, AdsTimepickerModule, AdsVerticalSideNavigationStepperComponent, AdsVerticalSideNavigationStepperModule, AdsWizardStepperComponent, AdsWizardStepperModule, AscentCardComponent, AscentCardModule, BadgeColor, Colors, CustomDatetimeAdapter, DividerComponent, ErrorPageDefault, HorizontalStepStatus, MainMenuService, ModalActionType, ModalPanelClass, PanelClass, ShellLayoutComponent, SpinnerSize, StepStatus, TableBreakpoint, ViewportService, WindowService, WizardStepStatus, provideAdsUi };
|
|
9743
10372
|
//# sourceMappingURL=ascentgl-ads-ui.mjs.map
|