@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.
@@ -2174,6 +2174,7 @@ class ColumnDescriptor {
2174
2174
  class FilterDescriptor {
2175
2175
  constructor(property) {
2176
2176
  this._filterType = FilterDescriptor.TypeEnum.String;
2177
+ this._matchModes = null;
2177
2178
  this._className = '';
2178
2179
  this._property = property;
2179
2180
  }
@@ -2186,6 +2187,9 @@ class FilterDescriptor {
2186
2187
  get filterProperty() {
2187
2188
  return this._filterProperty;
2188
2189
  }
2190
+ get matchModes() {
2191
+ return this._matchModes;
2192
+ }
2189
2193
  get placeholder() {
2190
2194
  return this._placeholder;
2191
2195
  }
@@ -2212,6 +2216,10 @@ class FilterDescriptor {
2212
2216
  this._className = className;
2213
2217
  return this;
2214
2218
  }
2219
+ withMatchModes(matchModes) {
2220
+ this._matchModes = matchModes;
2221
+ return this;
2222
+ }
2215
2223
  copyFieldsTo(descriptor) {
2216
2224
  descriptor._filterType = this._filterType;
2217
2225
  descriptor._filterProperty = this._filterProperty;
@@ -2233,6 +2241,24 @@ class FilterDescriptor {
2233
2241
  TypeEnum[TypeEnum["Date"] = 3] = "Date";
2234
2242
  TypeEnum[TypeEnum["Lookup"] = 4] = "Lookup";
2235
2243
  })(TypeEnum = FilterDescriptor.TypeEnum || (FilterDescriptor.TypeEnum = {}));
2244
+ let MatchModeEnum;
2245
+ (function (MatchModeEnum) {
2246
+ MatchModeEnum["StartsWith"] = "startsWith";
2247
+ MatchModeEnum["Contains"] = "contains";
2248
+ MatchModeEnum["EndsWith"] = "endsWith";
2249
+ MatchModeEnum["Equals"] = "equals";
2250
+ MatchModeEnum["NotEquals"] = "notEquals";
2251
+ MatchModeEnum["In"] = "in";
2252
+ MatchModeEnum["LessThan"] = "lt";
2253
+ MatchModeEnum["LessThanOrEqualTo"] = "lte";
2254
+ MatchModeEnum["GreaterThan"] = "gt";
2255
+ MatchModeEnum["GreaterThanOrEqualTo"] = "gte";
2256
+ MatchModeEnum["Between"] = "between";
2257
+ MatchModeEnum["DateIs"] = "dateIs";
2258
+ MatchModeEnum["DateIsNot"] = "dateIsNot";
2259
+ MatchModeEnum["DateBefore"] = "dateBefore";
2260
+ MatchModeEnum["DateAfter"] = "dateAfter";
2261
+ })(MatchModeEnum = FilterDescriptor.MatchModeEnum || (FilterDescriptor.MatchModeEnum = {}));
2236
2262
  })(FilterDescriptor || (FilterDescriptor = {}));
2237
2263
  class FilterLookupDescriptor extends FilterDescriptor {
2238
2264
  constructor(property, modelType) {
@@ -4112,23 +4138,23 @@ class MngCommonsService {
4112
4138
  this.primengConfig.ripple = true;
4113
4139
  this.primengConfig.filterMatchModeOptions = {
4114
4140
  text: [
4115
- FilterMatchMode.CONTAINS,
4116
- FilterMatchMode.EQUALS,
4117
- FilterMatchMode.NOT_EQUALS,
4118
- FilterMatchMode.STARTS_WITH,
4119
- FilterMatchMode.ENDS_WITH
4141
+ FilterDescriptor.MatchModeEnum.Contains,
4142
+ FilterDescriptor.MatchModeEnum.Equals,
4143
+ FilterDescriptor.MatchModeEnum.NotEquals,
4144
+ FilterDescriptor.MatchModeEnum.StartsWith,
4145
+ FilterDescriptor.MatchModeEnum.EndsWith
4120
4146
  ],
4121
4147
  numeric: [
4122
- FilterMatchMode.EQUALS,
4123
- FilterMatchMode.NOT_EQUALS,
4124
- FilterMatchMode.LESS_THAN_OR_EQUAL_TO,
4125
- FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
4148
+ FilterDescriptor.MatchModeEnum.Equals,
4149
+ FilterDescriptor.MatchModeEnum.NotEquals,
4150
+ FilterDescriptor.MatchModeEnum.LessThanOrEqualTo,
4151
+ FilterDescriptor.MatchModeEnum.GreaterThanOrEqualTo
4126
4152
  ],
4127
4153
  date: [
4128
- FilterMatchMode.DATE_IS,
4129
- FilterMatchMode.DATE_IS_NOT,
4130
- FilterMatchMode.DATE_BEFORE,
4131
- FilterMatchMode.DATE_AFTER
4154
+ FilterDescriptor.MatchModeEnum.DateIs,
4155
+ FilterDescriptor.MatchModeEnum.DateIsNot,
4156
+ FilterDescriptor.MatchModeEnum.DateBefore,
4157
+ FilterDescriptor.MatchModeEnum.DateAfter
4132
4158
  ]
4133
4159
  };
4134
4160
  // translate
@@ -4897,17 +4923,21 @@ class MngTableReloadEvent {
4897
4923
  * and these must be propagated through to this component and beyond to primeNG.
4898
4924
  */
4899
4925
  class MngTableColumnFilterComponent {
4900
- constructor() {
4926
+ constructor(primeConfig) {
4927
+ this.primeConfig = primeConfig;
4901
4928
  this.lookupTypeDropdown = FilterLookupDescriptor.LookupTypeEnum.Dropdown;
4902
4929
  this.lookupTypeAutocomplete = FilterLookupDescriptor.LookupTypeEnum.Autocomplete;
4903
4930
  this.primeType = 'text';
4931
+ this.primeShowMatchMode = true;
4904
4932
  this.primeDefaultMatchMode = FilterMatchMode.EQUALS;
4905
4933
  this.primeDisplay = 'row';
4934
+ this.primeMatchModes = null;
4906
4935
  }
4907
4936
  ngOnInit() {
4908
4937
  switch (this.descriptor.filterType) {
4909
4938
  case FilterDescriptor.TypeEnum.Boolean:
4910
4939
  this.primeType = 'boolean';
4940
+ this.primeShowMatchMode = false;
4911
4941
  break;
4912
4942
  case FilterDescriptor.TypeEnum.Number:
4913
4943
  this.primeType = 'numeric';
@@ -4917,14 +4947,21 @@ class MngTableColumnFilterComponent {
4917
4947
  break;
4918
4948
  case FilterDescriptor.TypeEnum.Lookup:
4919
4949
  this.primeType = 'lookup';
4950
+ this.primeShowMatchMode = false;
4920
4951
  this.lookupDescriptor = this.descriptor;
4921
4952
  this.primeField = `${this.descriptor.property}${this.lookupDescriptor.itemsValueProperty ? `.${this.lookupDescriptor.itemsValueProperty}` : ''}`;
4953
+ this.primeMatchModes = [{ value: FilterDescriptor.MatchModeEnum.Equals, label: this.primeConfig.getTranslation(FilterDescriptor.MatchModeEnum.Equals) }];
4922
4954
  break;
4923
4955
  case FilterDescriptor.TypeEnum.String:
4924
4956
  this.primeType = 'text';
4925
4957
  this.primeDefaultMatchMode = FilterMatchMode.CONTAINS;
4926
4958
  break;
4927
4959
  }
4960
+ if (this.descriptor.matchModes) {
4961
+ this.primeMatchModes = this.descriptor.matchModes.map(mm => ({ value: mm, label: this.primeConfig.getTranslation(mm) }));
4962
+ this.primeDefaultMatchMode = this.descriptor.matchModes[0];
4963
+ this.primeShowMatchMode = this.primeMatchModes?.length > 1;
4964
+ }
4928
4965
  switch (this.display) {
4929
4966
  case TableDescriptor.FilterDisplayEnum.Menu:
4930
4967
  this.primeDisplay = 'menu';
@@ -4944,12 +4981,12 @@ class MngTableColumnFilterComponent {
4944
4981
  }
4945
4982
  }
4946
4983
  }
4947
- MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4948
- 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 } });
4984
+ 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 });
4985
+ 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 } });
4949
4986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
4950
4987
  type: Component,
4951
- 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" }]
4952
- }], propDecorators: { descriptor: [{
4988
+ 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" }]
4989
+ }], ctorParameters: function () { return [{ type: i2$3.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
4953
4990
  type: Input
4954
4991
  }], display: [{
4955
4992
  type: Input