@mediusinc/mng-commons 0.2.11 → 0.2.15

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.
Files changed (33) hide show
  1. package/esm2020/lib/api/models/filter-match-type.model.mjs +11 -12
  2. package/esm2020/lib/api/models/filter-param.model.mjs +11 -12
  3. package/esm2020/lib/api/models/query-mode.model.mjs +4 -4
  4. package/esm2020/lib/api/models/query-param.model.mjs +29 -30
  5. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +2 -4
  6. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  7. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  8. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +6 -3
  9. package/esm2020/lib/descriptors/editor.descriptor.mjs +2 -1
  10. package/esm2020/lib/descriptors/table.descriptor.mjs +82 -3
  11. package/esm2020/lib/descriptors/tableview.descriptor.mjs +4 -1
  12. package/esm2020/lib/mng-commons.module.mjs +5 -2
  13. package/esm2020/lib/pipes/enum.pipe.mjs +22 -0
  14. package/esm2020/lib/pipes/index.mjs +2 -1
  15. package/esm2020/lib/utils/enum.util.mjs +23 -2
  16. package/fesm2015/mediusinc-mng-commons.mjs +189 -66
  17. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  18. package/fesm2020/mediusinc-mng-commons.mjs +187 -66
  19. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  20. package/lib/api/models/filter-match-type.model.d.ts +10 -10
  21. package/lib/api/models/filter-param.model.d.ts +7 -7
  22. package/lib/api/models/query-mode.model.d.ts +3 -3
  23. package/lib/api/models/query-param.model.d.ts +14 -14
  24. package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -0
  25. package/lib/descriptors/table.descriptor.d.ts +22 -4
  26. package/lib/descriptors/tableview.descriptor.d.ts +1 -0
  27. package/lib/mng-commons.module.d.ts +70 -69
  28. package/lib/pipes/enum.pipe.d.ts +7 -0
  29. package/lib/pipes/index.d.ts +1 -0
  30. package/lib/utils/enum.util.d.ts +11 -0
  31. package/openapi/templates/model.mustache +82 -0
  32. package/openapi/templates/models.mustache +50 -0
  33. package/package.json +1 -1
