@firestitch/filter 18.2.86 → 18.2.89
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/filter/filter.component.d.ts +0 -2
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +4 -3
- package/app/components/keyword-input/keyword-input.component.d.ts +0 -2
- package/app/interfaces/items/base.interface.d.ts +2 -2
- package/app/interfaces/items/date-range.interface.d.ts +7 -2
- package/app/models/items/base-date-range-item.d.ts +6 -1
- package/app/models/items/base-item.d.ts +1 -1
- package/app/models/items/date-range-item.d.ts +1 -0
- package/app/models/items/range-item.d.ts +3 -0
- package/esm2022/app/components/filter/filter.component.mjs +1 -9
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +12 -14
- package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +3 -3
- package/esm2022/app/components/keyword-input/keyword-input.component.mjs +7 -14
- package/esm2022/app/interfaces/items/base.interface.mjs +1 -1
- package/esm2022/app/interfaces/items/date-range.interface.mjs +1 -1
- package/esm2022/app/models/items/base-date-range-item.mjs +22 -3
- package/esm2022/app/models/items/base-item.mjs +5 -3
- package/esm2022/app/models/items/date-range-item.mjs +4 -1
- package/esm2022/app/models/items/range-item.mjs +4 -1
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/firestitch-filter.mjs +46 -37
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
|
@@ -1048,7 +1048,7 @@ class BaseItem {
|
|
|
1048
1048
|
.pipe(map((visible) => !visible));
|
|
1049
1049
|
}
|
|
1050
1050
|
get mergedLabel() {
|
|
1051
|
-
return
|
|
1051
|
+
return this.label;
|
|
1052
1052
|
}
|
|
1053
1053
|
get visible$() {
|
|
1054
1054
|
return this._visible$.asObservable();
|
|
@@ -1232,13 +1232,15 @@ class BaseItem {
|
|
|
1232
1232
|
this.label = item.label;
|
|
1233
1233
|
this.primary = item.primary ?? false;
|
|
1234
1234
|
this.secondary = !this.primary && (item.secondary ?? false);
|
|
1235
|
-
this.chipLabel = item.chipLabel;
|
|
1236
1235
|
this.visible = !(item.hide ?? !(item.show ?? true));
|
|
1237
1236
|
this.clearable = item.clear ?? true;
|
|
1238
1237
|
this.persistanceDisabled = item.disablePersist ?? false;
|
|
1239
1238
|
this.queryParamsDisabled = item.disableQueryParams ?? false;
|
|
1240
1239
|
this.defaultValueFn = typeof item.default === 'function' ?
|
|
1241
1240
|
item.default : () => of(item.default);
|
|
1241
|
+
if (typeof item.chipLabel === 'string') {
|
|
1242
|
+
this.chipLabel = item.chipLabel;
|
|
1243
|
+
}
|
|
1242
1244
|
if ('placeholder' in item) {
|
|
1243
1245
|
this.placeholder = item.placeholder;
|
|
1244
1246
|
}
|
|
@@ -1258,6 +1260,25 @@ class BaseItem {
|
|
|
1258
1260
|
}
|
|
1259
1261
|
|
|
1260
1262
|
class BaseDateRangeItem extends BaseItem {
|
|
1263
|
+
_filter;
|
|
1264
|
+
fromLabel;
|
|
1265
|
+
toLabel;
|
|
1266
|
+
constructor(itemConfig, _filter) {
|
|
1267
|
+
super(itemConfig, _filter);
|
|
1268
|
+
this._filter = _filter;
|
|
1269
|
+
if (itemConfig.label instanceof Array) {
|
|
1270
|
+
this.fromLabel = itemConfig.label[0];
|
|
1271
|
+
this.toLabel = itemConfig.label[1];
|
|
1272
|
+
}
|
|
1273
|
+
else if (typeof itemConfig.label === 'string') {
|
|
1274
|
+
this.fromLabel = `From ${itemConfig.label}`;
|
|
1275
|
+
this.toLabel = `To ${itemConfig.label}`;
|
|
1276
|
+
}
|
|
1277
|
+
else if (typeof itemConfig.label === 'object') {
|
|
1278
|
+
this.fromLabel = itemConfig.label.from;
|
|
1279
|
+
this.toLabel = itemConfig.label.to;
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1261
1282
|
get isTypeDateRange() {
|
|
1262
1283
|
return this.type === ItemType.DateRange;
|
|
1263
1284
|
}
|
|
@@ -1310,14 +1331,14 @@ class BaseDateRangeItem extends BaseItem {
|
|
|
1310
1331
|
chips.push({
|
|
1311
1332
|
name: 'from',
|
|
1312
1333
|
value: format(this.value.from, dateFormat),
|
|
1313
|
-
label: this.
|
|
1334
|
+
label: this.fromLabel,
|
|
1314
1335
|
});
|
|
1315
1336
|
}
|
|
1316
1337
|
if (this.value?.to) {
|
|
1317
1338
|
chips.push({
|
|
1318
1339
|
name: 'to',
|
|
1319
1340
|
value: format(this.value.to, dateFormat),
|
|
1320
|
-
label: this.
|
|
1341
|
+
label: this.toLabel,
|
|
1321
1342
|
});
|
|
1322
1343
|
}
|
|
1323
1344
|
return chips;
|
|
@@ -1342,6 +1363,9 @@ class BaseDateRangeItem extends BaseItem {
|
|
|
1342
1363
|
}
|
|
1343
1364
|
|
|
1344
1365
|
class DateRangeItem extends BaseDateRangeItem {
|
|
1366
|
+
get mergedLabel() {
|
|
1367
|
+
return `${this.fromLabel} / ${this.toLabel}`;
|
|
1368
|
+
}
|
|
1345
1369
|
static create(config, filter) {
|
|
1346
1370
|
return new DateRangeItem(config, filter);
|
|
1347
1371
|
}
|
|
@@ -1355,6 +1379,9 @@ class DateTimeRangeItem extends BaseDateRangeItem {
|
|
|
1355
1379
|
|
|
1356
1380
|
class RangeItem extends BaseItem {
|
|
1357
1381
|
_filter;
|
|
1382
|
+
get mergedLabel() {
|
|
1383
|
+
return `${this.label[0]} / ${this.label[1]}`;
|
|
1384
|
+
}
|
|
1358
1385
|
constructor(itemConfig, _filter) {
|
|
1359
1386
|
super(itemConfig, _filter);
|
|
1360
1387
|
this._filter = _filter;
|
|
@@ -2729,26 +2756,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2729
2756
|
}] } });
|
|
2730
2757
|
|
|
2731
2758
|
class AutocompletechipsComponent extends BaseItemComponent {
|
|
2759
|
+
autocompleteChips;
|
|
2732
2760
|
autofocus = false;
|
|
2733
2761
|
floatLabel = 'auto';
|
|
2734
2762
|
_injector = inject(Injector);
|
|
2735
|
-
ngOnDestroy() {
|
|
2736
|
-
if (this.triggerChangeOn === 'close') {
|
|
2737
|
-
this.item.value = this.value;
|
|
2738
|
-
}
|
|
2739
|
-
}
|
|
2740
2763
|
panelClosed() {
|
|
2741
|
-
|
|
2742
|
-
this.item.value = this.value;
|
|
2743
|
-
}
|
|
2764
|
+
this.item.value = this.value;
|
|
2744
2765
|
}
|
|
2745
2766
|
removed() {
|
|
2746
|
-
if (this.
|
|
2767
|
+
if (!this.autocompleteChips.panelOpen) {
|
|
2747
2768
|
this.item.value = this.value;
|
|
2748
2769
|
}
|
|
2749
2770
|
}
|
|
2750
2771
|
clear() {
|
|
2751
2772
|
this.item.clear();
|
|
2773
|
+
this.close();
|
|
2752
2774
|
}
|
|
2753
2775
|
fetch = (keyword) => {
|
|
2754
2776
|
return this.item.valuesFn(keyword, this.item.filter);
|
|
@@ -2761,7 +2783,7 @@ class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
2761
2783
|
action.click(filterComponent);
|
|
2762
2784
|
}
|
|
2763
2785
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2764
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [(ngModel)]=\"value\"\n [floatLabel]=\"floatLabel\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [padless]=\"true\"\n [label]=\"item.label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearable\"\n [removable]=\"item.clearable\"\n [compareWith]=\"compareItems\"\n (panelClosed)=\"panelClosed()\"\n (removed)=\"removed()\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", styles: ["fs-autocomplete-chips{min-width:200px;display:block;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FsAutocompleteChipsModule }, { kind: "component", type: i1$3.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipMargin", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "chipPadding", "shape", "hint", "allowText", "allowObject", "delay", "minPanelWidth", "maxPanelHeight", "validateText", "removable", "allowClear", "color", "background", "orderable", "padless", "initOnClick", "fetchOnFocus", "multiple", "multipleAdd", "confirm", "disabled", "groupBy", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear", "panelOpened", "panelClosed"] }, { kind: "directive", type: i1$3.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i1$3.FsAutocompleteChipsStaticDirective, selector: "[fsAutocompleteChipsStatic]", inputs: ["show", "disable"], outputs: ["click", "selected"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2786
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, viewQueries: [{ propertyName: "autocompleteChips", first: true, predicate: FsAutocompleteChipsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [(ngModel)]=\"value\"\n [floatLabel]=\"floatLabel\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [padless]=\"true\"\n [label]=\"item.label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearable\"\n [removable]=\"item.clearable\"\n [compareWith]=\"compareItems\"\n (panelClosed)=\"panelClosed()\"\n (removed)=\"removed()\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", styles: ["fs-autocomplete-chips{min-width:200px;display:block;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FsAutocompleteChipsModule }, { kind: "component", type: i1$3.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipMargin", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "chipPadding", "shape", "hint", "allowText", "allowObject", "delay", "minPanelWidth", "maxPanelHeight", "validateText", "removable", "allowClear", "color", "background", "orderable", "padless", "initOnClick", "fetchOnFocus", "multiple", "multipleAdd", "confirm", "disabled", "groupBy", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear", "panelOpened", "panelClosed"] }, { kind: "directive", type: i1$3.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i1$3.FsAutocompleteChipsStaticDirective, selector: "[fsAutocompleteChipsStatic]", inputs: ["show", "disable"], outputs: ["click", "selected"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2765
2787
|
}
|
|
2766
2788
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
|
|
2767
2789
|
type: Component,
|
|
@@ -2771,7 +2793,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2771
2793
|
FormsModule,
|
|
2772
2794
|
FsFormModule,
|
|
2773
2795
|
], template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [(ngModel)]=\"value\"\n [floatLabel]=\"floatLabel\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [padless]=\"true\"\n [label]=\"item.label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearable\"\n [removable]=\"item.clearable\"\n [compareWith]=\"compareItems\"\n (panelClosed)=\"panelClosed()\"\n (removed)=\"removed()\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", styles: ["fs-autocomplete-chips{min-width:200px;display:block;max-width:100%}\n"] }]
|
|
2774
|
-
}], propDecorators: {
|
|
2796
|
+
}], propDecorators: { autocompleteChips: [{
|
|
2797
|
+
type: ViewChild,
|
|
2798
|
+
args: [FsAutocompleteChipsComponent]
|
|
2799
|
+
}], autofocus: [{
|
|
2775
2800
|
type: Input
|
|
2776
2801
|
}], floatLabel: [{
|
|
2777
2802
|
type: Input
|
|
@@ -2857,7 +2882,7 @@ class DateRangeComponent extends BaseItemComponent {
|
|
|
2857
2882
|
};
|
|
2858
2883
|
}
|
|
2859
2884
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2860
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeComponent, isStandalone: true, selector: "filter-item-date-range", inputs: { autofocusName: "autofocusName", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.
|
|
2885
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeComponent, isStandalone: true, selector: "filter-item-date-range", inputs: { autofocusName: "autofocusName", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.fromLabel }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"from\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateFrom\">\n </mat-form-field>\n <div class=\"to\">\n to\n </div>\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.toLabel }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"to\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateTo\">\n </mat-form-field>\n</div>", styles: [".row{display:flex;flex-direction:row;align-items:center;gap:10px}.row mat-form-field{width:200px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FsDatePickerModule }, { kind: "component", type: i2$1.DateRangePickerFromComponent, selector: "[fsDateRangeFrom],[fsDateRangeFromPicker]", inputs: ["fsDateRangeFrom", "fsDateRangeFromPicker"] }, { kind: "component", type: i2$1.DateRangePickerToComponent, selector: "[fsDateRangeTo],[fsDateRangeToPicker]", inputs: ["fsDateRangeTo", "fsDateRangeToPicker"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2861
2886
|
}
|
|
2862
2887
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
2863
2888
|
type: Component,
|
|
@@ -2869,7 +2894,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2869
2894
|
FocusToItemDirective,
|
|
2870
2895
|
FsDatePickerModule,
|
|
2871
2896
|
FsFormModule,
|
|
2872
|
-
], template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.
|
|
2897
|
+
], template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.fromLabel }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"from\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateFrom\">\n </mat-form-field>\n <div class=\"to\">\n to\n </div>\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.toLabel }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"to\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateTo\">\n </mat-form-field>\n</div>", styles: [".row{display:flex;flex-direction:row;align-items:center;gap:10px}.row mat-form-field{width:200px}\n"] }]
|
|
2873
2898
|
}], propDecorators: { autofocusName: [{
|
|
2874
2899
|
type: Input
|
|
2875
2900
|
}], floatLabel: [{
|
|
@@ -3536,7 +3561,6 @@ class KeywordInputComponent {
|
|
|
3536
3561
|
autofocus = false;
|
|
3537
3562
|
searchPlaceholder = 'Search';
|
|
3538
3563
|
keyword = '';
|
|
3539
|
-
_keyword$ = new Subject();
|
|
3540
3564
|
_destroyRef = inject(DestroyRef);
|
|
3541
3565
|
_destroy$ = new Subject();
|
|
3542
3566
|
_keywordController = inject(KeywordController);
|
|
@@ -3546,7 +3570,6 @@ class KeywordInputComponent {
|
|
|
3546
3570
|
}
|
|
3547
3571
|
ngOnInit() {
|
|
3548
3572
|
this._initAutoFocus();
|
|
3549
|
-
this._listenInputChanges();
|
|
3550
3573
|
this._initKeyword();
|
|
3551
3574
|
}
|
|
3552
3575
|
ngOnDestroy() {
|
|
@@ -3569,14 +3592,7 @@ class KeywordInputComponent {
|
|
|
3569
3592
|
this.keyword = '';
|
|
3570
3593
|
}
|
|
3571
3594
|
keywordChange(keyword) {
|
|
3572
|
-
this.
|
|
3573
|
-
}
|
|
3574
|
-
_listenInputChanges() {
|
|
3575
|
-
this._keyword$
|
|
3576
|
-
.pipe(debounceTime(200), distinctUntilChanged(), takeUntil(this._destroy$))
|
|
3577
|
-
.subscribe((value) => {
|
|
3578
|
-
this._keywordController.keywordItem.value = value;
|
|
3579
|
-
});
|
|
3595
|
+
this._keywordController.keywordItem.value = keyword;
|
|
3580
3596
|
}
|
|
3581
3597
|
_initKeyword() {
|
|
3582
3598
|
this._keywordController.keywordItem.value$
|
|
@@ -3595,7 +3611,7 @@ class KeywordInputComponent {
|
|
|
3595
3611
|
});
|
|
3596
3612
|
}
|
|
3597
3613
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeywordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3598
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KeywordInputComponent, isStandalone: true, selector: "fs-keyword-input", inputs: { autofocus: "autofocus" }, viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }], ngImport: i0, template: "@if (keywordVisible$ | async) {\n <mat-form-field\n class=\"search-form-field form-field-padless\"\n [ngClass]=\"{ 'has-keyword': !!keyword }\">\n <span\n matPrefix\n class=\"icon\">\n <mat-icon matPrefix>\n search\n </mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (
|
|
3614
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KeywordInputComponent, isStandalone: true, selector: "fs-keyword-input", inputs: { autofocus: "autofocus" }, viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }], ngImport: i0, template: "@if (keywordVisible$ | async) {\n <mat-form-field\n class=\"search-form-field form-field-padless\"\n [ngClass]=\"{ 'has-keyword': !!keyword }\">\n <span\n matPrefix\n class=\"icon\">\n <mat-icon matPrefix>\n search\n </mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (fsModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n}", styles: [".search-form-field{max-width:100%;width:250px;margin-top:0}.search-form-field .icon{margin-left:10px;color:#626262}.search-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "ngmodule", type: FsClearModule }, { kind: "component", type: i3$4.FsClearComponent, selector: "[fsClear]", inputs: ["ngModel", "visible", "fsClear"], outputs: ["ngModelChange", "cleared"] }, { kind: "ngmodule", type: FsCommonModule }, { kind: "directive", type: i3$2.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3599
3615
|
}
|
|
3600
3616
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeywordInputComponent, decorators: [{
|
|
3601
3617
|
type: Component,
|
|
@@ -3608,8 +3624,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3608
3624
|
FormsModule,
|
|
3609
3625
|
FsFormModule,
|
|
3610
3626
|
FsClearModule,
|
|
3627
|
+
FsCommonModule,
|
|
3611
3628
|
AsyncPipe,
|
|
3612
|
-
], template: "@if (keywordVisible$ | async) {\n <mat-form-field\n class=\"search-form-field form-field-padless\"\n [ngClass]=\"{ 'has-keyword': !!keyword }\">\n <span\n matPrefix\n class=\"icon\">\n <mat-icon matPrefix>\n search\n </mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (
|
|
3629
|
+
], template: "@if (keywordVisible$ | async) {\n <mat-form-field\n class=\"search-form-field form-field-padless\"\n [ngClass]=\"{ 'has-keyword': !!keyword }\">\n <span\n matPrefix\n class=\"icon\">\n <mat-icon matPrefix>\n search\n </mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (fsModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n}", styles: [".search-form-field{max-width:100%;width:250px;margin-top:0}.search-form-field .icon{margin-left:10px;color:#626262}.search-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
|
|
3613
3630
|
}], propDecorators: { keywordMatInput: [{
|
|
3614
3631
|
type: ViewChild,
|
|
3615
3632
|
args: ['keywordMatInput', { read: MatInput }]
|
|
@@ -3811,14 +3828,6 @@ class FilterComponent {
|
|
|
3811
3828
|
}
|
|
3812
3829
|
item.clear();
|
|
3813
3830
|
}
|
|
3814
|
-
updateItemConfig(name, params) {
|
|
3815
|
-
const item = this.getItem(name);
|
|
3816
|
-
if (!item) {
|
|
3817
|
-
return;
|
|
3818
|
-
}
|
|
3819
|
-
item.label = params.label ?? item.label;
|
|
3820
|
-
item.chipLabel = params.chipLabel ?? item.chipLabel;
|
|
3821
|
-
}
|
|
3822
3831
|
clear(event = null) {
|
|
3823
3832
|
if (event) {
|
|
3824
3833
|
event.stopPropagation();
|