@firestitch/filter 18.2.109 → 18.2.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +3 -1
- package/app/models/items/autocomplete-item.d.ts +14 -3
- package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +14 -4
- package/esm2022/app/helpers/encode-query-parm.mjs +2 -2
- package/esm2022/app/models/items/autocomplete-item.mjs +25 -8
- package/fesm2022/firestitch-filter.mjs +38 -11
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
2
3
|
import { IFilterConfigItem } from '../../../interfaces';
|
|
3
4
|
import { IFilterSavedFilter } from '../../../interfaces/saved-filters.interface';
|
|
4
5
|
import { BaseItem } from '../../../models/items';
|
|
@@ -12,9 +13,10 @@ export declare class FsFilterSavedFilterManageComponent implements OnInit {
|
|
|
12
13
|
ngOnInit(): void;
|
|
13
14
|
get items(): BaseItem<IFilterConfigItem>[];
|
|
14
15
|
get pluralLabel(): string;
|
|
15
|
-
get
|
|
16
|
+
get orderable(): boolean;
|
|
16
17
|
selectFilter(savedFilter: IFilterSavedFilter): void;
|
|
17
18
|
remove(savedFilter: IFilterSavedFilter): void;
|
|
19
|
+
drop(event: CdkDragDrop<IFilterSavedFilter[]>): void;
|
|
18
20
|
order(savedFilters: IFilterSavedFilter[]): void;
|
|
19
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterSavedFilterManageComponent, never>;
|
|
20
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<FsFilterSavedFilterManageComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
@@ -3,10 +3,21 @@ import { IFilterConfigAutocompleteItem } from '../../interfaces/items/autocomple
|
|
|
3
3
|
import { BaseAutocompleteItem } from './base-autocomplete-item';
|
|
4
4
|
export declare class AutocompleteItem extends BaseAutocompleteItem<IFilterConfigAutocompleteItem> {
|
|
5
5
|
static create(config: IFilterConfigAutocompleteItem, filter: FilterComponent): AutocompleteItem;
|
|
6
|
+
/**
|
|
7
|
+
* Returns the unwrapped primitive value (e.g. 123) from the
|
|
8
|
+
* underlying {name, value} object stored via BaseItem.
|
|
9
|
+
*/
|
|
6
10
|
get value(): any;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* API-ready query: returns the raw primitive value keyed by item name.
|
|
13
|
+
*/
|
|
14
|
+
get query(): Record<string, any>;
|
|
15
|
+
/**
|
|
16
|
+
* URL-ready query param: returns `value:encodedName` format for
|
|
17
|
+
* round-tripping through browser query strings.
|
|
18
|
+
* Uses super.value to access the full {name, value} object.
|
|
19
|
+
*/
|
|
20
|
+
get queryParam(): Record<string, unknown>;
|
|
10
21
|
get chips(): {
|
|
11
22
|
name?: string;
|
|
12
23
|
value: string;
|
package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, } from '@angular/core';
|
|
2
|
+
import { CdkDrag, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
|
2
3
|
import { MatButton } from '@angular/material/button';
|
|
3
4
|
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
|
5
|
+
import { MatIcon } from '@angular/material/icon';
|
|
4
6
|
import { FsMenuModule } from '@firestitch/menu';
|
|
5
7
|
import { FilterController } from '../../../services/filter-controller.service';
|
|
6
8
|
import { SavedFilterController } from '../../../services/saved-filter-controller.service';
|
|
@@ -23,7 +25,7 @@ export class FsFilterSavedFilterManageComponent {
|
|
|
23
25
|
get pluralLabel() {
|
|
24
26
|
return this._savedFilterController.pluralLabel;
|
|
25
27
|
}
|
|
26
|
-
get
|
|
28
|
+
get orderable() {
|
|
27
29
|
return this._savedFilterController.orderable;
|
|
28
30
|
}
|
|
29
31
|
selectFilter(savedFilter) {
|
|
@@ -37,20 +39,28 @@ export class FsFilterSavedFilterManageComponent {
|
|
|
37
39
|
this._cdRef.markForCheck();
|
|
38
40
|
});
|
|
39
41
|
}
|
|
42
|
+
drop(event) {
|
|
43
|
+
moveItemInArray(this.savedFilters, event.previousIndex, event.currentIndex);
|
|
44
|
+
this.order(this.savedFilters);
|
|
45
|
+
}
|
|
40
46
|
order(savedFilters) {
|
|
41
47
|
this._savedFilterController.order(savedFilters)
|
|
42
48
|
.subscribe();
|
|
43
49
|
}
|
|
44
50
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterSavedFilterManageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterSavedFilterManageComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n <table class=\"fs-list-table\">\n
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterSavedFilterManageComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n @if (savedFilters?.length) {\n <table class=\"fs-list-table\">\n <thead>\n <tr>\n @if (orderable) {\n <th class=\"drag-col\"></th>\n }\n <th>\n Name\n </th>\n <th>\n Filters\n </th>\n <th class=\"actions-column\"></th>\n </tr>\n </thead>\n <tbody\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\">\n @for (savedFilter of savedFilters; track savedFilter.id) {\n <tr cdkDrag [cdkDragDisabled]=\"!orderable\" cdkDragLockAxis=\"y\" [cdkDragPreviewClass]=\"'saved-filter-drag-preview'\">\n @if (orderable) {\n <td class=\"drag-col\" cdkDragHandle>\n <mat-icon>drag_handle</mat-icon>\n </td>\n }\n <td>\n <a (click)=\"selectFilter(savedFilter)\">\n {{ savedFilter.name }}\n </a>\n </td>\n <td>\n <fs-saved-filter-chips [savedFilter]=\"savedFilter\"></fs-saved-filter-chips>\n </td>\n <td>\n <fs-menu>\n <ng-template\n fs-menu-item\n (click)=\"remove(savedFilter)\">\n Delete\n </ng-template>\n </fs-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Done\n </button>\n</div>", styles: ["::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table thead{display:table-header-group}::ng-deep .fs-list-table thead th{color:#999;padding:8px;font-weight:400;color:#8f8f8f;font-size:85%;text-align:left}::ng-deep .fs-list-table tbody{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table tfoot tr{display:table-row}::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table thead tr td,::ng-deep .fs-list-table tfoot tr td{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table.style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group){clip-path:xywh(0 3px 100% calc(100% - 6px) round 10px)}::ng-deep .fs-list-table.style-card tbody tr td{border:none!important;background-color:#fafafa;padding:8px 16px}::ng-deep .fs-list-table.style-line tbody td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody td{box-sizing:border-box;border-top:1px solid #e7e7e7}::ng-deep .fs-list-table.style-line tbody tr:first-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:first-child td{border-color:#c4c4c4}::ng-deep .fs-list-table.style-line tbody tr:last-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:last-child td{border-bottom:1px solid #c4c4c4}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging thead th{border-color:#e7e7e7}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .saved-filter-drag-preview{display:table;background-color:#00000008;border-radius:5px}::ng-deep .saved-filter-drag-preview td{border:none;padding:8px;vertical-align:middle}::ng-deep .saved-filter-drag-preview fs-menu{display:none}:host ::ng-deep .mat-mdc-dialog-content{min-width:400px}:host ::ng-deep .cdk-drag-placeholder{opacity:.5;background-color:#0000000d;border-radius:5px}:host ::ng-deep .cdk-drag-placeholder td{border:none}:host ::ng-deep .cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}:host ::ng-deep .cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.actions-column{width:1%}td.drag-col,th.drag-col{width:1%;white-space:nowrap;text-align:center;cursor:grab}td.drag-col mat-icon,th.drag-col mat-icon{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: FsFilterSavedFilterChipsComponent, selector: "fs-saved-filter-chips", inputs: ["savedFilter"] }, { kind: "ngmodule", type: FsMenuModule }, { kind: "component", type: i2.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i2.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
52
|
}
|
|
47
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterSavedFilterManageComponent, decorators: [{
|
|
48
54
|
type: Component,
|
|
49
55
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
50
56
|
MatDialogModule,
|
|
51
57
|
MatButton,
|
|
58
|
+
MatIcon,
|
|
59
|
+
CdkDropList,
|
|
60
|
+
CdkDrag,
|
|
61
|
+
CdkDragHandle,
|
|
52
62
|
FsFilterSavedFilterChipsComponent,
|
|
53
63
|
FsMenuModule,
|
|
54
|
-
], template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n <table class=\"fs-list-table\">\n
|
|
64
|
+
], template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n @if (savedFilters?.length) {\n <table class=\"fs-list-table\">\n <thead>\n <tr>\n @if (orderable) {\n <th class=\"drag-col\"></th>\n }\n <th>\n Name\n </th>\n <th>\n Filters\n </th>\n <th class=\"actions-column\"></th>\n </tr>\n </thead>\n <tbody\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\">\n @for (savedFilter of savedFilters; track savedFilter.id) {\n <tr cdkDrag [cdkDragDisabled]=\"!orderable\" cdkDragLockAxis=\"y\" [cdkDragPreviewClass]=\"'saved-filter-drag-preview'\">\n @if (orderable) {\n <td class=\"drag-col\" cdkDragHandle>\n <mat-icon>drag_handle</mat-icon>\n </td>\n }\n <td>\n <a (click)=\"selectFilter(savedFilter)\">\n {{ savedFilter.name }}\n </a>\n </td>\n <td>\n <fs-saved-filter-chips [savedFilter]=\"savedFilter\"></fs-saved-filter-chips>\n </td>\n <td>\n <fs-menu>\n <ng-template\n fs-menu-item\n (click)=\"remove(savedFilter)\">\n Delete\n </ng-template>\n </fs-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Done\n </button>\n</div>", styles: ["::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table thead{display:table-header-group}::ng-deep .fs-list-table thead th{color:#999;padding:8px;font-weight:400;color:#8f8f8f;font-size:85%;text-align:left}::ng-deep .fs-list-table tbody{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table tfoot tr{display:table-row}::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table thead tr td,::ng-deep .fs-list-table tfoot tr td{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table.style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group){clip-path:xywh(0 3px 100% calc(100% - 6px) round 10px)}::ng-deep .fs-list-table.style-card tbody tr td{border:none!important;background-color:#fafafa;padding:8px 16px}::ng-deep .fs-list-table.style-line tbody td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody td{box-sizing:border-box;border-top:1px solid #e7e7e7}::ng-deep .fs-list-table.style-line tbody tr:first-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:first-child td{border-color:#c4c4c4}::ng-deep .fs-list-table.style-line tbody tr:last-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:last-child td{border-bottom:1px solid #c4c4c4}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging thead th{border-color:#e7e7e7}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .saved-filter-drag-preview{display:table;background-color:#00000008;border-radius:5px}::ng-deep .saved-filter-drag-preview td{border:none;padding:8px;vertical-align:middle}::ng-deep .saved-filter-drag-preview fs-menu{display:none}:host ::ng-deep .mat-mdc-dialog-content{min-width:400px}:host ::ng-deep .cdk-drag-placeholder{opacity:.5;background-color:#0000000d;border-radius:5px}:host ::ng-deep .cdk-drag-placeholder td{border:none}:host ::ng-deep .cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}:host ::ng-deep .cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.actions-column{width:1%}td.drag-col,th.drag-col{width:1%;white-space:nowrap;text-align:center;cursor:grab}td.drag-col mat-icon,th.drag-col mat-icon{display:flex}\n"] }]
|
|
55
65
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtZmlsdGVyLW1hbmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2F2ZWQtZmlsdGVyL3NhdmVkLWZpbHRlci1tYW5hZ2Uvc2F2ZWQtZmlsdGVyLW1hbmFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2F2ZWQtZmlsdGVyL3NhdmVkLWZpbHRlci1tYW5hZ2Uvc2F2ZWQtZmlsdGVyLW1hbmFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBbUJwRixNQUFNLE9BQU8sa0NBQWtDO0lBRXRDLFlBQVksQ0FBdUI7SUFFbEMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25DLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkMsUUFBUTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFTSxZQUFZLENBQUMsV0FBK0I7UUFDakQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBK0I7UUFDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDNUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQztZQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUF3QztRQUNsRCxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQWtDO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2FBQzVDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7d0dBOUNVLGtDQUFrQzs0RkFBbEMsa0NBQWtDLHdFQ3hDL0Msd3BEQTZETSx3b0ZEL0JGLGVBQWUsZ29CQUNmLFNBQVMsaUxBQ1QsT0FBTywySUFDUCxXQUFXLDhmQUNYLE9BQU8sd2NBQ1AsYUFBYSwrRkFDYixpQ0FBaUMsMEZBQ2pDLFlBQVk7OzRGQUdILGtDQUFrQztrQkFoQjlDLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3dCQUNULE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsaUNBQWlDO3dCQUNqQyxZQUFZO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0RyYWdIYW5kbGUsIENka0Ryb3BMaXN0LCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbmltcG9ydCB7IEZzTWVudU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lbnUnO1xuXG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSUZpbHRlclNhdmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9zYXZlZC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pdGVtcyc7XG5pbXBvcnQgeyBGaWx0ZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsdGVyLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZEZpbHRlckNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYXZlZC1maWx0ZXItY29udHJvbGxlci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRnNGaWx0ZXJTYXZlZEZpbHRlckNoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NhdmVkLWZpbHRlci1jaGlwcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlZC1maWx0ZXItbWFuYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2F2ZWQtZmlsdGVyLW1hbmFnZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRCdXR0b24sXG4gICAgTWF0SWNvbixcbiAgICBDZGtEcm9wTGlzdCxcbiAgICBDZGtEcmFnLFxuICAgIENka0RyYWdIYW5kbGUsXG4gICAgRnNGaWx0ZXJTYXZlZEZpbHRlckNoaXBzQ29tcG9uZW50LFxuICAgIEZzTWVudU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJTYXZlZEZpbHRlck1hbmFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNhdmVkRmlsdGVyczogSUZpbHRlclNhdmVkRmlsdGVyW107XG5cbiAgcHJpdmF0ZSBfc2F2ZWRGaWx0ZXJDb250cm9sbGVyID0gaW5qZWN0KFNhdmVkRmlsdGVyQ29udHJvbGxlcik7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfZmlsdGVyQ29udHJvbGxlciA9IGluamVjdChGaWx0ZXJDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZik7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzID0gdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLnNhdmVkRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250cm9sbGVyLml0ZW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwbHVyYWxMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIucGx1cmFsTGFiZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9yZGVyYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLm9yZGVyYWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RGaWx0ZXIoc2F2ZWRGaWx0ZXI6IElGaWx0ZXJTYXZlZEZpbHRlcikge1xuICAgIHRoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zZXRBY3RpdmVGaWx0ZXIoc2F2ZWRGaWx0ZXIpO1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShzYXZlZEZpbHRlcjogSUZpbHRlclNhdmVkRmlsdGVyKSB7XG4gICAgdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmRlbGV0ZShzYXZlZEZpbHRlcilcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmVkRmlsdGVycyA9IHRoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zYXZlZEZpbHRlcnM7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8SUZpbHRlclNhdmVkRmlsdGVyW10+KSB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuc2F2ZWRGaWx0ZXJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMub3JkZXIodGhpcy5zYXZlZEZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIG9yZGVyKHNhdmVkRmlsdGVyczogSUZpbHRlclNhdmVkRmlsdGVyW10pIHtcbiAgICB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIub3JkZXIoc2F2ZWRGaWx0ZXJzKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICB7eyBwbHVyYWxMYWJlbCB9fVxuPC9oMT5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICBAaWYgKHNhdmVkRmlsdGVycz8ubGVuZ3RoKSB7XG4gICAgPHRhYmxlIGNsYXNzPVwiZnMtbGlzdC10YWJsZVwiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgQGlmIChvcmRlcmFibGUpIHtcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImRyYWctY29sXCI+PC90aD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHRoPlxuICAgICAgICAgICAgTmFtZVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoPlxuICAgICAgICAgICAgRmlsdGVyc1xuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoIGNsYXNzPVwiYWN0aW9ucy1jb2x1bW5cIj48L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keVxuICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgQGZvciAoc2F2ZWRGaWx0ZXIgb2Ygc2F2ZWRGaWx0ZXJzOyB0cmFjayBzYXZlZEZpbHRlci5pZCkge1xuICAgICAgICAgIDx0ciBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiIW9yZGVyYWJsZVwiIGNka0RyYWdMb2NrQXhpcz1cInlcIiBbY2RrRHJhZ1ByZXZpZXdDbGFzc109XCInc2F2ZWQtZmlsdGVyLWRyYWctcHJldmlldydcIj5cbiAgICAgICAgICAgIEBpZiAob3JkZXJhYmxlKSB7XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImRyYWctY29sXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+ZHJhZ19oYW5kbGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0RmlsdGVyKHNhdmVkRmlsdGVyKVwiPlxuICAgICAgICAgICAgICAgIHt7IHNhdmVkRmlsdGVyLm5hbWUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGZzLXNhdmVkLWZpbHRlci1jaGlwcyBbc2F2ZWRGaWx0ZXJdPVwic2F2ZWRGaWx0ZXJcIj48L2ZzLXNhdmVkLWZpbHRlci1jaGlwcz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxmcy1tZW51PlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShzYXZlZEZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZnMtbWVudT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICB9XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XG4gICAgRG9uZVxuICA8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* resolve to a bare primitive whose `.name` is undefined.
|
|
7
7
|
*/
|
|
8
8
|
export function encodeQueryParam(value) {
|
|
9
|
-
return (value ?? '')
|
|
9
|
+
return String(value ?? '')
|
|
10
10
|
.replace(/,/g, '\\,')
|
|
11
11
|
.replace(/:/g, '\\:');
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RlLXF1ZXJ5LXBhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2hlbHBlcnMvZW5jb2RlLXF1ZXJ5LXBhcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWdDO0lBQy9ELE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7U0FDcEIsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFc2NhcGVzIGNvbW1hcyBhbmQgY29sb25zIGluIGEgcXVlcnktcGFyYW0gdmFsdWUgc28gdGhleSBhcmUgbm90XG4gKiBtaXNpbnRlcnByZXRlZCBhcyBkZWxpbWl0ZXJzIGR1cmluZyBkZXNlcmlhbGl6YXRpb24uXG4gKlxuICogQWNjZXB0cyBudWxsaXNoIGlucHV0IGRlZmVuc2l2ZWx5IOKAlCBBdXRvY29tcGxldGVJdGVtLnZhbHVlIGNhblxuICogcmVzb2x2ZSB0byBhIGJhcmUgcHJpbWl0aXZlIHdob3NlIGAubmFtZWAgaXMgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUXVlcnlQYXJhbSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIHJldHVybiBTdHJpbmcodmFsdWUgPz8gJycpXG4gICAgLnJlcGxhY2UoLywvZywgJ1xcXFwsJylcbiAgICAucmVwbGFjZSgvOi9nLCAnXFxcXDonKTtcbn1cbiJdfQ==
|
|
@@ -1,24 +1,41 @@
|
|
|
1
|
-
import { clone } from 'lodash-es';
|
|
2
1
|
import { encodeQueryParam } from '../../helpers';
|
|
3
2
|
import { BaseAutocompleteItem } from './base-autocomplete-item';
|
|
4
3
|
export class AutocompleteItem extends BaseAutocompleteItem {
|
|
5
4
|
static create(config, filter) {
|
|
6
5
|
return new AutocompleteItem(config, filter);
|
|
7
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Returns the unwrapped primitive value (e.g. 123) from the
|
|
9
|
+
* underlying {name, value} object stored via BaseItem.
|
|
10
|
+
*/
|
|
8
11
|
get value() {
|
|
9
|
-
let value = clone(super.value);
|
|
10
12
|
if (!super.value || super.value.value === undefined) {
|
|
11
13
|
return undefined;
|
|
12
14
|
}
|
|
13
|
-
|
|
14
|
-
return value;
|
|
15
|
+
return super.value.value;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* API-ready query: returns the raw primitive value keyed by item name.
|
|
19
|
+
*/
|
|
16
20
|
get query() {
|
|
17
21
|
if (!this.hasValue) {
|
|
18
22
|
return {};
|
|
19
23
|
}
|
|
20
24
|
return {
|
|
21
|
-
[this.name]:
|
|
25
|
+
[this.name]: this.value,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* URL-ready query param: returns `value:encodedName` format for
|
|
30
|
+
* round-tripping through browser query strings.
|
|
31
|
+
* Uses super.value to access the full {name, value} object.
|
|
32
|
+
*/
|
|
33
|
+
get queryParam() {
|
|
34
|
+
if (!this.hasValue) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
[this.name]: `${super.value.value}:${encodeQueryParam(super.value.name)}`,
|
|
22
39
|
};
|
|
23
40
|
}
|
|
24
41
|
get chips() {
|
|
@@ -27,10 +44,10 @@ export class AutocompleteItem extends BaseAutocompleteItem {
|
|
|
27
44
|
}
|
|
28
45
|
return [
|
|
29
46
|
{
|
|
30
|
-
value:
|
|
31
|
-
label: this.
|
|
47
|
+
value: super.value.name ?? '',
|
|
48
|
+
label: this.label,
|
|
32
49
|
},
|
|
33
50
|
];
|
|
34
51
|
}
|
|
35
52
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9pdGVtcy9hdXRvY29tcGxldGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG9CQUFtRDtJQUVoRixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQXFDLEVBQUUsTUFBdUI7UUFDakYsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxLQUFLO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPO1lBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTztZQUNMLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtTQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTztZQUNMO2dCQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDbEI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGVuY29kZVF1ZXJ5UGFyYW0gfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IElGaWx0ZXJDb25maWdBdXRvY29tcGxldGVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pdGVtcy9hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgQmFzZUF1dG9jb21wbGV0ZUl0ZW0gfSBmcm9tICcuL2Jhc2UtYXV0b2NvbXBsZXRlLWl0ZW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVJdGVtIGV4dGVuZHMgQmFzZUF1dG9jb21wbGV0ZUl0ZW08SUZpbHRlckNvbmZpZ0F1dG9jb21wbGV0ZUl0ZW0+IHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWc6IElGaWx0ZXJDb25maWdBdXRvY29tcGxldGVJdGVtLCBmaWx0ZXI6IEZpbHRlckNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgQXV0b2NvbXBsZXRlSXRlbShjb25maWcsIGZpbHRlcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdW53cmFwcGVkIHByaW1pdGl2ZSB2YWx1ZSAoZS5nLiAxMjMpIGZyb20gdGhlXG4gICAqIHVuZGVybHlpbmcge25hbWUsIHZhbHVlfSBvYmplY3Qgc3RvcmVkIHZpYSBCYXNlSXRlbS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsdWUoKSB7XG4gICAgaWYgKCFzdXBlci52YWx1ZSB8fCBzdXBlci52YWx1ZS52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci52YWx1ZS52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBUEktcmVhZHkgcXVlcnk6IHJldHVybnMgdGhlIHJhdyBwcmltaXRpdmUgdmFsdWUga2V5ZWQgYnkgaXRlbSBuYW1lLlxuICAgKi9cbiAgcHVibGljIGdldCBxdWVyeSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBpZiAoIXRoaXMuaGFzVmFsdWUpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMubmFtZV06IHRoaXMudmFsdWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVUkwtcmVhZHkgcXVlcnkgcGFyYW06IHJldHVybnMgYHZhbHVlOmVuY29kZWROYW1lYCBmb3JtYXQgZm9yXG4gICAqIHJvdW5kLXRyaXBwaW5nIHRocm91Z2ggYnJvd3NlciBxdWVyeSBzdHJpbmdzLlxuICAgKiBVc2VzIHN1cGVyLnZhbHVlIHRvIGFjY2VzcyB0aGUgZnVsbCB7bmFtZSwgdmFsdWV9IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcXVlcnlQYXJhbSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgaWYgKCF0aGlzLmhhc1ZhbHVlKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIFt0aGlzLm5hbWVdOiBgJHtzdXBlci52YWx1ZS52YWx1ZX06JHtlbmNvZGVRdWVyeVBhcmFtKHN1cGVyLnZhbHVlLm5hbWUpfWAsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcHMoKTogeyBuYW1lPzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgaWYgKCF0aGlzLmhhc1ZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHN1cGVyLnZhbHVlLm5hbWUgPz8gJycsXG4gICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=
|
|
@@ -23,7 +23,7 @@ import * as i1$3 from '@firestitch/autocomplete-chips';
|
|
|
23
23
|
import { FsAutocompleteChipsComponent, FsAutocompleteChipsModule } from '@firestitch/autocomplete-chips';
|
|
24
24
|
import * as i2$1 from '@firestitch/datepicker';
|
|
25
25
|
import { FsDatePickerComponent, FsDateScrollPickerComponent, DateRangePickerFromComponent, DateRangePickerToComponent, formatPeriodObject, FsDatePickerModule } from '@firestitch/datepicker';
|
|
26
|
-
import { isObject, isFunction,
|
|
26
|
+
import { isObject, isFunction, toString } from 'lodash-es';
|
|
27
27
|
import { isDate, isValid, parseISO } from 'date-fns';
|
|
28
28
|
import { iso8601, format } from '@firestitch/date';
|
|
29
29
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -52,6 +52,7 @@ import * as i1$4 from '@firestitch/label';
|
|
|
52
52
|
import { FsLabelModule } from '@firestitch/label';
|
|
53
53
|
import { MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
54
54
|
import { MatCheckbox } from '@angular/material/checkbox';
|
|
55
|
+
import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
55
56
|
|
|
56
57
|
class SavedFilterController {
|
|
57
58
|
_filterController;
|
|
@@ -913,7 +914,7 @@ function arraysAreEquals(arr1, arr2) {
|
|
|
913
914
|
* resolve to a bare primitive whose `.name` is undefined.
|
|
914
915
|
*/
|
|
915
916
|
function encodeQueryParam(value) {
|
|
916
|
-
return (value ?? '')
|
|
917
|
+
return String(value ?? '')
|
|
917
918
|
.replace(/,/g, '\\,')
|
|
918
919
|
.replace(/:/g, '\\:');
|
|
919
920
|
}
|
|
@@ -1651,20 +1652,38 @@ class AutocompleteItem extends BaseAutocompleteItem {
|
|
|
1651
1652
|
static create(config, filter) {
|
|
1652
1653
|
return new AutocompleteItem(config, filter);
|
|
1653
1654
|
}
|
|
1655
|
+
/**
|
|
1656
|
+
* Returns the unwrapped primitive value (e.g. 123) from the
|
|
1657
|
+
* underlying {name, value} object stored via BaseItem.
|
|
1658
|
+
*/
|
|
1654
1659
|
get value() {
|
|
1655
|
-
let value = clone(super.value);
|
|
1656
1660
|
if (!super.value || super.value.value === undefined) {
|
|
1657
1661
|
return undefined;
|
|
1658
1662
|
}
|
|
1659
|
-
|
|
1660
|
-
return value;
|
|
1663
|
+
return super.value.value;
|
|
1661
1664
|
}
|
|
1665
|
+
/**
|
|
1666
|
+
* API-ready query: returns the raw primitive value keyed by item name.
|
|
1667
|
+
*/
|
|
1662
1668
|
get query() {
|
|
1663
1669
|
if (!this.hasValue) {
|
|
1664
1670
|
return {};
|
|
1665
1671
|
}
|
|
1666
1672
|
return {
|
|
1667
|
-
[this.name]:
|
|
1673
|
+
[this.name]: this.value,
|
|
1674
|
+
};
|
|
1675
|
+
}
|
|
1676
|
+
/**
|
|
1677
|
+
* URL-ready query param: returns `value:encodedName` format for
|
|
1678
|
+
* round-tripping through browser query strings.
|
|
1679
|
+
* Uses super.value to access the full {name, value} object.
|
|
1680
|
+
*/
|
|
1681
|
+
get queryParam() {
|
|
1682
|
+
if (!this.hasValue) {
|
|
1683
|
+
return {};
|
|
1684
|
+
}
|
|
1685
|
+
return {
|
|
1686
|
+
[this.name]: `${super.value.value}:${encodeQueryParam(super.value.name)}`,
|
|
1668
1687
|
};
|
|
1669
1688
|
}
|
|
1670
1689
|
get chips() {
|
|
@@ -1673,8 +1692,8 @@ class AutocompleteItem extends BaseAutocompleteItem {
|
|
|
1673
1692
|
}
|
|
1674
1693
|
return [
|
|
1675
1694
|
{
|
|
1676
|
-
value:
|
|
1677
|
-
label: this.
|
|
1695
|
+
value: super.value.name ?? '',
|
|
1696
|
+
label: this.label,
|
|
1678
1697
|
},
|
|
1679
1698
|
];
|
|
1680
1699
|
}
|
|
@@ -3345,7 +3364,7 @@ class FsFilterSavedFilterManageComponent {
|
|
|
3345
3364
|
get pluralLabel() {
|
|
3346
3365
|
return this._savedFilterController.pluralLabel;
|
|
3347
3366
|
}
|
|
3348
|
-
get
|
|
3367
|
+
get orderable() {
|
|
3349
3368
|
return this._savedFilterController.orderable;
|
|
3350
3369
|
}
|
|
3351
3370
|
selectFilter(savedFilter) {
|
|
@@ -3359,21 +3378,29 @@ class FsFilterSavedFilterManageComponent {
|
|
|
3359
3378
|
this._cdRef.markForCheck();
|
|
3360
3379
|
});
|
|
3361
3380
|
}
|
|
3381
|
+
drop(event) {
|
|
3382
|
+
moveItemInArray(this.savedFilters, event.previousIndex, event.currentIndex);
|
|
3383
|
+
this.order(this.savedFilters);
|
|
3384
|
+
}
|
|
3362
3385
|
order(savedFilters) {
|
|
3363
3386
|
this._savedFilterController.order(savedFilters)
|
|
3364
3387
|
.subscribe();
|
|
3365
3388
|
}
|
|
3366
3389
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterSavedFilterManageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3367
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterSavedFilterManageComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n <table class=\"fs-list-table\">\n
|
|
3390
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterSavedFilterManageComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n @if (savedFilters?.length) {\n <table class=\"fs-list-table\">\n <thead>\n <tr>\n @if (orderable) {\n <th class=\"drag-col\"></th>\n }\n <th>\n Name\n </th>\n <th>\n Filters\n </th>\n <th class=\"actions-column\"></th>\n </tr>\n </thead>\n <tbody\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\">\n @for (savedFilter of savedFilters; track savedFilter.id) {\n <tr cdkDrag [cdkDragDisabled]=\"!orderable\" cdkDragLockAxis=\"y\" [cdkDragPreviewClass]=\"'saved-filter-drag-preview'\">\n @if (orderable) {\n <td class=\"drag-col\" cdkDragHandle>\n <mat-icon>drag_handle</mat-icon>\n </td>\n }\n <td>\n <a (click)=\"selectFilter(savedFilter)\">\n {{ savedFilter.name }}\n </a>\n </td>\n <td>\n <fs-saved-filter-chips [savedFilter]=\"savedFilter\"></fs-saved-filter-chips>\n </td>\n <td>\n <fs-menu>\n <ng-template\n fs-menu-item\n (click)=\"remove(savedFilter)\">\n Delete\n </ng-template>\n </fs-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Done\n </button>\n</div>", styles: ["::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table thead{display:table-header-group}::ng-deep .fs-list-table thead th{color:#999;padding:8px;font-weight:400;color:#8f8f8f;font-size:85%;text-align:left}::ng-deep .fs-list-table tbody{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table tfoot tr{display:table-row}::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table thead tr td,::ng-deep .fs-list-table tfoot tr td{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table.style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group){clip-path:xywh(0 3px 100% calc(100% - 6px) round 10px)}::ng-deep .fs-list-table.style-card tbody tr td{border:none!important;background-color:#fafafa;padding:8px 16px}::ng-deep .fs-list-table.style-line tbody td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody td{box-sizing:border-box;border-top:1px solid #e7e7e7}::ng-deep .fs-list-table.style-line tbody tr:first-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:first-child td{border-color:#c4c4c4}::ng-deep .fs-list-table.style-line tbody tr:last-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:last-child td{border-bottom:1px solid #c4c4c4}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging thead th{border-color:#e7e7e7}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .saved-filter-drag-preview{display:table;background-color:#00000008;border-radius:5px}::ng-deep .saved-filter-drag-preview td{border:none;padding:8px;vertical-align:middle}::ng-deep .saved-filter-drag-preview fs-menu{display:none}:host ::ng-deep .mat-mdc-dialog-content{min-width:400px}:host ::ng-deep .cdk-drag-placeholder{opacity:.5;background-color:#0000000d;border-radius:5px}:host ::ng-deep .cdk-drag-placeholder td{border:none}:host ::ng-deep .cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}:host ::ng-deep .cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.actions-column{width:1%}td.drag-col,th.drag-col{width:1%;white-space:nowrap;text-align:center;cursor:grab}td.drag-col mat-icon,th.drag-col mat-icon{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: FsFilterSavedFilterChipsComponent, selector: "fs-saved-filter-chips", inputs: ["savedFilter"] }, { kind: "ngmodule", type: FsMenuModule }, { kind: "component", type: i2.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i2.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3368
3391
|
}
|
|
3369
3392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterSavedFilterManageComponent, decorators: [{
|
|
3370
3393
|
type: Component,
|
|
3371
3394
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
3372
3395
|
MatDialogModule,
|
|
3373
3396
|
MatButton,
|
|
3397
|
+
MatIcon,
|
|
3398
|
+
CdkDropList,
|
|
3399
|
+
CdkDrag,
|
|
3400
|
+
CdkDragHandle,
|
|
3374
3401
|
FsFilterSavedFilterChipsComponent,
|
|
3375
3402
|
FsMenuModule,
|
|
3376
|
-
], template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n <table class=\"fs-list-table\">\n
|
|
3403
|
+
], template: "<h1 mat-dialog-title>\n {{ pluralLabel }}\n</h1>\n<div mat-dialog-content>\n @if (savedFilters?.length) {\n <table class=\"fs-list-table\">\n <thead>\n <tr>\n @if (orderable) {\n <th class=\"drag-col\"></th>\n }\n <th>\n Name\n </th>\n <th>\n Filters\n </th>\n <th class=\"actions-column\"></th>\n </tr>\n </thead>\n <tbody\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\">\n @for (savedFilter of savedFilters; track savedFilter.id) {\n <tr cdkDrag [cdkDragDisabled]=\"!orderable\" cdkDragLockAxis=\"y\" [cdkDragPreviewClass]=\"'saved-filter-drag-preview'\">\n @if (orderable) {\n <td class=\"drag-col\" cdkDragHandle>\n <mat-icon>drag_handle</mat-icon>\n </td>\n }\n <td>\n <a (click)=\"selectFilter(savedFilter)\">\n {{ savedFilter.name }}\n </a>\n </td>\n <td>\n <fs-saved-filter-chips [savedFilter]=\"savedFilter\"></fs-saved-filter-chips>\n </td>\n <td>\n <fs-menu>\n <ng-template\n fs-menu-item\n (click)=\"remove(savedFilter)\">\n Delete\n </ng-template>\n </fs-menu>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Done\n </button>\n</div>", styles: ["::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table thead{display:table-header-group}::ng-deep .fs-list-table thead th{color:#999;padding:8px;font-weight:400;color:#8f8f8f;font-size:85%;text-align:left}::ng-deep .fs-list-table tbody{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table tfoot tr{display:table-row}::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table thead tr td,::ng-deep .fs-list-table tfoot tr td{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table.style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group){clip-path:xywh(0 3px 100% calc(100% - 6px) round 10px)}::ng-deep .fs-list-table.style-card tbody tr td{border:none!important;background-color:#fafafa;padding:8px 16px}::ng-deep .fs-list-table.style-line tbody td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody td{box-sizing:border-box;border-top:1px solid #e7e7e7}::ng-deep .fs-list-table.style-line tbody tr:first-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:first-child td{border-color:#c4c4c4}::ng-deep .fs-list-table.style-line tbody tr:last-child td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) tbody tr:last-child td{border-bottom:1px solid #c4c4c4}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging thead th{border-color:#e7e7e7}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card):not(.style-basic) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .saved-filter-drag-preview{display:table;background-color:#00000008;border-radius:5px}::ng-deep .saved-filter-drag-preview td{border:none;padding:8px;vertical-align:middle}::ng-deep .saved-filter-drag-preview fs-menu{display:none}:host ::ng-deep .mat-mdc-dialog-content{min-width:400px}:host ::ng-deep .cdk-drag-placeholder{opacity:.5;background-color:#0000000d;border-radius:5px}:host ::ng-deep .cdk-drag-placeholder td{border:none}:host ::ng-deep .cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}:host ::ng-deep .cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.actions-column{width:1%}td.drag-col,th.drag-col{width:1%;white-space:nowrap;text-align:center;cursor:grab}td.drag-col mat-icon,th.drag-col mat-icon{display:flex}\n"] }]
|
|
3377
3404
|
}] });
|
|
3378
3405
|
|
|
3379
3406
|
class FsFilterChipsComponent {
|