@@ -4,8 +4,15 @@ export class EnumUtil {
4
4
  * @param enumType Enum object.
5
5
  */
6
6
  static getConstantNames(enumType) {
7
+ return EnumUtil.getConstantNamesFromEnumObject(enumType);
8
+ }
9
+ /**
10
+ * Returns array of names for constants in enum.
11
+ * @param enumObj Enum object.
12
+ */
13
+ static getConstantNamesFromEnumObject(enumObj) {
7
14
  // in number enum, the numbers are also represented in objects and should be filtered out
8
- return Object.keys(enumType).filter(v => isNaN(+v));
15
+ return Object.keys(enumObj).filter(v => isNaN(+v));
9
16
  }
10
17
  /**
11
18
  * Returns array of string values for constants in enum.
@@ -57,5 +64,19 @@ export class EnumUtil {
57
64
  return typeof enumType[value] !== 'undefined' ? enumType[value] : null;
58
65
  }
59
66
  }
67
+ /**
68
+ * Gets constant name for value.
69
+ * @param enumObj Enum object.
70
+ * @param value Value of enum constant.
71
+ */
72
+ static getConstantNameFromEnumObject(enumObj, value) {
73
+ const enumObjAny = enumObj;
74
+ if (typeof value === 'string') {
75
+ return this.getConstantNamesFromEnumObject(enumObj).find(c => enumObjAny[c] === value) ?? null;
76
+ }
77
+ else {
78
+ return typeof enumObjAny[value] !== 'undefined' ? enumObjAny[value] : null;
79
+ }
80
+ }
60
81
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFFBQVE7SUFDakI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQzdDLHlGQUF5RjtRQUN6RixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHlCQUF5QixDQUFDLFFBQWtCO1FBQ3RELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBaUIsQ0FBVyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFrQjtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsNkJBQTZCLENBQUMsUUFBa0IsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLFNBQWtCO1FBQ25HLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUE0QixFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQSxDQUNySSxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDBCQUEwQixDQUFDLFFBQWtCLEVBQUUsTUFBK0IsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLFNBQWtCO1FBQ2pJLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBK0IsQ0FBQztRQUNqSSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFrQixFQUFFLEtBQXVCO1FBQ3JFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDbkY7YUFBTTtZQUNILE9BQU8sT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN0RjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRW51bVV0aWwge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZXMoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIC8vIGluIG51bWJlciBlbnVtLCB0aGUgbnVtYmVycyBhcmUgYWxzbyByZXByZXNlbnRlZCBpbiBvYmplY3RzIGFuZCBzaG91bGQgYmUgZmlsdGVyZWQgb3V0XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZmlsdGVyKHYgPT4gaXNOYU4oK3YpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50VmFsdWVzQXNTdHJpbmcoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkubWFwKHYgPT4gZW51bVR5cGVbdiBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiBudW1iZXIgdmFsdWVzIGZvciBjb25zdGFudHMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudFZhbHVlc0FzTnVtYmVyKGVudW1UeXBlOiBFbnVtVHlwZSk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gIWlzTmFOKCt2KSlcbiAgICAgICAgICAgIC5tYXAodiA9PiArdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgYWxsIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbmFtZUFzVmFsdWUgSWYgdXNlIG5hbWUgb2YgY29uc3RhbnQgYXMgdmFsdWUgKG9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZSkuXG4gICAgICogQHBhcmFtIHRpdGxlUGF0aCBCYXNlIHBhdGggZm9yIHRpdGxlIHRvIHVzZSBhcyB0cmFuc2xhdGlvbiAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEVudW1VdGlsLmdldENvbnN0YW50TmFtZXMoZW51bVR5cGUpLm1hcChcbiAgICAgICAgICAgIG4gPT4gPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+PntuYW1lOiBuLCB0aXRsZTogYCR7dGl0bGVQYXRoID8gYCR7dGl0bGVQYXRofS5gIDogJyd9JHtufWAsIHZhbHVlOiBuYW1lQXNWYWx1ZSA/IG4gOiBlbnVtVHlwZVtuXX1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHR5cGUgRW51bVZhbHVlIGZvciBwcm92aWRlZCB2YWx1ZXMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICogQHBhcmFtIG5hbWVBc1ZhbHVlIElmIHVzZSBuYW1lIG9mIGNvbnN0YW50IGFzIHZhbHVlIChvcHRpb25hbCwgZGVmYXVsdDogZmFsc2UpLlxuICAgICAqIEBwYXJhbSB0aXRsZVBhdGggQmFzZSBwYXRoIGZvciB0aXRsZSB0byB1c2UgYXMgdHJhbnNsYXRpb24gKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlOiBFbnVtVHlwZSwgdmFsdWVzOiBBcnJheTxFbnVtQ29uc3RhbnRUeXBlPiwgbmFtZUFzVmFsdWUgPSBmYWxzZSwgdGl0bGVQYXRoPzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IEVudW1VdGlsLmdldENvbnN0YW50TmFtZShlbnVtVHlwZSwgdik7XG4gICAgICAgICAgICByZXR1cm4ge25hbWU6IGssIHRpdGxlOiBgJHt0aXRsZVBhdGggPyBgJHt0aXRsZVBhdGh9LmAgOiAnJ30ke2t9YCwgdmFsdWU6IG5hbWVBc1ZhbHVlID8gayA6IHZ9IGFzIEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNvbnN0YW50IG5hbWUgZm9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgZW51bSBjb25zdGFudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZShlbnVtVHlwZTogRW51bVR5cGUsIHZhbHVlOiBFbnVtQ29uc3RhbnRUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25zdGFudE5hbWVzKGVudW1UeXBlKS5maW5kKGMgPT4gZW51bVR5cGVbY10gPT09IHZhbHVlKSA/PyBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnVtVHlwZVt2YWx1ZV0gIT09ICd1bmRlZmluZWQnID8gKGVudW1UeXBlW3ZhbHVlXSBhcyBzdHJpbmcpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFFBQVE7SUFDakI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQzdDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsOEJBQThCLENBQUMsT0FBZTtRQUN4RCx5RkFBeUY7UUFDekYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFrQjtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQWlCLENBQVcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBa0I7UUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLFFBQWtCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNuRyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBNEIsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUEsQ0FDckksQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxRQUFrQixFQUFFLE1BQStCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNqSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQStCLENBQUM7UUFDakksQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtRQUNyRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ25GO2FBQU07WUFDSCxPQUFPLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEY7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxPQUFlLEVBQUUsS0FBdUI7UUFDaEYsTUFBTSxVQUFVLEdBQUcsT0FBYyxDQUFDO1FBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDbEc7YUFBTTtZQUNILE9BQU8sT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUMsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRW51bVV0aWwge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZXMoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzRnJvbUVudW1PYmplY3QoZW51bVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtT2JqIEVudW0gb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmo6IG9iamVjdCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICAvLyBpbiBudW1iZXIgZW51bSwgdGhlIG51bWJlcnMgYXJlIGFsc28gcmVwcmVzZW50ZWQgaW4gb2JqZWN0cyBhbmQgc2hvdWxkIGJlIGZpbHRlcmVkIG91dFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bU9iaikuZmlsdGVyKHYgPT4gaXNOYU4oK3YpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50VmFsdWVzQXNTdHJpbmcoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkubWFwKHYgPT4gZW51bVR5cGVbdiBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiBudW1iZXIgdmFsdWVzIGZvciBjb25zdGFudHMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudFZhbHVlc0FzTnVtYmVyKGVudW1UeXBlOiBFbnVtVHlwZSk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gIWlzTmFOKCt2KSlcbiAgICAgICAgICAgIC5tYXAodiA9PiArdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgYWxsIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbmFtZUFzVmFsdWUgSWYgdXNlIG5hbWUgb2YgY29uc3RhbnQgYXMgdmFsdWUgKG9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZSkuXG4gICAgICogQHBhcmFtIHRpdGxlUGF0aCBCYXNlIHBhdGggZm9yIHRpdGxlIHRvIHVzZSBhcyB0cmFuc2xhdGlvbiAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEVudW1VdGlsLmdldENvbnN0YW50TmFtZXMoZW51bVR5cGUpLm1hcChcbiAgICAgICAgICAgIG4gPT4gPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+PntuYW1lOiBuLCB0aXRsZTogYCR7dGl0bGVQYXRoID8gYCR7dGl0bGVQYXRofS5gIDogJyd9JHtufWAsIHZhbHVlOiBuYW1lQXNWYWx1ZSA/IG4gOiBlbnVtVHlwZVtuXX1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHR5cGUgRW51bVZhbHVlIGZvciBwcm92aWRlZCB2YWx1ZXMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICogQHBhcmFtIG5hbWVBc1ZhbHVlIElmIHVzZSBuYW1lIG9mIGNvbnN0YW50IGFzIHZhbHVlIChvcHRpb25hbCwgZGVmYXVsdDogZmFsc2UpLlxuICAgICAqIEBwYXJhbSB0aXRsZVBhdGggQmFzZSBwYXRoIGZvciB0aXRsZSB0byB1c2UgYXMgdHJhbnNsYXRpb24gKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlOiBFbnVtVHlwZSwgdmFsdWVzOiBBcnJheTxFbnVtQ29uc3RhbnRUeXBlPiwgbmFtZUFzVmFsdWUgPSBmYWxzZSwgdGl0bGVQYXRoPzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IEVudW1VdGlsLmdldENvbnN0YW50TmFtZShlbnVtVHlwZSwgdik7XG4gICAgICAgICAgICByZXR1cm4ge25hbWU6IGssIHRpdGxlOiBgJHt0aXRsZVBhdGggPyBgJHt0aXRsZVBhdGh9LmAgOiAnJ30ke2t9YCwgdmFsdWU6IG5hbWVBc1ZhbHVlID8gayA6IHZ9IGFzIEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNvbnN0YW50IG5hbWUgZm9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgZW51bSBjb25zdGFudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZShlbnVtVHlwZTogRW51bVR5cGUsIHZhbHVlOiBFbnVtQ29uc3RhbnRUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25zdGFudE5hbWVzKGVudW1UeXBlKS5maW5kKGMgPT4gZW51bVR5cGVbY10gPT09IHZhbHVlKSA/PyBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnVtVHlwZVt2YWx1ZV0gIT09ICd1bmRlZmluZWQnID8gKGVudW1UeXBlW3ZhbHVlXSBhcyBzdHJpbmcpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY29uc3RhbnQgbmFtZSBmb3IgdmFsdWUuXG4gICAgICogQHBhcmFtIGVudW1PYmogRW51bSBvYmplY3QuXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIG9mIGVudW0gY29uc3RhbnQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudE5hbWVGcm9tRW51bU9iamVjdChlbnVtT2JqOiBvYmplY3QsIHZhbHVlOiBFbnVtQ29uc3RhbnRUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVudW1PYmpBbnkgPSBlbnVtT2JqIGFzIGFueTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbnN0YW50TmFtZXNGcm9tRW51bU9iamVjdChlbnVtT2JqKS5maW5kKGMgPT4gZW51bU9iakFueVtjXSA9PT0gdmFsdWUpID8/IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGVudW1PYmpBbnlbdmFsdWVdICE9PSAndW5kZWZpbmVkJyA/IChlbnVtT2JqQW55W3ZhbHVlXSBhcyBzdHJpbmcpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -483,7 +483,6 @@ class LookupDataProvider extends DataProvider {
483
483
  }
484
484
  }
