@mediusinc/mng-commons 0.2.4 → 0.2.5

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.
@@ -2194,6 +2194,7 @@ class ColumnDescriptor {
2194
2194
  class FilterDescriptor {
2195
2195
  constructor(property) {
2196
2196
  this._filterType = FilterDescriptor.TypeEnum.String;
2197
+ this._matchModes = null;
2197
2198
  this._className = '';
2198
2199
  this._property = property;
2199
2200
  }
@@ -2206,6 +2207,9 @@ class FilterDescriptor {
2206
2207
  get filterProperty() {
2207
2208
  return this._filterProperty;
2208
2209
  }
2210
+ get matchModes() {
2211
+ return this._matchModes;
2212
+ }
2209
2213
  get placeholder() {
2210
2214
  return this._placeholder;
2211
2215
  }
@@ -2232,6 +2236,10 @@ class FilterDescriptor {
2232
2236
  this._className = className;
2233
2237
  return this;
2234
2238
  }
2239
+ withMatchModes(matchModes) {
2240
+ this._matchModes = matchModes;
2241
+ return this;
2242
+ }
2235
2243
  copyFieldsTo(descriptor) {
2236
2244
  descriptor._filterType = this._filterType;
2237
2245
  descriptor._filterProperty = this._filterProperty;
@@ -2253,6 +2261,24 @@ class FilterDescriptor {
2253
2261
  TypeEnum[TypeEnum["Date"] = 3] = "Date";
2254
2262
  TypeEnum[TypeEnum["Lookup"] = 4] = "Lookup";
2255
2263
  })(TypeEnum = FilterDescriptor.TypeEnum || (FilterDescriptor.TypeEnum = {}));
2264
+ let MatchModeEnum;
2265
+ (function (MatchModeEnum) {
2266
+ MatchModeEnum["StartsWith"] = "startsWith";
2267
+ MatchModeEnum["Contains"] = "contains";
2268
+ MatchModeEnum["EndsWith"] = "endsWith";
2269
+ MatchModeEnum["Equals"] = "equals";
2270
+ MatchModeEnum["NotEquals"] = "notEquals";
2271
+ MatchModeEnum["In"] = "in";
2272
+ MatchModeEnum["LessThan"] = "lt";
2273
+ MatchModeEnum["LessThanOrEqualTo"] = "lte";
2274
+ MatchModeEnum["GreaterThan"] = "gt";
2275
+ MatchModeEnum["GreaterThanOrEqualTo"] = "gte";
2276
+ MatchModeEnum["Between"] = "between";
2277
+ MatchModeEnum["DateIs"] = "dateIs";
2278
+ MatchModeEnum["DateIsNot"] = "dateIsNot";
2279
+ MatchModeEnum["DateBefore"] = "dateBefore";
2280
+ MatchModeEnum["DateAfter"] = "dateAfter";
2281
+ })(MatchModeEnum = FilterDescriptor.MatchModeEnum || (FilterDescriptor.MatchModeEnum = {}));
2256
2282
  })(FilterDescriptor || (FilterDescriptor = {}));
2257
2283
  class FilterLookupDescriptor extends FilterDescriptor {
2258
2284
  constructor(property, modelType) {
@@ -4166,23 +4192,23 @@ class MngCommonsService {
4166
4192
  this.primengConfig.ripple = true;
4167
4193
  this.primengConfig.filterMatchModeOptions = {
4168
4194
  text: [
4169
- FilterMatchMode.CONTAINS,
4170
- FilterMatchMode.EQUALS,
4171
- FilterMatchMode.NOT_EQUALS,
4172
- FilterMatchMode.STARTS_WITH,
4173
- FilterMatchMode.ENDS_WITH
4195
+ FilterDescriptor.MatchModeEnum.Contains,
4196
+ FilterDescriptor.MatchModeEnum.Equals,
4197
+ FilterDescriptor.MatchModeEnum.NotEquals,
4198
+ FilterDescriptor.MatchModeEnum.StartsWith,
4199
+ FilterDescriptor.MatchModeEnum.EndsWith
4174
4200
  ],
4175
4201
  numeric: [
4176
- FilterMatchMode.EQUALS,
4177
- FilterMatchMode.NOT_EQUALS,
4178
- FilterMatchMode.LESS_THAN_OR_EQUAL_TO,
4179
- FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
4202
+ FilterDescriptor.MatchModeEnum.Equals,
4203
+ FilterDescriptor.MatchModeEnum.NotEquals,
4204
+ FilterDescriptor.MatchModeEnum.LessThanOrEqualTo,
4205
+ FilterDescriptor.MatchModeEnum.GreaterThanOrEqualTo
4180
4206
  ],
4181
4207
  date: [
4182
- FilterMatchMode.DATE_IS,
4183
- FilterMatchMode.DATE_IS_NOT,
4184
- FilterMatchMode.DATE_BEFORE,
4185
- FilterMatchMode.DATE_AFTER
4208
+ FilterDescriptor.MatchModeEnum.DateIs,
4209
+ FilterDescriptor.MatchModeEnum.DateIsNot,
4210
+ FilterDescriptor.MatchModeEnum.DateBefore,
4211
+ FilterDescriptor.MatchModeEnum.DateAfter
4186
4212
  ]
4187
4213
  };
4188
4214
  // translate
@@ -4954,17 +4980,22 @@ class MngTableReloadEvent {
4954
4980
  * and these must be propagated through to this component and beyond to primeNG.
4955
4981
  */
4956
4982
  class MngTableColumnFilterComponent {
4957
- constructor() {
4983
+ constructor(primeConfig) {
4984
+ this.primeConfig = primeConfig;
4958
4985
  this.lookupTypeDropdown = FilterLookupDescriptor.LookupTypeEnum.Dropdown;
4959
4986
  this.lookupTypeAutocomplete = FilterLookupDescriptor.LookupTypeEnum.Autocomplete;
4960
4987
  this.primeType = 'text';
4988
+ this.primeShowMatchMode = true;
4961
4989
  this.primeDefaultMatchMode = FilterMatchMode.EQUALS;
4962
4990
  this.primeDisplay = 'row';
4991
+ this.primeMatchModes = null;
4963
4992
  }
4964
4993
  ngOnInit() {
4994
+ var _a;
4965
4995
  switch (this.descriptor.filterType) {
4966
4996
  case FilterDescriptor.TypeEnum.Boolean:
4967
4997
  this.primeType = 'boolean';
4998
+ this.primeShowMatchMode = false;
4968
4999
  break;
4969
5000
  case FilterDescriptor.TypeEnum.Number:
4970
5001
  this.primeType = 'numeric';
@@ -4974,14 +5005,21 @@ class MngTableColumnFilterComponent {
4974
5005
  break;
4975
5006
  case FilterDescriptor.TypeEnum.Lookup:
4976
5007
  this.primeType = 'lookup';
5008
+ this.primeShowMatchMode = false;
4977
5009
  this.lookupDescriptor = this.descriptor;
4978
5010
  this.primeField = `${this.descriptor.property}${this.lookupDescriptor.itemsValueProperty ? `.${this.lookupDescriptor.itemsValueProperty}` : ''}`;
5011
+ this.primeMatchModes = [{ value: FilterDescriptor.MatchModeEnum.Equals, label: this.primeConfig.getTranslation(FilterDescriptor.MatchModeEnum.Equals) }];
4979
5012
  break;
4980
5013
  case FilterDescriptor.TypeEnum.String:
4981
5014
  this.primeType = 'text';
4982
5015
  this.primeDefaultMatchMode = FilterMatchMode.CONTAINS;
4983
5016
  break;
4984
5017
  }
5018
+ if (this.descriptor.matchModes) {
5019
+ this.primeMatchModes = this.descriptor.matchModes.map(mm => ({ value: mm, label: this.primeConfig.getTranslation(mm) }));
5020
+ this.primeDefaultMatchMode = this.descriptor.matchModes[0];
5021
+ this.primeShowMatchMode = ((_a = this.primeMatchModes) === null || _a === void 0 ? void 0 : _a.length) > 1;
5022
+ }
4985
5023
  switch (this.display) {
4986
5024
  case TableDescriptor.FilterDisplayEnum.Menu:
4987
5025
  this.primeDisplay = 'menu';
@@ -5001,12 +5039,12 @@ class MngTableColumnFilterComponent {
5001
5039
  }
5002
5040
  }
5003
5041
  }
5004
- MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5005
- MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, ngImport: i0, template: "<p-columnFilter class=\"ml-auto\"\n [type]=\"primeType\" matchMode=\"equals\"\n [field]=\"descriptor.property\" [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.typeToFilter') | translate\"\n [showMatchModes]=\"primeType === 'text' || primeType === 'date' || primeType === 'numeric'\"\n [showOperator]=\"false\" [showAddButton]=\"false\" [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.searchToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (onChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.selectToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (onChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", components: [{ type: i4$4.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["onChange"] }, { type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["onChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2.TranslatePipe } });
5042
+ MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i2$3.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
5043
+ MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnFilterComponent, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, ngImport: i0, template: "<p-columnFilter class=\"ml-auto\"\n [type]=\"primeType\" matchMode=\"equals\"\n [field]=\"descriptor.property\" [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.typeToFilter') | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\" [showAddButton]=\"false\" [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.searchToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (onChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.selectToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (onChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", components: [{ type: i4$4.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "multiselect", "placeholder", "className", "dropdownClassName"], outputs: ["onChange"] }, { type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["onChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2.TranslatePipe } });
5006
5044
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
5007
5045
  type: Component,
5008
- args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter class=\"ml-auto\"\n [type]=\"primeType\" matchMode=\"equals\"\n [field]=\"descriptor.property\" [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.typeToFilter') | translate\"\n [showMatchModes]=\"primeType === 'text' || primeType === 'date' || primeType === 'numeric'\"\n [showOperator]=\"false\" [showAddButton]=\"false\" [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.searchToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (onChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.selectToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (onChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
5009
- }], propDecorators: { descriptor: [{
5046
+ args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter class=\"ml-auto\"\n [type]=\"primeType\" matchMode=\"equals\"\n [field]=\"descriptor.property\" [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.typeToFilter') | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\" [showAddButton]=\"false\" [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.searchToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (onChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.dataKeyProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"(descriptor.placeholder ?? 'mngTable.selectToFilter') | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"true\"\n (onChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
5047
+ }], ctorParameters: function () { return [{ type: i2$3.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
5010
5048
  type: Input
5011
5049
  }], display: [{
5012
5050
  type: Input