485
485
 
486
- /* tslint:disable:no-angle-bracket-type-assertion no-trailing-whitespace member-ordering object-literal-key-quotes */
487
486
  /**
488
487
  * Generated API
489
488
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
@@ -497,16 +496,16 @@ class LookupDataProvider extends DataProvider {
497
496
  */
498
497
  var MediusFilterMatchType;
499
498
  (function (MediusFilterMatchType) {
500
- MediusFilterMatchType[MediusFilterMatchType["Equals"] = 'EQUALS'] = "Equals";
501
- MediusFilterMatchType[MediusFilterMatchType["NotEquals"] = 'NOT_EQUALS'] = "NotEquals";
502
- MediusFilterMatchType[MediusFilterMatchType["Contains"] = 'CONTAINS'] = "Contains";
503
- MediusFilterMatchType[MediusFilterMatchType["EndsWith"] = 'ENDS_WITH'] = "EndsWith";
504
- MediusFilterMatchType[MediusFilterMatchType["StartsWith"] = 'STARTS_WITH'] = "StartsWith";
505
- MediusFilterMatchType[MediusFilterMatchType["FromTo"] = 'FROM_TO'] = "FromTo";
506
- MediusFilterMatchType[MediusFilterMatchType["SmallerThan"] = 'SMALLER_THEN'] = "SmallerThan";
507
- MediusFilterMatchType[MediusFilterMatchType["GreaterThan"] = 'GREATER_THEN'] = "GreaterThan";
508
- MediusFilterMatchType[MediusFilterMatchType["In"] = 'IN'] = "In";
509
- MediusFilterMatchType[MediusFilterMatchType["NotIn"] = 'NOT_IN'] = "NotIn";
499
+ MediusFilterMatchType["Equals"] = "EQUALS";
500
+ MediusFilterMatchType["NotEquals"] = "NOT_EQUALS";
501
+ MediusFilterMatchType["FromTo"] = "FROM_TO";
502
+ MediusFilterMatchType["Contains"] = "CONTAINS";
503
+ MediusFilterMatchType["StartsWith"] = "STARTS_WITH";
504
+ MediusFilterMatchType["EndsWith"] = "ENDS_WITH";
505
+ MediusFilterMatchType["In"] = "IN";
506
+ MediusFilterMatchType["NotIn"] = "NOT_IN";
507
+ MediusFilterMatchType["SmallerThan"] = "SMALLER_THAN";
508
+ MediusFilterMatchType["GreaterThan"] = "GREATER_THAN";
510
509
  })(MediusFilterMatchType || (MediusFilterMatchType = {}));
511
510
 
512
511
  /* tslint:disable:no-angle-bracket-type-assertion no-trailing-whitespace member-ordering object-literal-key-quotes */
@@ -515,23 +514,12 @@ class MediusFilterParam {
515
514
  return MediusFilterParam.attributeTypeMap;
516
515
  }
517
516
  }
518
- MediusFilterParam.discriminator = undefined;
519
517
  MediusFilterParam.attributeTypeMap = [
520
518
  {
521
519
  name: 'property',
522
520
  baseName: 'property',
523
521
  type: 'string'
524
522
  },
525
- {
526
- name: 'filterMatchCaseSensitive',
527
- baseName: 'filter_match_case_sensitive',
528
- type: 'boolean'
529
- },
530
- {
531
- name: 'filterMatchType',
532
- baseName: 'filter_match_type',
533
- type: 'FilterMatchType'
534
- },
535
523
  {
536
524
  name: 'filterValue',
537
525
  baseName: 'filter_value',
@@ -541,6 +529,16 @@ MediusFilterParam.attributeTypeMap = [
541
529
  name: 'filterValueTo',
542
530
  baseName: 'filter_value_to',
543
531
  type: 'object'
532
+ },
533
+ {
534
+ name: 'filterMatchType',
535
+ baseName: 'filter_match_type',
536
+ type: 'FilterMatchType'
537
+ },
538
+ {
539
+ name: 'filterMatchCaseSensitive',
540
+ baseName: 'filter_match_case_sensitive',
541
+ type: 'boolean'
544
542
  }
545
543
  ];
546
544
 
@@ -558,9 +556,9 @@ MediusFilterParam.attributeTypeMap = [
558
556
  */
559
557
  var MediusQueryMode;
560
558
  (function (MediusQueryMode) {
561
- MediusQueryMode[MediusQueryMode["All"] = 'ALL'] = "All";
562
- MediusQueryMode[MediusQueryMode["Count"] = 'COUNT'] = "Count";
563
- MediusQueryMode[MediusQueryMode["Data"] = 'DATA'] = "Data";
559
+ MediusQueryMode["Count"] = "COUNT";
560
+ MediusQueryMode["Data"] = "DATA";
561
+ MediusQueryMode["All"] = "ALL";
564
562
  })(MediusQueryMode || (MediusQueryMode = {}));
565
563
 
566
564
  /* tslint:disable:no-angle-bracket-type-assertion no-trailing-whitespace member-ordering object-literal-key-quotes */
@@ -569,27 +567,16 @@ class MediusQueryParam {
569
567
  return MediusQueryParam.attributeTypeMap;
570
568
  }
571
569
  }
572
- MediusQueryParam.discriminator = undefined;
573
570
  MediusQueryParam.attributeTypeMap = [
574
571
  {
575
- name: 'filterAllParam',
576
- baseName: 'filter_all_param',
577
- type: 'string'
578
- },
579
- {
580
- name: 'filterAllProperties',
581
- baseName: 'filter_all_properties',
572
+ name: 'sortProperty',
573
+ baseName: 'sort_property',
582
574
  type: 'Array<string>'
583
575
  },
584
576
  {
585
- name: 'filterParams',
586
- baseName: 'filter_params',
587
- type: 'Array<FilterParam>'
588
- },
589
- {
590
- name: 'groupByProperties',
591
- baseName: 'group_by_properties',
592
- type: 'Array<string>'
577
+ name: 'sortAsc',
578
+ baseName: 'sort_asc',
579
+ type: 'Array<boolean>'
593
580
  },
594
581
  {
595
582
  name: 'itemsOffset',
@@ -602,34 +589,44 @@ MediusQueryParam.attributeTypeMap = [
602
589
  type: 'number'
603
590
  },
604
591
  {
605
- name: 'queryMode',
606
- baseName: 'query_mode',
607
- type: 'QueryMode'
592
+ name: 'filterParams',
593
+ baseName: 'filter_params',
594
+ type: 'Array<MediusFilterParam>'
595
+ },
596
+ {
597
+ name: 'filterAllParam',
598
+ baseName: 'filter_all_param',
599
+ type: 'string'
600
+ },
601
+ {
602
+ name: 'filterAllProperties',
603
+ baseName: 'filter_all_properties',
604
+ type: 'Array<string>'
605
+ },
606
+ {
607
+ name: 'validateProperties',
608
+ baseName: 'validate_properties',
609
+ type: 'Array<string>'
608
610
  },
609
611
  {
610
612
  name: 'selectInTwoSteps',
611
613
  baseName: 'select_in_two_steps',
612
614
  type: 'boolean'
613
615
  },
614
- {
615
- name: 'sortAsc',
616
- baseName: 'sort_asc',
617
- type: 'Array<boolean>'
618
- },
619
616
  {
620
617
  name: 'sortEnumByOrdinal',
621
618
  baseName: 'sort_enum_by_ordinal',
622
619
  type: 'boolean'
623
620
  },
624
621
  {
625
- name: 'sortProperty',
626
- baseName: 'sort_property',
622
+ name: 'groupByProperties',
623
+ baseName: 'group_by_properties',
627
624
  type: 'Array<string>'
628
625
  },
629
626
  {
630
- name: 'validateProperties',
631
- baseName: 'validate_properties',
632
- type: 'Array<string>'
627
+ name: 'queryMode',
628
+ baseName: 'query_mode',
629
+ type: 'MediusQueryMode'
633
630
  }
634
631
  ];
635
632
 
@@ -1251,6 +1248,7 @@ class FieldLookupEnumDescriptor extends FieldLookupDescriptor {
1251
1248
  this.withLookupDataProvider(dataProvider);
1252
1249
  this.withItemsLabelProperty('title');
1253
1250
  this.withItemsValueProperty('value');
1251
+ this.withDataKeyProperty('value');
1254
1252
  }
1255
1253
  get enumType() {
1256
1254
  return this._enumType;
@@ -1615,6 +1613,13 @@ class TableDescriptor {
1615
1613
  this.setDataKeyFromColumn();
1616
1614
  return column;
1617
1615
  }
1616
+ addColumnEnum(property, enumType, nameAsValue = false, titlePath) {
1617
+ const column = new ColumnDescriptor(this, property);
1618
+ column.asEnum(enumType, nameAsValue, titlePath);
1619
+ this._columns.push(column);
1620
+ this.setDataKeyFromColumn();
1621
+ return column;
1622
+ }
1618
1623
  addColumnObject(property, modelType, displayProperty) {
1619
1624
  const column = new ColumnDescriptor(this, property);
1620
1625
  column.withModelType(modelType);
@@ -1691,6 +1696,7 @@ class ColumnDescriptor {
1691
1696
  this._modelType = null;
1692
1697
  this._columnType = ColumnDescriptor.TypeEnum.String;
1693
1698
  this._isSortEnabled = false;
1699
+ this._enumNameAsValue = false;
1694
1700
  this._table = table;
1695
1701
  this._property = property;
1696
1702
  }
@@ -1721,6 +1727,15 @@ class ColumnDescriptor {
1721
1727
  get property() {
1722
1728
  return this._property;
1723
1729
  }
1730
+ get enumType() {
1731
+ return this._enumType;
1732
+ }
1733
+ get enumTitlePath() {
1734
+ return this._enumTitlePath;
1735
+ }
1736
+ get enumNameAsValue() {
1737
+ return this._enumNameAsValue;
1738
+ }
1724
1739
  asType(type = ColumnDescriptor.TypeEnum.String) {
1725
1740
  this._columnType = type;
1726
1741
  return this;
@@ -1739,6 +1754,16 @@ class ColumnDescriptor {
1739
1754
  this._columnType = ColumnDescriptor.TypeEnum.Boolean;
1740
1755
  return this;
1741
1756
  }
1757
+ asEnum(enumType, nameAsValue = false, titlePath) {
1758
+ this._columnType = ColumnDescriptor.TypeEnum.Enum;
1759
+ this._enumType = enumType;
1760
+ this._enumNameAsValue = nameAsValue;
1761
+ if (typeof titlePath === 'undefined') {
1762
+ titlePath = TypeUtil.findEnumName(enumType);
1763
+ }
1764
+ this._enumTitlePath = titlePath;
1765
+ return this;
1766
+ }
1742
1767
  withModelType(modelType) {
1743
1768
  this._modelType = modelType;
1744
1769
  return this;
@@ -1753,7 +1778,23 @@ class ColumnDescriptor {
1753
1778
  }
1754
1779
  withFilter() {
1755
1780
  this._filterDescriptor = new FilterDescriptor(this._property);
1756
- this._filterDescriptor.asFilterType(this._columnType);
1781
+ let filterType;
1782
+ switch (this._columnType) {
1783
+ case ColumnDescriptor.TypeEnum.Number:
1784
+ filterType = FilterDescriptor.TypeEnum.Number;
1785
+ break;
1786
+ case ColumnDescriptor.TypeEnum.Boolean:
1787
+ filterType = FilterDescriptor.TypeEnum.Boolean;
1788
+ break;
1789
+ case ColumnDescriptor.TypeEnum.Date:
1790
+ filterType = FilterDescriptor.TypeEnum.Date;
1791
+ break;
1792
+ case ColumnDescriptor.TypeEnum.String:
1793
+ default:
1794
+ filterType = FilterDescriptor.TypeEnum.String;
1795
+ break;
1796
+ }
1797
+ this._filterDescriptor.asFilterType(filterType);
1757
1798
  return this._filterDescriptor;
1758
1799
  }
1759
1800
  withFilterLookup() {
@@ -1761,6 +1802,14 @@ class ColumnDescriptor {
1761
1802
  this._filterDescriptor = filterDescriptor;
1762
1803
  return filterDescriptor;
1763
1804
  }
1805
+ withFilterLookupEnum(options) {
1806
+ if (this._columnType !== ColumnDescriptor.TypeEnum.Enum || !this._enumType) {
1807
+ throw new Error(`Column ${this._property} is not of type enum or enum type is undefined.`);
1808
+ }
1809
+ const filterDescriptor = new FilterLookupEnumDescriptor(this._property, this._enumType, options, this._enumNameAsValue, this._enumTitlePath);
1810
+ this._filterDescriptor = filterDescriptor;
1811
+ return filterDescriptor;
1812
+ }
1764
1813
  withSort(isEnabled = true) {
1765
1814
  this._isSortEnabled = isEnabled;
1766
1815
  return this;
@@ -1783,6 +1832,7 @@ class ColumnDescriptor {
1783
1832
  TypeEnum[TypeEnum["Number"] = 1] = "Number";
1784
1833
  TypeEnum[TypeEnum["Boolean"] = 2] = "Boolean";
1785
1834
  TypeEnum[TypeEnum["Date"] = 3] = "Date";
1835
+ TypeEnum[TypeEnum["Enum"] = 4] = "Enum";
1786
1836
  })(TypeEnum = ColumnDescriptor.TypeEnum || (ColumnDescriptor.TypeEnum = {}));
1787
1837
  })(ColumnDescriptor || (ColumnDescriptor = {}));
1788
1838
  class FilterDescriptor {
@@ -1854,6 +1904,7 @@ class FilterDescriptor {
1854
1904
  TypeEnum[TypeEnum["Boolean"] = 2] = "Boolean";
1855
1905
  TypeEnum[TypeEnum["Date"] = 3] = "Date";
1856
1906
  TypeEnum[TypeEnum["Lookup"] = 4] = "Lookup";
1907
+ TypeEnum[TypeEnum["LookupEnum"] = 5] = "LookupEnum";
1857
1908
  })(TypeEnum = FilterDescriptor.TypeEnum || (FilterDescriptor.TypeEnum = {}));
1858
1909
  let MatchModeEnum;
1859
1910
  (function (MatchModeEnum) {
@@ -1960,6 +2011,31 @@ class FilterLookupDescriptor extends FilterDescriptor {
1960
2011
  descriptor._dataKeyProperty = this._dataKeyProperty;
1961
2012
  }
1962
2013
  }
2014
+ class FilterLookupEnumDescriptor extends FilterLookupDescriptor {
2015
+ constructor(property, enumType, options, nameAsValue = false, optionsTitlePath) {
2016
+ super(property, null);
2017
+ this._enumType = enumType;
2018
+ if (typeof optionsTitlePath === 'undefined') {
2019
+ optionsTitlePath = TypeUtil.findEnumName(enumType);
2020
+ }
2021
+ const optionEnumValues = Array.isArray(options)
2022
+ ? EnumUtil.fromValuesAsEnumValueArray(enumType, options, nameAsValue, optionsTitlePath !== null && optionsTitlePath !== void 0 ? optionsTitlePath : undefined)
2023
+ : EnumUtil.fromConstantsAsEnumValueArray(enumType, nameAsValue, optionsTitlePath !== null && optionsTitlePath !== void 0 ? optionsTitlePath : undefined);
2024
+ const dataProvider = new LookupDataProvider(null).withLookup(() => of(optionEnumValues));
2025
+ this.withLookupDataProvider(dataProvider);
2026
+ this.withItemsLabelProperty('title');
2027
+ this.withItemsValueProperty('value');
2028
+ this.withDataKeyProperty('value');
2029
+ }
2030
+ get enumType() {
2031
+ return this._enumType;
2032
+ }
2033
+ copy() {
2034
+ const field = new FilterLookupEnumDescriptor(this._property, this._enumType, []);
2035
+ this.copyFieldsTo(field);
2036
+ return field;
2037
+ }
2038
+ }
1963
2039
  (function (FilterLookupDescriptor) {
1964
2040
  let LookupTypeEnum;
1965
2041
  (function (LookupTypeEnum) {
@@ -2037,6 +2113,9 @@ class TableviewDescriptor {
2037
2113
  addColumnBoolean(property) {
2038
2114
  return this._table.addColumnBoolean(property);
2039
2115
  }
2116
+ addColumnEnum(property, enumType, nameAsValue = false, titlePath) {
2117
+ return this._table.addColumnEnum(property, enumType, nameAsValue, titlePath);
2118
+ }
2040
2119
  addColumnObject(property, modelType, displayProperty) {
2041
2120
  return this._table.addColumnObject(property, modelType, displayProperty);
2042
2121
  }
@@ -2274,8 +2353,15 @@ class EnumUtil {
2274
2353
  * @param enumType Enum object.
2275
2354
  */
2276
2355
  static getConstantNames(enumType) {
2356
+ return EnumUtil.getConstantNamesFromEnumObject(enumType);
2357
+ }
2358
+ /**
2359
+ * Returns array of names for constants in enum.
2360
+ * @param enumObj Enum object.
2361
+ */
2362
+ static getConstantNamesFromEnumObject(enumObj) {
2277
2363
  // in number enum, the numbers are also represented in objects and should be filtered out
2278
- return Object.keys(enumType).filter(v => isNaN(+v));
2364
+ return Object.keys(enumObj).filter(v => isNaN(+v));
2279
2365
  }
2280
2366
  /**
2281
2367
  * Returns array of string values for constants in enum.
@@ -2328,6 +2414,21 @@ class EnumUtil {
2328
2414
  return typeof enumType[value] !== 'undefined' ? enumType[value] : null;
2329
2415
  }
2330
2416
  }
2417
+ /**
2418
+ * Gets constant name for value.
2419
+ * @param enumObj Enum object.
2420
+ * @param value Value of enum constant.
2421
+ */
2422
+ static getConstantNameFromEnumObject(enumObj, value) {
2423
+ var _a;
2424
+ const enumObjAny = enumObj;
2425
+ if (typeof value === 'string') {
2426
+ return (_a = this.getConstantNamesFromEnumObject(enumObj).find(c => enumObjAny[c] === value)) !== null && _a !== void 0 ? _a : null;
2427
+ }
2428
+ else {
2429
+ return typeof enumObjAny[value] !== 'undefined' ? enumObjAny[value] : null;
2430
+ }
2431
+ }
2331
2432
  }
2332
2433
 
2333
2434
  class I18nUtil {
@@ -4374,10 +4475,9 @@ class MngDropdownComponent {
4374
4475
  }
4375
4476
  }
4376
4477
  writeValue(obj) {
4478
+ var _a;
4377
4479
  this.dropdownFormControl.setValue(obj, { emitEvent: false });
4378
- if (this.primeDropdown) {
4379
- this.primeDropdown.writeValue(obj);
4380
- }
4480
+ (_a = this.primeDropdown) === null || _a === void 0 ? void 0 : _a.writeValue(obj);
4381
4481
  }
4382
4482
  }
4383
4483
  MngDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngDropdownComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
@@ -4584,10 +4684,10 @@ class MngFormlyFieldDropdownComponent extends FieldType {
4584
4684
  }
4585
4685
  }
4586
4686
  MngFormlyFieldDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4587
- MngFormlyFieldDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldDropdownComponent, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [showClear]=\"!this.to.required\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\">\n</mng-dropdown>\n", components: [{ type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4687
+ MngFormlyFieldDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngFormlyFieldDropdownComponent, selector: "mng-formly-field-dropdown", usesInheritance: true, ngImport: i0, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [showClear]=\"!this.to.required\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\">\n</mng-dropdown>\n", components: [{ type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4588
4688
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngFormlyFieldDropdownComponent, decorators: [{
4589
4689
  type: Component,
4590
- args: [{ selector: 'mng-formly-field-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [showClear]=\"!this.to.required\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\">\n</mng-dropdown>\n" }]
4690
+ args: [{ selector: 'mng-formly-field-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"$any(descriptor.placeholder)\"\n [dataProvider]=\"descriptor.dataProvider\"\n [itemsLabelProperty]=\"$any(descriptor.itemsLabelProperty)\"\n [itemsValueProperty]=\"$any(descriptor.itemsValueProperty)\"\n [showClear]=\"!this.to.required\"\n [dataKeyProperty]=\"$any(descriptor.dataKeyProperty)\">\n</mng-dropdown>\n" }]
4591
4691
  }] });
4592
4692
 
4593
4693
  class MngTableLoadEvent {
@@ -4672,10 +4772,10 @@ class MngTableColumnFilterComponent {
4672
4772
  }
4673
4773
  }
4674
4774
  MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i2$1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
4675
- 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\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *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 (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *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 (change)=\"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: ["valueChange"] }, { type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2$2.TranslatePipe } });
4775
+ 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\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *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 (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *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 (valueChange)=\"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: ["valueChange"] }, { type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsValueProperty", "multiselect", "placeholder", "showClear", "className", "dropdownClassName"], outputs: ["valueChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i2$2.TranslatePipe } });
4676
4776
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
4677
4777
  type: Component,
4678
- args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *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 (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *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 (change)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
4778
+ args: [{ selector: 'mng-table-column-filter', template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n matchMode=\"equals\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"primeDefaultMatchMode\"\n [matchModeOptions]=\"$any(primeMatchModes)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\">\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *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 (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *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 (valueChange)=\"filterCallback($event)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
4679
4779
  }], ctorParameters: function () { return [{ type: i2$1.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
4680
4780
  type: Input
4681
4781
  }], display: [{
@@ -4736,19 +4836,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
4736
4836
  }]
4737
4837
  }] });
4738
4838
 
4839
+ class MngEnumPipe {
4840
+ transform(value, enumObj, i18nPath, nameAsValue = false) {
4841
+ const enumConstantName = nameAsValue ? value : EnumUtil.getConstantNameFromEnumObject(enumObj, value);
4842
+ if (typeof i18nPath === 'undefined') {
4843
+ i18nPath = TypeUtil.findEnumName(enumObj);
4844
+ }
4845
+ return i18nPath ? `${i18nPath}.${enumConstantName}` : enumConstantName;
4846
+ }
4847
+ }
4848
+ MngEnumPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngEnumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4849
+ MngEnumPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngEnumPipe, name: "enum" });
4850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngEnumPipe, decorators: [{
4851
+ type: Pipe,
4852
+ args: [{
4853
+ name: 'enum',
4854
+ pure: true
4855
+ }]
4856
+ }] });
4857
+
4739
4858
  class MngTableColumnValueComponent {
4740
4859
  constructor() {
4741
4860
  this.columnTypeString = ColumnDescriptor.TypeEnum.String;
4742
4861
  this.columnTypeNumber = ColumnDescriptor.TypeEnum.Number;
4743
4862
  this.columnTypeBoolean = ColumnDescriptor.TypeEnum.Boolean;
4744
4863
  this.columnTypeDate = ColumnDescriptor.TypeEnum.Date;
4864
+ this.columnTypeEnum = ColumnDescriptor.TypeEnum.Enum;
4745
4865
  }
4746
4866
  }
4747
4867
  MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4748
- MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n</ng-container>\n", directives: [{ type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "propertyPath": MngPropertyPathPipe, "number": i4$1.DecimalPipe, "date": i4$1.DatePipe, "boolean": MngBooleanPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4868
+ MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{\n (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property])\n | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue\n | translate\n }}\n </ng-container>\n</ng-container>\n", directives: [{ type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "propertyPath": MngPropertyPathPipe, "number": i4$1.DecimalPipe, "date": i4$1.DatePipe, "boolean": MngBooleanPipe, "translate": i2$2.TranslatePipe, "enum": MngEnumPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4749
4869
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
4750
4870
  type: Component,
4751
- args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n</ng-container>\n" }]
4871
+ args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property] }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | number: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n {{ (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property]) | boolean }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{\n (descriptor.displayPropertyPath ? (item | propertyPath: descriptor.displayPropertyPath) : item[descriptor.property])\n | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue\n | translate\n }}\n </ng-container>\n</ng-container>\n" }]
4752
4872
  }], propDecorators: { descriptor: [{
4753
4873
  type: Input
4754
4874
  }], item: [{
@@ -6204,6 +6324,7 @@ const declarations = [
6204
6324
  MngTemplateDirective,
6205
6325
  // pipes
6206
6326
  MngPropertyPathPipe,
6327
+ MngEnumPipe,
6207
6328
  MngBooleanPipe,
6208
6329
  MngI18nPropertyPipe,
6209
6330
  // layout components
@@ -6296,6 +6417,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
6296
6417
  MngTemplateDirective,
6297
6418
  // pipes
6298
6419
  MngPropertyPathPipe,
6420
+ MngEnumPipe,
6299
6421
  MngBooleanPipe,
6300
6422
  MngI18nPropertyPipe,
6301
6423
  // layout components
@@ -6408,6 +6530,7 @@ MngCommonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
6408
6530
  MngTemplateDirective,
6409
6531
  // pipes
6410
6532
  MngPropertyPathPipe,
6533
+ MngEnumPipe,
6411
6534
  MngBooleanPipe,
6412
6535
  MngI18nPropertyPipe,
6413
6536
  // layout components
@@ -6978,5 +7101,5 @@ class RouteBuilder {
6978
7101
  * Generated bundle index. Do not edit.
6979
7102
  */
6980
7103
 
6981
- export { AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngCrudApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionPositionEnum, ActionRunResult, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidator, FilterDescriptor, FilterLookupDescriptor, I18nUtil, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusQueryResultBase, MediusQueryResultWithObject, MediusRestUtil, MngActionComponent, MngActionDialogComponent, MngActionRouteComponent, MngActionService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngPropertyPathPipe, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTopbarComponent, ModelDescriptor, ModelUtil, ObjectSerializer, RouteBuilder, RoutesBuilder, TableDescriptor, TableviewComponentService, TableviewDataProvider, TableviewDescriptor, ToastUtil, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngCommonsInitializerProvider, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
7104
+ export { AFieldDescriptor, AFieldGroupDescriptor, AGenericFieldDescriptor, AMngCrudApiService, AMngTableviewRouteComponent, ActionActivationResult, ActionActivationTriggerEnum, ActionDeleteDescriptor, ActionDescriptor, ActionEditorAddDescriptor, ActionEditorDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor, ActionError, ActionExecContext, ActionLevelEnum, ActionPositionEnum, ActionRunResult, ActionTriggerResult, ActionTypeEnum, ColumnDescriptor, DataProvider, EditorDataProvider, EditorDescriptor, EditorFormlyUtil, EnumName, EnumUtil, FieldGroupDescriptor, FieldInputDescriptor, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldTabGroupDescriptor, FieldValidator, FilterDescriptor, FilterLookupDescriptor, FilterLookupEnumDescriptor, I18nUtil, LookupDataProvider, MNG_AUTOCOMPLETE_VALUE_ACCESSOR, MNG_DROPDOWN_VALUE_ACCESSOR, MediusFilterMatchType, MediusFilterParam, MediusQueryMode, MediusQueryParam, MediusQueryParamBuilder, MediusQueryResult, MediusQueryResultBase, MediusQueryResultWithObject, MediusRestUtil, MngActionComponent, MngActionDialogComponent, MngActionRouteComponent, MngActionService, MngAutocompleteComponent, MngBooleanPipe, MngBreadcrumbComponent, MngCommonsModule, MngCommonsService, MngComponentDirective, MngConfigurationService, MngDropdownComponent, MngEnumPipe, MngFooterComponent, MngFormEditorComponent, MngFormEditorSubmitEvent, MngFormlyFieldAutocompleteComponent, MngFormlyFieldDropdownComponent, MngFormlyFieldFieldsetComponent, MngFormlyFieldInputComponent, MngFormlyFieldTableDialogFormComponent, MngFormlyFieldTableDialogMultiselectComponent, MngFormlyFieldTabsComponent, MngFormlyFieldWrapperComponent, MngFormlyTableWrapperComponent, MngI18nPropertyPipe, MngMainLayoutComponent, MngMainLayoutComponentService, MngMenuComponent, MngMenuItemComponent, MngNavigationService, MngPropertyPathPipe, MngTableColumnFilterComponent, MngTableColumnValueComponent, MngTableComponent, MngTableviewComponent, MngTableviewRouteComponent, MngTemplateDirective, MngTopbarComponent, ModelDescriptor, ModelUtil, ObjectSerializer, RouteBuilder, RoutesBuilder, TableDescriptor, TableviewComponentService, TableviewDataProvider, TableviewDescriptor, ToastUtil, TypeName, TypeUtil, enumNameDecoratorPropertyName, enumsMapBase, formlyTypesConfig, formlyWrappersConfig, getEmailValidationMessage, getFormlyValidationMessages, getMaxLengthValidationMessage, getMinLengthValidationMessage, getRequiredValidationMessage, getTextPatternValidationMessage, mngCommonsInitializerProvider, mngConfigJsonAppInitializerProvider, mngConfigurationServiceProvider, mngFormlyConfigProvider, primeNgModules, typeMapBase, typeNameDecoratorPropertyName };
6982
7105
  //# sourceMappingURL=mediusinc-mng-commons.mjs.map