@mediusinc/mng-commons 7.0.0-rc.1 → 7.0.0-rc.2

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 (37) hide show
  1. package/core/index.d.ts +24 -4
  2. package/fesm2022/mediusinc-mng-commons-core.mjs +108 -72
  3. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  4. package/fesm2022/mediusinc-mng-commons-filter.mjs +16 -0
  5. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  6. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-form.mjs +406 -49
  8. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -1
  10. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -1
  12. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  13. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs +30 -0
  14. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs.map +1 -0
  15. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs +2700 -0
  16. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs.map +1 -0
  17. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
  18. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -1
  19. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +31 -3
  20. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  21. package/fesm2022/mediusinc-mng-commons-tableview.mjs +155 -123
  22. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  23. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  24. package/filter/index.d.ts +13 -0
  25. package/form/index.d.ts +109 -22
  26. package/i18n/en.json +12 -1
  27. package/i18n/sl.json +12 -1
  28. package/package.json +24 -24
  29. package/table/api/index.d.ts +2 -2
  30. package/table/index.d.ts +97 -29
  31. package/tableview/api/index.d.ts +17 -2
  32. package/tableview/index.d.ts +7 -1
  33. package/version-info.json +6 -6
  34. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs +0 -30
  35. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs.map +0 -1
  36. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs +0 -2417
  37. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-model-class.mjs","sources":["../tmp-esm2022/model/class/data-providers/base-from-class-data-provider.factory.js","../tmp-esm2022/model/class/helpers/model.js","../tmp-esm2022/model/class/descriptors/model-class.descriptor.js","../tmp-esm2022/model/class/descriptors/type-class.descriptor.js","../tmp-esm2022/model/class/index.js","../tmp-esm2022/model/class/mediusinc-mng-commons-model-class.js"],"sourcesContent":["import { DataProviderInst } from '@mediusinc/mng-commons/core';\nexport function dataProviderFromClass(type, serviceType) {\n return new DataProviderInst(serviceType);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mcm9tLWNsYXNzLWRhdGEtcHJvdmlkZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZGVsL2NsYXNzL3NyYy9kYXRhLXByb3ZpZGVycy9iYXNlLWZyb20tY2xhc3MtZGF0YS1wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxnQkFBZ0IsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQU8xRixNQUFNLFVBQVUscUJBQXFCLENBQWlFLElBQXNCLEVBQUUsV0FBMEI7SUFDcEosT0FBTyxJQUFJLGdCQUFnQixDQUErQixXQUEyQixDQUFDLENBQUM7QUFDM0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlLCBEYXRhUHJvdmlkZXJJbnN0LCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+KTogRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFQcm92aWRlckZyb21DbGFzczxNb2RlbCwgU2VydmljZSA9IGFueT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBTZXJ2aWNlQ2xhc3M6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT5cbik6IERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFQcm92aWRlckZyb21DbGFzczxNb2RlbCwgU2VydmljZSA9IGFueSwgU2VydmljZUNsYXNzID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPiwgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICByZXR1cm4gbmV3IERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzcz4oc2VydmljZVR5cGUgYXMgU2VydmljZUNsYXNzKTtcbn1cbiJdfQ==","import { TypeRegistry } from '@mediusinc/mng-commons/core';\nexport function findClassIdAttribute(classType) {\n if (!classType)\n return null;\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n let idAttribute = findAttributeByTypeAndName(attrDef, ['string', 'number'], 'id', 'uuid', 'code', 'sifra');\n if (!idAttribute) {\n // if no id or code, take the first attribute\n idAttribute = attrDef[0];\n }\n return idAttribute?.name ?? null;\n}\nexport function findClassTitleAttribute(classType) {\n if (!classType)\n return null;\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n let titleAttribute = findAttributeByTypeAndName(attrDef, ['string'], 'name', 'ime', 'title', 'naziv');\n if (!titleAttribute) {\n // if no name or title, take the first attribute\n titleAttribute = attrDef[0];\n }\n return titleAttribute?.name ?? null;\n}\nexport function getClassAttributeDef(classType) {\n if (!classType)\n return null;\n const attrDefByFn = classType.getAttributeTypeMap?.();\n if (attrDefByFn)\n return attrDefByFn;\n const attrDefByProp = classType.attributeTypeMap;\n if (attrDefByProp)\n return attrDefByProp;\n const attrByObjSer = TypeRegistry.get().findAttributesDefinitionByClassType(classType);\n if (attrByObjSer)\n return attrByObjSer;\n return null;\n}\nfunction findAttributeByTypeAndName(attributes, types, ...names) {\n for (const name of names) {\n const attribute = attributes.find(a => types.some(t => t === a.type) && a.name === name);\n if (attribute) {\n return attribute;\n }\n }\n return null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2RlbC9jbGFzcy9zcmMvaGVscGVycy9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXZGLE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxTQUF3QjtJQUM1RCxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTVCLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLFdBQVcsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0csSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2YsNkNBQTZDO1FBQzdDLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sV0FBVyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7QUFDckMsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBSSxTQUF3QjtJQUMvRCxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTVCLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGNBQWMsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEIsZ0RBQWdEO1FBQ2hELGNBQWMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE9BQU8sY0FBYyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxTQUF3QjtJQUM1RCxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFJLFNBQWlCLENBQUMsbUJBQW1CLEVBQUUsRUFBMEMsQ0FBQztJQUN2RyxJQUFJLFdBQVc7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUNwQyxNQUFNLGFBQWEsR0FBSSxTQUFpQixDQUFDLGdCQUF3RCxDQUFDO0lBQ2xHLElBQUksYUFBYTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBQ3hDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RixJQUFJLFlBQVk7UUFBRSxPQUFPLFlBQVksQ0FBQztJQUN0QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxVQUErQixFQUFFLEtBQWUsRUFBRSxHQUFHLEtBQWU7SUFDcEcsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN2QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN6RixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ1osT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc0F0dHJpYnV0ZURlZiwgQ2xhc3NUeXBlLCBUeXBlUmVnaXN0cnl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2xhc3NJZEF0dHJpYnV0ZTxUPihjbGFzc1R5cGU/OiBDbGFzc1R5cGU8VD4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNsYXNzVHlwZSkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBhdHRyRGVmID0gZ2V0Q2xhc3NBdHRyaWJ1dGVEZWYoY2xhc3NUeXBlKTtcbiAgICBpZiAoIWF0dHJEZWYpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGlkQXR0cmlidXRlID0gZmluZEF0dHJpYnV0ZUJ5VHlwZUFuZE5hbWUoYXR0ckRlZiwgWydzdHJpbmcnLCAnbnVtYmVyJ10sICdpZCcsICd1dWlkJywgJ2NvZGUnLCAnc2lmcmEnKTtcbiAgICBpZiAoIWlkQXR0cmlidXRlKSB7XG4gICAgICAgIC8vIGlmIG5vIGlkIG9yIGNvZGUsIHRha2UgdGhlIGZpcnN0IGF0dHJpYnV0ZVxuICAgICAgICBpZEF0dHJpYnV0ZSA9IGF0dHJEZWZbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIGlkQXR0cmlidXRlPy5uYW1lID8/IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZTxUPihjbGFzc1R5cGU/OiBDbGFzc1R5cGU8VD4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNsYXNzVHlwZSkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBhdHRyRGVmID0gZ2V0Q2xhc3NBdHRyaWJ1dGVEZWYoY2xhc3NUeXBlKTtcbiAgICBpZiAoIWF0dHJEZWYpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHRpdGxlQXR0cmlidXRlID0gZmluZEF0dHJpYnV0ZUJ5VHlwZUFuZE5hbWUoYXR0ckRlZiwgWydzdHJpbmcnXSwgJ25hbWUnLCAnaW1lJywgJ3RpdGxlJywgJ25heml2Jyk7XG4gICAgaWYgKCF0aXRsZUF0dHJpYnV0ZSkge1xuICAgICAgICAvLyBpZiBubyBuYW1lIG9yIHRpdGxlLCB0YWtlIHRoZSBmaXJzdCBhdHRyaWJ1dGVcbiAgICAgICAgdGl0bGVBdHRyaWJ1dGUgPSBhdHRyRGVmWzBdO1xuICAgIH1cblxuICAgIHJldHVybiB0aXRsZUF0dHJpYnV0ZT8ubmFtZSA/PyBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NBdHRyaWJ1dGVEZWY8VD4oY2xhc3NUeXBlPzogQ2xhc3NUeXBlPFQ+KSB7XG4gICAgaWYgKCFjbGFzc1R5cGUpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGF0dHJEZWZCeUZuID0gKGNsYXNzVHlwZSBhcyBhbnkpLmdldEF0dHJpYnV0ZVR5cGVNYXA/LigpIGFzIEFycmF5PENsYXNzQXR0cmlidXRlRGVmPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoYXR0ckRlZkJ5Rm4pIHJldHVybiBhdHRyRGVmQnlGbjtcbiAgICBjb25zdCBhdHRyRGVmQnlQcm9wID0gKGNsYXNzVHlwZSBhcyBhbnkpLmF0dHJpYnV0ZVR5cGVNYXAgYXMgQXJyYXk8Q2xhc3NBdHRyaWJ1dGVEZWY+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChhdHRyRGVmQnlQcm9wKSByZXR1cm4gYXR0ckRlZkJ5UHJvcDtcbiAgICBjb25zdCBhdHRyQnlPYmpTZXIgPSBUeXBlUmVnaXN0cnkuZ2V0KCkuZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uQnlDbGFzc1R5cGUoY2xhc3NUeXBlKTtcbiAgICBpZiAoYXR0ckJ5T2JqU2VyKSByZXR1cm4gYXR0ckJ5T2JqU2VyO1xuICAgIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBmaW5kQXR0cmlidXRlQnlUeXBlQW5kTmFtZShhdHRyaWJ1dGVzOiBDbGFzc0F0dHJpYnV0ZURlZltdLCB0eXBlczogc3RyaW5nW10sIC4uLm5hbWVzOiBzdHJpbmdbXSk6IENsYXNzQXR0cmlidXRlRGVmIHwgbnVsbCB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChhID0+IHR5cGVzLnNvbWUodCA9PiB0ID09PSBhLnR5cGUpICYmIGEubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4iXX0=","import { findReflectTypeName } from '@mediusinc/mng-commons/core';\nimport { ModelDescriptor } from '@mediusinc/mng-commons/model';\nimport { findClassIdAttribute, findClassTitleAttribute } from '../helpers/model';\nexport class ModelClassDescriptor extends ModelDescriptor {\n constructor(_type, idProperty, titleProperty, i18nBaseKey) {\n super(idProperty, titleProperty, i18nBaseKey);\n this._classType = _type;\n }\n get classType() {\n return this._classType;\n }\n copy() {\n return new ModelClassDescriptor(this._classType, this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\nexport function modelClass(type, opts) {\n let idProperty = opts?.id;\n if (!idProperty && type) {\n idProperty = findClassIdAttribute(type) ?? undefined;\n }\n let titleProp = opts?.title;\n if (!titleProp && type) {\n titleProp = findClassTitleAttribute(type) ?? undefined;\n }\n const i18nBaseKey = opts?.i18nBase != null ? (typeof opts?.i18nBase === 'string' ? opts.i18nBase : findReflectTypeName(opts.i18nBase)) : findReflectTypeName(type);\n return new ModelClassDescriptor(type, idProperty, titleProp, i18nBaseKey ?? undefined);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY2xhc3MuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZGVsL2NsYXNzL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC1jbGFzcy5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBOEIsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUE0QixNQUFNLDhCQUE4QixDQUFDO0FBRXhGLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxvQkFBNEIsU0FBUSxlQUFzQjtJQUduRSxZQUFtQixLQUF1QixFQUFFLFVBQW1CLEVBQUUsYUFBa0QsRUFBRSxXQUFvQjtRQUNySSxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRWUsSUFBSTtRQUNoQixPQUFPLElBQUksb0JBQW9CLENBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RILENBQUM7Q0FDSjtBQU1ELE1BQU0sVUFBVSxVQUFVLENBQVEsSUFBc0IsRUFBRSxJQUE0QztJQUNsRyxJQUFJLFVBQVUsR0FBRyxJQUFJLEVBQUUsRUFBd0IsQ0FBQztJQUNoRCxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxJQUFtQyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLEVBQUUsS0FBdUQsQ0FBQztJQUM5RSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFtQyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzFGLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FDYixJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBd0IsQ0FBQyxDQUFDO0lBQ3ZLLE9BQU8sSUFBSSxvQkFBb0IsQ0FBUSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLElBQUksU0FBUyxDQUFDLENBQUM7QUFDbEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlLCBJTW9kZWxEZXNjcmlwdG9yLCBmaW5kUmVmbGVjdFR5cGVOYW1lfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHN9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge2ZpbmRDbGFzc0lkQXR0cmlidXRlLCBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZX0gZnJvbSAnLi4vaGVscGVycy9tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBNb2RlbENsYXNzRGVzY3JpcHRvcjxNb2RlbD4gZXh0ZW5kcyBNb2RlbERlc2NyaXB0b3I8TW9kZWw+IGltcGxlbWVudHMgSU1vZGVsRGVzY3JpcHRvcjxNb2RlbD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsYXNzVHlwZTogQ2xhc3NUeXBlPE1vZGVsPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihfdHlwZTogQ2xhc3NUeXBlPE1vZGVsPiwgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyksIGkxOG5CYXNlS2V5Pzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIGkxOG5CYXNlS2V5KTtcbiAgICAgICAgdGhpcy5fY2xhc3NUeXBlID0gX3R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc1R5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc1R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogTW9kZWxDbGFzc0Rlc2NyaXB0b3I8TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbENsYXNzRGVzY3JpcHRvcjxNb2RlbD4odGhpcy5fY2xhc3NUeXBlLCB0aGlzLl9pZFByb3BlcnR5LCB0aGlzLl90aXRsZVByb3BlcnR5LCB0aGlzLl9pMThuQmFzZUtleSk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBNb2RlbENsYXNzRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+ID0gT21pdDxNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiwgJ2kxOG5CYXNlJz4gJiB7XG4gICAgaTE4bkJhc2U/OiBzdHJpbmcgfCBDbGFzc1R5cGU8dW5rbm93bj47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxDbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPiwgb3B0cz86IE1vZGVsQ2xhc3NEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbENsYXNzRGVzY3JpcHRvcjxNb2RlbD4ge1xuICAgIGxldCBpZFByb3BlcnR5ID0gb3B0cz8uaWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICghaWRQcm9wZXJ0eSAmJiB0eXBlKSB7XG4gICAgICAgIGlkUHJvcGVydHkgPSBmaW5kQ2xhc3NJZEF0dHJpYnV0ZSh0eXBlIGFzIHVua25vd24gYXMgQ2xhc3NUeXBlPE1vZGVsPikgPz8gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBsZXQgdGl0bGVQcm9wID0gb3B0cz8udGl0bGUgYXMgc3RyaW5nIHwgKChpdGVtOiBNb2RlbCkgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRpdGxlUHJvcCAmJiB0eXBlKSB7XG4gICAgICAgIHRpdGxlUHJvcCA9IGZpbmRDbGFzc1RpdGxlQXR0cmlidXRlKHR5cGUgYXMgdW5rbm93biBhcyBDbGFzc1R5cGU8TW9kZWw+KSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGkxOG5CYXNlS2V5ID1cbiAgICAgICAgb3B0cz8uaTE4bkJhc2UgIT0gbnVsbCA/ICh0eXBlb2Ygb3B0cz8uaTE4bkJhc2UgPT09ICdzdHJpbmcnID8gb3B0cy5pMThuQmFzZSA6IGZpbmRSZWZsZWN0VHlwZU5hbWUob3B0cy5pMThuQmFzZSkpIDogZmluZFJlZmxlY3RUeXBlTmFtZSh0eXBlIGFzIENsYXNzVHlwZTxNb2RlbD4pO1xuICAgIHJldHVybiBuZXcgTW9kZWxDbGFzc0Rlc2NyaXB0b3I8TW9kZWw+KHR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcCwgaTE4bkJhc2VLZXkgPz8gdW5kZWZpbmVkKTtcbn1cbiJdfQ==","import { TypeDescriptor } from '@mediusinc/mng-commons/model';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function typeFromClass(type) {\n return new TypeDescriptor();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jbGFzcy5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kZWwvY2xhc3Mvc3JjL2Rlc2NyaXB0b3JzL3R5cGUtY2xhc3MuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsNkRBQTZEO0FBQzdELE1BQU0sVUFBVSxhQUFhLENBQU8sSUFBcUI7SUFDckQsT0FBTyxJQUFJLGNBQWMsRUFBUSxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VHlwZURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgZnVuY3Rpb24gdHlwZUZyb21DbGFzczxUeXBlPih0eXBlOiBDbGFzc1R5cGU8VHlwZT4pOiBUeXBlRGVzY3JpcHRvcjxUeXBlPiB7XG4gICAgcmV0dXJuIG5ldyBUeXBlRGVzY3JpcHRvcjxUeXBlPigpO1xufVxuIl19","// data providers\nexport * from './data-providers/base-from-class-data-provider.factory';\n// descriptors\nexport * from './descriptors/model-class.descriptor';\nexport * from './descriptors/type-class.descriptor';\n// helpers\nexport * from './helpers/model';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2RlbC9jbGFzcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYztBQUNkLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxVQUFVO0FBQ1YsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRhdGEgcHJvdmlkZXJzXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtcHJvdmlkZXJzL2Jhc2UtZnJvbS1jbGFzcy1kYXRhLXByb3ZpZGVyLmZhY3RvcnknO1xuXG4vLyBkZXNjcmlwdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9tb2RlbC1jbGFzcy5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvdHlwZS1jbGFzcy5kZXNjcmlwdG9yJztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL21vZGVsJztcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLW1vZGVsLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvY2xhc3Mvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy1tb2RlbC1jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-model-class.mjs","sources":["../../model/class/src/data-providers/base-from-class-data-provider.factory.ts","../../model/class/src/helpers/model.ts","../../model/class/src/descriptors/model-class.descriptor.ts","../../model/class/src/descriptors/type-class.descriptor.ts","../../model/class/src/index.ts","../../model/class/src/mediusinc-mng-commons-model-class.ts"],"sourcesContent":["import {ClassType, DataProviderInst, ServiceClassType} from '@mediusinc/mng-commons/core';\n\nexport function dataProviderFromClass<Model>(type: ClassType<Model>): DataProviderInst<Model, undefined, undefined>;\nexport function dataProviderFromClass<Model, Service = any>(\n type: ClassType<Model>,\n ServiceClass: ServiceClassType<Service>\n): DataProviderInst<Model, Service, ServiceClassType<Service>>;\nexport function dataProviderFromClass<Model, Service = any, ServiceClass = ServiceClassType<Service>>(type: ClassType<Model>, serviceType?: ServiceClass) {\n return new DataProviderInst<Model, Service, ServiceClass>(serviceType as ServiceClass);\n}\n","import {ClassAttributeDef, ClassType, TypeRegistry} from '@mediusinc/mng-commons/core';\n\nexport function findClassIdAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let idAttribute = findAttributeByTypeAndName(attrDef, ['string', 'number'], 'id', 'uuid', 'code', 'sifra');\n if (!idAttribute) {\n // if no id or code, take the first attribute\n idAttribute = attrDef[0];\n }\n\n return idAttribute?.name ?? null;\n}\n\nexport function findClassTitleAttribute<T>(classType?: ClassType<T>): string | null {\n if (!classType) return null;\n\n const attrDef = getClassAttributeDef(classType);\n if (!attrDef) {\n return null;\n }\n\n let titleAttribute = findAttributeByTypeAndName(attrDef, ['string'], 'name', 'ime', 'title', 'naziv');\n if (!titleAttribute) {\n // if no name or title, take the first attribute\n titleAttribute = attrDef[0];\n }\n\n return titleAttribute?.name ?? null;\n}\n\nexport function getClassAttributeDef<T>(classType?: ClassType<T>) {\n if (!classType) return null;\n const attrDefByFn = (classType as any).getAttributeTypeMap?.() as Array<ClassAttributeDef> | undefined;\n if (attrDefByFn) return attrDefByFn;\n const attrDefByProp = (classType as any).attributeTypeMap as Array<ClassAttributeDef> | undefined;\n if (attrDefByProp) return attrDefByProp;\n const attrByObjSer = TypeRegistry.get().findAttributesDefinitionByClassType(classType);\n if (attrByObjSer) return attrByObjSer;\n return null;\n}\n\nfunction findAttributeByTypeAndName(attributes: ClassAttributeDef[], types: string[], ...names: string[]): ClassAttributeDef | null {\n for (const name of names) {\n const attribute = attributes.find(a => types.some(t => t === a.type) && a.name === name);\n if (attribute) {\n return attribute;\n }\n }\n return null;\n}\n","import {ClassType, IModelDescriptor, findReflectTypeName} from '@mediusinc/mng-commons/core';\nimport {ModelDescriptor, ModelDescriptorCreateOpts} from '@mediusinc/mng-commons/model';\n\nimport {findClassIdAttribute, findClassTitleAttribute} from '../helpers/model';\n\nexport class ModelClassDescriptor<Model> extends ModelDescriptor<Model> implements IModelDescriptor<Model> {\n private readonly _classType: ClassType<Model>;\n\n public constructor(_type: ClassType<Model>, idProperty?: string, titleProperty?: string | ((item: Model) => string), i18nBaseKey?: string) {\n super(idProperty, titleProperty, i18nBaseKey);\n this._classType = _type;\n }\n\n public get classType() {\n return this._classType;\n }\n\n public override copy(): ModelClassDescriptor<Model> {\n return new ModelClassDescriptor<Model>(this._classType, this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\n\nexport type ModelClassDescriptorCreateOpts<Model> = Omit<ModelDescriptorCreateOpts<Model>, 'i18nBase'> & {\n i18nBase?: string | ClassType<unknown>;\n};\n\nexport function modelClass<Model>(type: ClassType<Model>, opts?: ModelClassDescriptorCreateOpts<Model>): ModelClassDescriptor<Model> {\n let idProperty = opts?.id as string | undefined;\n if (!idProperty && type) {\n idProperty = findClassIdAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n let titleProp = opts?.title as string | ((item: Model) => string) | undefined;\n if (!titleProp && type) {\n titleProp = findClassTitleAttribute(type as unknown as ClassType<Model>) ?? undefined;\n }\n const i18nBaseKey =\n opts?.i18nBase != null ? (typeof opts?.i18nBase === 'string' ? opts.i18nBase : findReflectTypeName(opts.i18nBase)) : findReflectTypeName(type as ClassType<Model>);\n return new ModelClassDescriptor<Model>(type, idProperty, titleProp, i18nBaseKey ?? undefined);\n}\n","import {ClassType} from '@mediusinc/mng-commons/core';\nimport {TypeDescriptor} from '@mediusinc/mng-commons/model';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function typeFromClass<Type>(type: ClassType<Type>): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>();\n}\n","// data providers\nexport * from './data-providers/base-from-class-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/model-class.descriptor';\nexport * from './descriptors/type-class.descriptor';\n\n// helpers\nexport * from './helpers/model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-model.mjs","sources":["../tmp-esm2022/model/data-providers/base-from-type-data-provider.factory.js","../tmp-esm2022/model/descriptors/enum.descriptor.js","../tmp-esm2022/model/descriptors/type.descriptor.js","../tmp-esm2022/model/descriptors/model.descriptor.js","../tmp-esm2022/model/helpers/i18n.js","../tmp-esm2022/model/index.js","../tmp-esm2022/model/mediusinc-mng-commons-model.js"],"sourcesContent":["import { DataProviderInst } from '@mediusinc/mng-commons/core';\n/**\n * Creates and returns an instance of `DataProviderInst` with the specified options for managing editor data.\n *\n * @param {Object} [opts] - The options object to configure the data provider.\n * @param {TypeDescriptor<Model> | ModelDescriptor<Model>} [opts.type] - The descriptor defining the type of model.\n * @param {ServiceClassType<Service>} [opts.service] - The service class type associated with the data provider.\n * @return {DataProviderInst<Model, Service, ServiceClass>} An instance of `EditorDataProviderInst` configured according to the provided options.\n */\nexport function dataProvider(opts) {\n return new DataProviderInst(opts?.service);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mcm9tLXR5cGUtZGF0YS1wcm92aWRlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL2RhdGEtcHJvdmlkZXJzL2Jhc2UtZnJvbS10eXBlLWRhdGEtcHJvdmlkZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFLL0U7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQStHLElBRzFJO0lBQ0csT0FBTyxJQUFJLGdCQUFnQixDQUErQixJQUFJLEVBQUUsT0FBdUIsQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGFQcm92aWRlckluc3QsIFNlcnZpY2VDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yJztcbmltcG9ydCB7VHlwZURlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3R5cGUuZGVzY3JpcHRvcic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBgRGF0YVByb3ZpZGVySW5zdGAgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbnMgZm9yIG1hbmFnaW5nIGVkaXRvciBkYXRhLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBUaGUgb3B0aW9ucyBvYmplY3QgdG8gY29uZmlndXJlIHRoZSBkYXRhIHByb3ZpZGVyLlxuICogQHBhcmFtIHtUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3I8TW9kZWw+fSBbb3B0cy50eXBlXSAtIFRoZSBkZXNjcmlwdG9yIGRlZmluaW5nIHRoZSB0eXBlIG9mIG1vZGVsLlxuICogQHBhcmFtIHtTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+fSBbb3B0cy5zZXJ2aWNlXSAtIFRoZSBzZXJ2aWNlIGNsYXNzIHR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhIHByb3ZpZGVyLlxuICogQHJldHVybiB7RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU2VydmljZUNsYXNzPn0gQW4gaW5zdGFuY2Ugb2YgYEVkaXRvckRhdGFQcm92aWRlckluc3RgIGNvbmZpZ3VyZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlIGV4dGVuZHMgdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4ob3B0cz86IHtcbiAgICB0eXBlPzogVHlwZURlc2NyaXB0b3I8TW9kZWw+IHwgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbiAgICBzZXJ2aWNlPzogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbn0pOiBEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTZXJ2aWNlQ2xhc3M+IHtcbiAgICByZXR1cm4gbmV3IERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzcz4ob3B0cz8uc2VydmljZSBhcyBTZXJ2aWNlQ2xhc3MpO1xufVxuIl19","import { findReflectEnumName } from '@mediusinc/mng-commons/core';\nexport class EnumDescriptor {\n constructor(value, type, i18nBaseKey, nameAsValue = false) {\n this._value = value;\n this._type = type;\n this._nameAsValue = nameAsValue;\n if (typeof i18nBaseKey === 'undefined') {\n i18nBaseKey = findReflectEnumName(type);\n }\n this._i18nBaseKey = i18nBaseKey;\n }\n get type() {\n return this._type;\n }\n get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n get nameAsValue() {\n return this._nameAsValue;\n }\n}\nexport function enumModel(value, type, i18nBaseKey = null, nameAsValue = false) {\n return new EnumDescriptor(value, type, i18nBaseKey, nameAsValue);\n}\nexport function enumModelGeneric(type, i18nBaseKey = null, nameAsValue = false) {\n return new EnumDescriptor(undefined, type, i18nBaseKey, nameAsValue);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL2Rlc2NyaXB0b3JzL2VudW0uZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRSxNQUFNLE9BQU8sY0FBYztJQU12QixZQUFtQixLQUFXLEVBQUUsSUFBYyxFQUFFLFdBQTJCLEVBQUUsV0FBVyxHQUFHLEtBQUs7UUFDNUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFFaEMsSUFBSSxPQUFPLFdBQVcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBTyxLQUFXLEVBQUUsSUFBYyxFQUFFLGNBQXlDLElBQUksRUFBRSxXQUFXLEdBQUcsS0FBSztJQUMzSCxPQUFPLElBQUksY0FBYyxDQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQWEsSUFBYyxFQUFFLGNBQXlDLElBQUksRUFBRSxXQUFXLEdBQUcsS0FBSztJQUMzSCxPQUFPLElBQUksY0FBYyxDQUFPLFNBQWlCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN2RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnVtVHlwZSwgZmluZFJlZmxlY3RFbnVtTmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEVudW1EZXNjcmlwdG9yPEVudW0+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZTogRW51bTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlOiBFbnVtVHlwZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYW1lQXNWYWx1ZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pMThuQmFzZUtleTogc3RyaW5nIHwgbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih2YWx1ZTogRW51bSwgdHlwZTogRW51bVR5cGUsIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgbnVsbCwgbmFtZUFzVmFsdWUgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgICAgICAgdGhpcy5fbmFtZUFzVmFsdWUgPSBuYW1lQXNWYWx1ZTtcblxuICAgICAgICBpZiAodHlwZW9mIGkxOG5CYXNlS2V5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaTE4bkJhc2VLZXkgPSBmaW5kUmVmbGVjdEVudW1OYW1lKHR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gaTE4bkJhc2VLZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGkxOG5CYXNlS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faTE4bkJhc2VLZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYW1lQXNWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWVBc1ZhbHVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1Nb2RlbDxFbnVtPih2YWx1ZTogRW51bSwgdHlwZTogRW51bVR5cGUsIGkxOG5CYXNlS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gbnVsbCwgbmFtZUFzVmFsdWUgPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgRW51bURlc2NyaXB0b3I8RW51bT4odmFsdWUsIHR5cGUsIGkxOG5CYXNlS2V5LCBuYW1lQXNWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtTW9kZWxHZW5lcmljPEVudW0gPSBhbnk+KHR5cGU6IEVudW1UeXBlLCBpMThuQmFzZUtleTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9IG51bGwsIG5hbWVBc1ZhbHVlID0gZmFsc2UpIHtcbiAgICByZXR1cm4gbmV3IEVudW1EZXNjcmlwdG9yPEVudW0+KHVuZGVmaW5lZCBhcyBFbnVtLCB0eXBlLCBpMThuQmFzZUtleSwgbmFtZUFzVmFsdWUpO1xufVxuIl19","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class TypeDescriptor {\n}\nexport function type() {\n return new TypeDescriptor();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kZWwvc3JjL2Rlc2NyaXB0b3JzL3R5cGUuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsTUFBTSxPQUFPLGNBQWM7Q0FBUztBQUVwQyxNQUFNLFVBQVUsSUFBSTtJQUNoQixPQUFPLElBQUksY0FBYyxFQUFRLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjbGFzcyBUeXBlRGVzY3JpcHRvcjxUeXBlPiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZTxUeXBlPigpOiBUeXBlRGVzY3JpcHRvcjxUeXBlPiB7XG4gICAgcmV0dXJuIG5ldyBUeXBlRGVzY3JpcHRvcjxUeXBlPigpO1xufVxuIl19","import { TypeDescriptor } from './type.descriptor';\nexport class ModelDescriptor {\n constructor(idProperty, titleProperty, i18nBaseKey) {\n this._idProperty = idProperty;\n this._titleProperty = titleProperty;\n this._i18nBaseKey = i18nBaseKey ?? '';\n }\n get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n get idProperty() {\n return this._idProperty;\n }\n get titleProperty() {\n return this._titleProperty;\n }\n withIdProperty(property) {\n this._idProperty = property;\n return this;\n }\n withIdPropertyUnsafe(property) {\n this._idProperty = property;\n return this;\n }\n withTitleProperty(property) {\n this._titleProperty = property;\n return this;\n }\n withTitlePropertyUnsafe(property) {\n this._titleProperty = property;\n return this;\n }\n withI18nBase(base) {\n this._i18nBaseKey = base;\n return this;\n }\n copy() {\n return new ModelDescriptor(this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\nexport function model(typeOrOpts, opts) {\n if (typeOrOpts == null) {\n return new ModelDescriptor();\n }\n else if (typeOrOpts instanceof TypeDescriptor) {\n return new ModelDescriptor(opts?.id, opts?.title, opts?.i18nBase);\n }\n else {\n const modelOpts = typeOrOpts;\n return new ModelDescriptor(modelOpts?.id, modelOpts?.title, modelOpts?.i18nBase);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUFtQixVQUFtQixFQUFFLGFBQWtELEVBQUUsV0FBb0I7UUFDNUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBcUI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFrQixDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxRQUFnQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0saUJBQWlCLENBQUMsUUFBcUI7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFrQixDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUFnQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUk7UUFDUCxPQUFPLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNKO0FBV0QsTUFBTSxVQUFVLEtBQUssQ0FBUSxVQUFxRSxFQUFFLElBQXVDO0lBQ3ZJLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxlQUFlLEVBQVMsQ0FBQztJQUN4QyxDQUFDO1NBQU0sSUFBSSxVQUFVLFlBQVksY0FBYyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGVBQWUsQ0FBUSxJQUFJLEVBQUUsRUFBWSxFQUFFLElBQUksRUFBRSxLQUFlLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxTQUFTLEdBQUcsVUFBOEMsQ0FBQztRQUNqRSxPQUFPLElBQUksZUFBZSxDQUFRLFNBQVMsRUFBRSxFQUFZLEVBQUUsU0FBUyxFQUFFLEtBQWUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEgsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lNb2RlbERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7VHlwZURlc2NyaXB0b3J9IGZyb20gJy4vdHlwZS5kZXNjcmlwdG9yJztcblxuZXhwb3J0IGNsYXNzIE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4gaW1wbGVtZW50cyBJTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiB7XG4gICAgcHJvdGVjdGVkIF9pMThuQmFzZUtleTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfaWRQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3RpdGxlUHJvcGVydHk/OiBzdHJpbmcgfCAoKGl0ZW06IE1vZGVsKSA9PiBzdHJpbmcpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGlkUHJvcGVydHk/OiBzdHJpbmcsIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcgfCAoKGl0ZW06IE1vZGVsKSA9PiBzdHJpbmcpLCBpMThuQmFzZUtleT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gaWRQcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHRpdGxlUHJvcGVydHk7XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gaTE4bkJhc2VLZXkgPz8gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpMThuQmFzZUtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2kxOG5CYXNlS2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWRQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElkUHJvcGVydHkocHJvcGVydHk6IGtleW9mIE1vZGVsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBwcm9wZXJ0eSBhcyBzdHJpbmc7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSWRQcm9wZXJ0eVVuc2FmZShwcm9wZXJ0eTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZVByb3BlcnR5KHByb3BlcnR5OiBrZXlvZiBNb2RlbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlUHJvcGVydHlVbnNhZmUocHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSTE4bkJhc2UoYmFzZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gYmFzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPih0aGlzLl9pZFByb3BlcnR5LCB0aGlzLl90aXRsZVByb3BlcnR5LCB0aGlzLl9pMThuQmFzZUtleSk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiA9IHtcbiAgICBpZD86IGtleW9mIE1vZGVsO1xuICAgIHRpdGxlPzoga2V5b2YgTW9kZWwgfCAoKGl0ZW06IE1vZGVsKSA9PiBzdHJpbmcpO1xuICAgIGkxOG5CYXNlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPigpOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPihvcHRzOiBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG5leHBvcnQgZnVuY3Rpb24gbW9kZWw8TW9kZWw+KHR5cGU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiwgb3B0cz86IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+KTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4odHlwZU9yT3B0cz86IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pIHtcbiAgICBpZiAodHlwZU9yT3B0cyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPigpO1xuICAgIH0gZWxzZSBpZiAodHlwZU9yT3B0cyBpbnN0YW5jZW9mIFR5cGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPihvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1vZGVsT3B0cyA9IHR5cGVPck9wdHMgYXMgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD47XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPihtb2RlbE9wdHM/LmlkIGFzIHN0cmluZywgbW9kZWxPcHRzPy50aXRsZSBhcyBzdHJpbmcsIG1vZGVsT3B0cz8uaTE4bkJhc2UpO1xuICAgIH1cbn1cbiJdfQ==","import { map } from 'rxjs/operators';\nimport { getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync } from '@mediusinc/mng-commons/core';\nexport function getI18nForModel(translate, model, keyPath, opts) {\n const keys = getKeysByPriority(model, keyPath, opts?.customKey, opts?.fallbackKey);\n const i18nParams = getI18nModelParams(translate, model, opts?.item, opts?.params);\n return getI18n(translate, i18nParams, ...keys);\n}\nexport function getI18nModelParams(translate, model, item, params = {}) {\n const i18nParams = getI18nTypeParams(translate, model?.i18nBaseKey, item, params);\n return populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams);\n}\nexport function getI18nModelParamsAsync(translate, model, item, params = {}) {\n return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams)));\n}\nfunction populateI18nModelParams(idProperty, titleProperty, item, params = {}) {\n const paramsRes = { ...params, itemId: '', itemTitle: '' };\n if (item) {\n if (idProperty && item[idProperty]) {\n paramsRes.itemId = item[idProperty];\n }\n if (typeof titleProperty === 'function') {\n paramsRes.itemTitle = titleProperty(item);\n }\n else if (titleProperty && item[titleProperty]) {\n paramsRes.itemTitle = item[titleProperty];\n }\n }\n return paramsRes;\n}\nfunction getKeysByPriority(model, keyPath, customKey, fallbackKey) {\n const keys = [];\n if (customKey) {\n keys.push(customKey);\n }\n else {\n const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, keyPath);\n keys.push(modelActionKey);\n if (keyPath !== modelActionKey) {\n keys.push(keyPath);\n }\n if (fallbackKey) {\n keys.push(fallbackKey);\n }\n }\n return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9oZWxwZXJzL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBWSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQVdsSSxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQTJCLEVBQUUsS0FBMkIsRUFBRSxPQUFlLEVBQUUsSUFBd0I7SUFDL0gsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQTJCLEVBQUUsS0FBNEIsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQ3RILE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRixPQUFPLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDOUYsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUMzSCxPQUFPLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDeEcsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLFVBQXNCLEVBQUUsYUFBbUQsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQ3RJLE1BQU0sU0FBUyxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDekQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTJCLEVBQUUsT0FBZSxFQUFFLFNBQWtCLEVBQUUsV0FBb0I7SUFDN0csTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxjQUFjLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtLZXlPZlR5cGUsIGdldEkxOG4sIGdldEkxOG5UeXBlS2V5QmFzZVBhdGgsIGdldEkxOG5UeXBlUGFyYW1zLCBnZXRJMThuVHlwZVBhcmFtc0FzeW5jfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5cbnR5cGUgTW9kZWxJMThuT3B0c1R5cGUgPSB7XG4gICAgY3VzdG9tS2V5Pzogc3RyaW5nO1xuICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nO1xuICAgIGl0ZW0/OiBhbnk7XG4gICAgcGFyYW1zPzogYW55O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5Gb3JNb2RlbCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBvcHRzPzogTW9kZWxJMThuT3B0c1R5cGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5c0J5UHJpb3JpdHkobW9kZWwsIGtleVBhdGgsIG9wdHM/LmN1c3RvbUtleSwgb3B0cz8uZmFsbGJhY2tLZXkpO1xuICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBnZXRJMThuTW9kZWxQYXJhbXModHJhbnNsYXRlLCBtb2RlbCwgb3B0cz8uaXRlbSwgb3B0cz8ucGFyYW1zKTtcbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgaTE4blBhcmFtcyA9IGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZSwgbW9kZWw/LmkxOG5CYXNlS2V5LCBpdGVtLCBwYXJhbXMpO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGUsIG1vZGVsPy5pMThuQmFzZUtleSwgaXRlbSwgcGFyYW1zKS5waXBlKFxuICAgICAgICBtYXAoaTE4blBhcmFtcyA9PiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpKVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIHBvcHVsYXRlSTE4bk1vZGVsUGFyYW1zKGlkUHJvcGVydHk/OiBLZXlPZlR5cGUsIHRpdGxlUHJvcGVydHk/OiBLZXlPZlR5cGUgfCAoKGl0ZW06IGFueSkgPT4gc3RyaW5nKSwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgcGFyYW1zUmVzID0gey4uLnBhcmFtcywgaXRlbUlkOiAnJywgaXRlbVRpdGxlOiAnJ307XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgaXRlbVtpZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgcGFyYW1zUmVzLml0ZW1JZCA9IGl0ZW1baWRQcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aXRsZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBwYXJhbXNSZXMuaXRlbVRpdGxlID0gdGl0bGVQcm9wZXJ0eShpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aXRsZVByb3BlcnR5ICYmIGl0ZW1bdGl0bGVQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgIHBhcmFtc1Jlcy5pdGVtVGl0bGUgPSBpdGVtW3RpdGxlUHJvcGVydHldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXNSZXM7XG59XG5cbmZ1bmN0aW9uIGdldEtleXNCeVByaW9yaXR5KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGZhbGxiYWNrS2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAga2V5cy5wdXNoKGN1c3RvbUtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbW9kZWxBY3Rpb25LZXkgPSBnZXRJMThuVHlwZUtleUJhc2VQYXRoKG1vZGVsLmkxOG5CYXNlS2V5LCBrZXlQYXRoKTtcbiAgICAgICAga2V5cy5wdXNoKG1vZGVsQWN0aW9uS2V5KTtcbiAgICAgICAgaWYgKGtleVBhdGggIT09IG1vZGVsQWN0aW9uS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5UGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goZmFsbGJhY2tLZXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrZXlzO1xufVxuIl19","// data providers\nexport * from './data-providers/base-from-type-data-provider.factory';\n// descriptors\nexport * from './descriptors/enum.descriptor';\nexport * from './descriptors/model.descriptor';\nexport * from './descriptors/type.descriptor';\n// helpers\nexport * from './helpers/i18n';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsdURBQXVELENBQUM7QUFFdEUsY0FBYztBQUNkLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLFVBQVU7QUFDVixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZGF0YSBwcm92aWRlcnNcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1wcm92aWRlcnMvYmFzZS1mcm9tLXR5cGUtZGF0YS1wcm92aWRlci5mYWN0b3J5JztcblxuLy8gZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvZW51bS5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzL3R5cGUuZGVzY3JpcHRvcic7XG5cbi8vIGhlbHBlcnNcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9pMThuJztcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-model.mjs","sources":["../../model/src/data-providers/base-from-type-data-provider.factory.ts","../../model/src/descriptors/enum.descriptor.ts","../../model/src/descriptors/type.descriptor.ts","../../model/src/descriptors/model.descriptor.ts","../../model/src/helpers/i18n.ts","../../model/src/index.ts","../../model/src/mediusinc-mng-commons-model.ts"],"sourcesContent":["import {DataProviderInst, ServiceClassType} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\nimport {TypeDescriptor} from '../descriptors/type.descriptor';\n\n/**\n * Creates and returns an instance of `DataProviderInst` with the specified options for managing editor data.\n *\n * @param {Object} [opts] - The options object to configure the data provider.\n * @param {TypeDescriptor<Model> | ModelDescriptor<Model>} [opts.type] - The descriptor defining the type of model.\n * @param {ServiceClassType<Service>} [opts.service] - The service class type associated with the data provider.\n * @return {DataProviderInst<Model, Service, ServiceClass>} An instance of `EditorDataProviderInst` configured according to the provided options.\n */\nexport function dataProvider<Model, Service = undefined, ServiceClass = Service extends undefined ? undefined : ServiceClassType<Service>>(opts?: {\n type?: TypeDescriptor<Model> | ModelDescriptor<Model>;\n service?: ServiceClassType<Service>;\n}): DataProviderInst<Model, Service, ServiceClass> {\n return new DataProviderInst<Model, Service, ServiceClass>(opts?.service as ServiceClass);\n}\n","import {EnumType, findReflectEnumName} from '@mediusinc/mng-commons/core';\n\nexport class EnumDescriptor<Enum> {\n private readonly _value: Enum;\n private readonly _type: EnumType;\n private readonly _nameAsValue;\n private readonly _i18nBaseKey: string | null;\n\n public constructor(value: Enum, type: EnumType, i18nBaseKey?: string | null, nameAsValue = false) {\n this._value = value;\n this._type = type;\n this._nameAsValue = nameAsValue;\n\n if (typeof i18nBaseKey === 'undefined') {\n i18nBaseKey = findReflectEnumName(type);\n }\n this._i18nBaseKey = i18nBaseKey;\n }\n\n public get type() {\n return this._type;\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get nameAsValue() {\n return this._nameAsValue;\n }\n}\n\nexport function enumModel<Enum>(value: Enum, type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(value, type, i18nBaseKey, nameAsValue);\n}\n\nexport function enumModelGeneric<Enum = any>(type: EnumType, i18nBaseKey: string | undefined | null = null, nameAsValue = false) {\n return new EnumDescriptor<Enum>(undefined as Enum, type, i18nBaseKey, nameAsValue);\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class TypeDescriptor<Type> {}\n\nexport function type<Type>(): TypeDescriptor<Type> {\n return new TypeDescriptor<Type>();\n}\n","import {IModelDescriptor} from '@mediusinc/mng-commons/core';\n\nimport {TypeDescriptor} from './type.descriptor';\n\nexport class ModelDescriptor<Model> implements IModelDescriptor<Model> {\n protected _i18nBaseKey: string;\n protected _idProperty?: string;\n protected _titleProperty?: string | ((item: Model) => string);\n\n public constructor(idProperty?: string, titleProperty?: string | ((item: Model) => string), i18nBaseKey?: string) {\n this._idProperty = idProperty;\n this._titleProperty = titleProperty;\n this._i18nBaseKey = i18nBaseKey ?? '';\n }\n\n public get i18nBaseKey() {\n return this._i18nBaseKey;\n }\n\n public get idProperty() {\n return this._idProperty;\n }\n\n public get titleProperty() {\n return this._titleProperty;\n }\n\n public withIdProperty(property: keyof Model): this {\n this._idProperty = property as string;\n return this;\n }\n\n public withIdPropertyUnsafe(property: string): this {\n this._idProperty = property;\n return this;\n }\n\n public withTitleProperty(property: keyof Model): this {\n this._titleProperty = property as string;\n return this;\n }\n\n public withTitlePropertyUnsafe(property: string): this {\n this._titleProperty = property;\n return this;\n }\n\n public withI18nBase(base: string): this {\n this._i18nBaseKey = base;\n return this;\n }\n\n public copy(): ModelDescriptor<Model> {\n return new ModelDescriptor<Model>(this._idProperty, this._titleProperty, this._i18nBaseKey);\n }\n}\n\nexport type ModelDescriptorCreateOpts<Model> = {\n id?: keyof Model;\n title?: keyof Model | ((item: Model) => string);\n i18nBase?: string;\n};\n\nexport function model<Model>(): ModelDescriptor<Model>;\nexport function model<Model>(opts: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model>;\nexport function model<Model>(type: TypeDescriptor<Model>, opts?: ModelDescriptorCreateOpts<Model>): ModelDescriptor<Model>;\nexport function model<Model>(typeOrOpts?: TypeDescriptor<Model> | ModelDescriptorCreateOpts<Model>, opts?: ModelDescriptorCreateOpts<Model>) {\n if (typeOrOpts == null) {\n return new ModelDescriptor<Model>();\n } else if (typeOrOpts instanceof TypeDescriptor) {\n return new ModelDescriptor<Model>(opts?.id as string, opts?.title as string, opts?.i18nBase);\n } else {\n const modelOpts = typeOrOpts as ModelDescriptorCreateOpts<Model>;\n return new ModelDescriptor<Model>(modelOpts?.id as string, modelOpts?.title as string, modelOpts?.i18nBase);\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {KeyOfType, getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync} from '@mediusinc/mng-commons/core';\n\nimport {ModelDescriptor} from '../descriptors/model.descriptor';\n\ntype ModelI18nOptsType = {\n customKey?: string;\n fallbackKey?: string;\n item?: any;\n params?: any;\n};\n\nexport function getI18nForModel(translate: TranslateService, model: ModelDescriptor<any>, keyPath: string, opts?: ModelI18nOptsType): string | null {\n const keys = getKeysByPriority(model, keyPath, opts?.customKey, opts?.fallbackKey);\n const i18nParams = getI18nModelParams(translate, model, opts?.item, opts?.params);\n return getI18n(translate, i18nParams, ...keys);\n}\n\nexport function getI18nModelParams(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): any {\n const i18nParams = getI18nTypeParams(translate, model?.i18nBaseKey, item, params);\n return populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams);\n}\n\nexport function getI18nModelParamsAsync(translate: TranslateService, model?: ModelDescriptor<any>, item?: any, params: any = {}): Observable<any> {\n return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(\n map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams))\n );\n}\n\nfunction populateI18nModelParams(idProperty?: KeyOfType, titleProperty?: KeyOfType | ((item: any) => string), item?: any, params: any = {}): any {\n const paramsRes = {...params, itemId: '', itemTitle: ''};\n if (item) {\n if (idProperty && item[idProperty]) {\n paramsRes.itemId = item[idProperty];\n }\n if (typeof titleProperty === 'function') {\n paramsRes.itemTitle = titleProperty(item);\n } else if (titleProperty && item[titleProperty]) {\n paramsRes.itemTitle = item[titleProperty];\n }\n }\n return paramsRes;\n}\n\nfunction getKeysByPriority(model: ModelDescriptor<any>, keyPath: string, customKey?: string, fallbackKey?: string) {\n const keys = [];\n if (customKey) {\n keys.push(customKey);\n } else {\n const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, keyPath);\n keys.push(modelActionKey);\n if (keyPath !== modelActionKey) {\n keys.push(keyPath);\n }\n if (fallbackKey) {\n keys.push(fallbackKey);\n }\n }\n return keys;\n}\n","// data providers\nexport * from './data-providers/base-from-type-data-provider.factory';\n\n// descriptors\nexport * from './descriptors/enum.descriptor';\nexport * from './descriptors/model.descriptor';\nexport * from './descriptors/type.descriptor';\n\n// helpers\nexport * from './helpers/i18n';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-table-api-class.mjs","sources":["../tmp-esm2022/table/api/class/class-table-attribute-converter.js","../tmp-esm2022/table/api/class/class-table-data-provider.factory.js","../tmp-esm2022/table/api/class/class-table-descriptor-helpers.js","../tmp-esm2022/table/api/class/class-table-descriptor.factory.js","../tmp-esm2022/table/api/class/mediusinc-mng-commons-table-api-class.js"],"sourcesContent":["import { CommonsInternalError, TypeRegistry } from '@mediusinc/mng-commons/core';\nimport { ColumnDisplayTypeEnum, ColumnTypeEnum } from '@mediusinc/mng-commons/table/api';\n/**\n * converts string type to column type enum, default is string\n * @param attributeType\n */\nexport function getColumnTypeFromClassAttributeDefType(attributeType) {\n const typeRegistry = TypeRegistry.get();\n if (typeRegistry.findEnum(attributeType)) {\n attributeType = 'enum';\n }\n else if (typeRegistry.findType(attributeType)) {\n attributeType = 'class';\n }\n switch (attributeType.toLowerCase()) {\n case 'number':\n case 'currency':\n return ColumnTypeEnum.Number;\n case 'boolean':\n return ColumnTypeEnum.Boolean;\n case 'date':\n return ColumnTypeEnum.Date;\n case 'enum':\n return ColumnTypeEnum.Enum;\n case 'custom':\n return ColumnTypeEnum.Custom;\n case 'class':\n return ColumnTypeEnum.String;\n case 'string':\n default:\n return ColumnTypeEnum.String;\n }\n}\nexport function getColumnDisplayTypeFromColumnType(columnType, attributeType) {\n switch (columnType) {\n case ColumnTypeEnum.Number:\n return attributeType === 'currency' ? ColumnDisplayTypeEnum.Currency : ColumnDisplayTypeEnum.Number;\n case ColumnTypeEnum.Boolean:\n return ColumnDisplayTypeEnum.Boolean;\n case ColumnTypeEnum.Date:\n return ColumnDisplayTypeEnum.Date;\n case ColumnTypeEnum.Enum:\n return ColumnDisplayTypeEnum.Enum;\n case ColumnTypeEnum.Custom:\n return ColumnDisplayTypeEnum.Component;\n case ColumnTypeEnum.String:\n default:\n return ColumnDisplayTypeEnum.String;\n }\n}\nexport function expandClassAttributeDefWithTableDef(attributes) {\n if (!attributes) {\n throw new CommonsInternalError('Class attribute definition is null, problem with TypeRegistry::findAttributesDefinitionByClassType?', { name: 'TableviewUtilsError' });\n }\n const typeRegistry = TypeRegistry.get();\n const tableClassAttributeDef = [];\n for (const attribute of attributes) {\n const enumType = typeRegistry.findEnum(attribute.type);\n const columnType = enumType ? ColumnTypeEnum.Enum : getColumnTypeFromClassAttributeDefType(attribute.type);\n tableClassAttributeDef.push({\n name: attribute.name,\n baseName: attribute.baseName,\n type: attribute.type,\n subtype: attribute.subtype,\n columnType: enumType ? ColumnTypeEnum.Enum : getColumnTypeFromClassAttributeDefType(attribute.type),\n columnDisplayType: getColumnDisplayTypeFromColumnType(columnType, attribute.type),\n enumType: typeRegistry.findEnum(attribute.type),\n classType: typeRegistry.findType(attribute.type)\n });\n }\n return tableClassAttributeDef;\n}\n/**\n * returns attributes from class type and extends to typed def with column and field enum type\n * @param type class type\n */\nexport function getTableClassAttributeDef(type) {\n return expandClassAttributeDefWithTableDef(TypeRegistry.get().findAttributesDefinitionByClassType(type));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGUtYXR0cmlidXRlLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlL2FwaS9jbGFzcy9zcmMvY2xhc3MtdGFibGUtYXR0cmlidXRlLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLG9CQUFvQixFQUFZLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2Rjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0NBQXNDLENBQUMsYUFBcUI7SUFDeEUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQWEsRUFBRSxDQUFDO1FBQ25ELGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztTQUFNLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQW1CLEVBQUUsQ0FBQztRQUNoRSxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ1gsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ2pDLEtBQUssU0FBUztZQUNWLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxLQUFLLE1BQU07WUFDUCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDL0IsS0FBSyxNQUFNO1lBQ1AsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQy9CLEtBQUssUUFBUTtZQUNULE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxLQUFLLE9BQU87WUFDUixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDakMsS0FBSyxRQUFRLENBQUM7UUFDZDtZQUNJLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxVQUEwQixFQUFFLGFBQXFCO0lBQ2hHLFFBQVEsVUFBVSxFQUFFLENBQUM7UUFDakIsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN0QixPQUFPLGFBQWEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQ3hHLEtBQUssY0FBYyxDQUFDLE9BQU87WUFDdkIsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7UUFDekMsS0FBSyxjQUFjLENBQUMsSUFBSTtZQUNwQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQztRQUN0QyxLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3BCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDO1FBQ3RDLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDdEIsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDM0MsS0FBSyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzNCO1lBQ0ksT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsbUNBQW1DLENBQUMsVUFBNEM7SUFDNUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHFHQUFxRyxFQUFFLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUMsQ0FBQztJQUN6SyxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sc0JBQXNCLEdBQTZCLEVBQUUsQ0FBQztJQUM1RCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNHLHNCQUFzQixDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1lBQzVCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNuRyxpQkFBaUIsRUFBRSxrQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNqRixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFhO1lBQzNELFNBQVMsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQW1CO1NBQ3JFLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPLHNCQUFzQixDQUFDO0FBQ2xDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUksSUFBa0I7SUFDM0QsT0FBTyxtQ0FBbUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc0F0dHJpYnV0ZURlZiwgQ2xhc3NUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgRW51bVR5cGUsIFR5cGVSZWdpc3RyeX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7Q29sdW1uRGlzcGxheVR5cGVFbnVtLCBDb2x1bW5UeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuXG5pbXBvcnQge1RhYmxlQ2xhc3NBdHRyaWJ1dGVEZWZ9IGZyb20gJy4vY2xhc3MtdGFibGUtYXR0cmlidXRlLm1vZGVsJztcblxuLyoqXG4gKiBjb252ZXJ0cyBzdHJpbmcgdHlwZSB0byBjb2x1bW4gdHlwZSBlbnVtLCBkZWZhdWx0IGlzIHN0cmluZ1xuICogQHBhcmFtIGF0dHJpYnV0ZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtblR5cGVGcm9tQ2xhc3NBdHRyaWJ1dGVEZWZUeXBlKGF0dHJpYnV0ZVR5cGU6IHN0cmluZyk6IENvbHVtblR5cGVFbnVtIHtcbiAgICBjb25zdCB0eXBlUmVnaXN0cnkgPSBUeXBlUmVnaXN0cnkuZ2V0KCk7XG4gICAgaWYgKHR5cGVSZWdpc3RyeS5maW5kRW51bShhdHRyaWJ1dGVUeXBlKSBhcyBFbnVtVHlwZSkge1xuICAgICAgICBhdHRyaWJ1dGVUeXBlID0gJ2VudW0nO1xuICAgIH0gZWxzZSBpZiAodHlwZVJlZ2lzdHJ5LmZpbmRUeXBlKGF0dHJpYnV0ZVR5cGUpIGFzIENsYXNzVHlwZTxhbnk+KSB7XG4gICAgICAgIGF0dHJpYnV0ZVR5cGUgPSAnY2xhc3MnO1xuICAgIH1cblxuICAgIHN3aXRjaCAoYXR0cmlidXRlVHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIHJldHVybiBDb2x1bW5UeXBlRW51bS5OdW1iZXI7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkRhdGU7XG4gICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uQ3VzdG9tO1xuICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICByZXR1cm4gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIENvbHVtblR5cGVFbnVtLlN0cmluZztcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2x1bW5EaXNwbGF5VHlwZUZyb21Db2x1bW5UeXBlKGNvbHVtblR5cGU6IENvbHVtblR5cGVFbnVtLCBhdHRyaWJ1dGVUeXBlOiBzdHJpbmcpOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0ge1xuICAgIHN3aXRjaCAoY29sdW1uVHlwZSkge1xuICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVUeXBlID09PSAnY3VycmVuY3knID8gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5IDogQ29sdW1uRGlzcGxheVR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgcmV0dXJuIENvbHVtbkRpc3BsYXlUeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgIHJldHVybiBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRW51bTtcbiAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkNvbXBvbmVudDtcbiAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gQ29sdW1uRGlzcGxheVR5cGVFbnVtLlN0cmluZztcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBhbmRDbGFzc0F0dHJpYnV0ZURlZldpdGhUYWJsZURlZihhdHRyaWJ1dGVzPzogQXJyYXk8Q2xhc3NBdHRyaWJ1dGVEZWY+IHwgbnVsbCk6IFRhYmxlQ2xhc3NBdHRyaWJ1dGVEZWZbXSB7XG4gICAgaWYgKCFhdHRyaWJ1dGVzKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignQ2xhc3MgYXR0cmlidXRlIGRlZmluaXRpb24gaXMgbnVsbCwgcHJvYmxlbSB3aXRoIFR5cGVSZWdpc3RyeTo6ZmluZEF0dHJpYnV0ZXNEZWZpbml0aW9uQnlDbGFzc1R5cGU/Jywge25hbWU6ICdUYWJsZXZpZXdVdGlsc0Vycm9yJ30pO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGVSZWdpc3RyeSA9IFR5cGVSZWdpc3RyeS5nZXQoKTtcbiAgICBjb25zdCB0YWJsZUNsYXNzQXR0cmlidXRlRGVmOiBUYWJsZUNsYXNzQXR0cmlidXRlRGVmW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIGNvbnN0IGVudW1UeXBlID0gdHlwZVJlZ2lzdHJ5LmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgICAgY29uc3QgY29sdW1uVHlwZSA9IGVudW1UeXBlID8gQ29sdW1uVHlwZUVudW0uRW51bSA6IGdldENvbHVtblR5cGVGcm9tQ2xhc3NBdHRyaWJ1dGVEZWZUeXBlKGF0dHJpYnV0ZS50eXBlKTtcbiAgICAgICAgdGFibGVDbGFzc0F0dHJpYnV0ZURlZi5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IGF0dHJpYnV0ZS5uYW1lLFxuICAgICAgICAgICAgYmFzZU5hbWU6IGF0dHJpYnV0ZS5iYXNlTmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGF0dHJpYnV0ZS50eXBlLFxuICAgICAgICAgICAgc3VidHlwZTogYXR0cmlidXRlLnN1YnR5cGUsXG4gICAgICAgICAgICBjb2x1bW5UeXBlOiBlbnVtVHlwZSA/IENvbHVtblR5cGVFbnVtLkVudW0gOiBnZXRDb2x1bW5UeXBlRnJvbUNsYXNzQXR0cmlidXRlRGVmVHlwZShhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICBjb2x1bW5EaXNwbGF5VHlwZTogZ2V0Q29sdW1uRGlzcGxheVR5cGVGcm9tQ29sdW1uVHlwZShjb2x1bW5UeXBlLCBhdHRyaWJ1dGUudHlwZSksXG4gICAgICAgICAgICBlbnVtVHlwZTogdHlwZVJlZ2lzdHJ5LmZpbmRFbnVtKGF0dHJpYnV0ZS50eXBlKSBhcyBFbnVtVHlwZSxcbiAgICAgICAgICAgIGNsYXNzVHlwZTogdHlwZVJlZ2lzdHJ5LmZpbmRUeXBlKGF0dHJpYnV0ZS50eXBlKSBhcyBDbGFzc1R5cGU8YW55PlxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGFibGVDbGFzc0F0dHJpYnV0ZURlZjtcbn1cblxuLyoqXG4gKiByZXR1cm5zIGF0dHJpYnV0ZXMgZnJvbSBjbGFzcyB0eXBlIGFuZCBleHRlbmRzIHRvIHR5cGVkIGRlZiB3aXRoIGNvbHVtbiBhbmQgZmllbGQgZW51bSB0eXBlXG4gKiBAcGFyYW0gdHlwZSBjbGFzcyB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZUNsYXNzQXR0cmlidXRlRGVmPFQ+KHR5cGU6IENsYXNzVHlwZTxUPik6IFRhYmxlQ2xhc3NBdHRyaWJ1dGVEZWZbXSB7XG4gICAgcmV0dXJuIGV4cGFuZENsYXNzQXR0cmlidXRlRGVmV2l0aFRhYmxlRGVmKFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kQXR0cmlidXRlc0RlZmluaXRpb25CeUNsYXNzVHlwZSh0eXBlKSk7XG59XG4iXX0=","import { TableDataProviderInst } from '@mediusinc/mng-commons/table/api';\nexport function tableDataProviderFromClass(type, serviceType) {\n return new TableDataProviderInst(serviceType);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGUtZGF0YS1wcm92aWRlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL2NsYXNzL3NyYy9jbGFzcy10YWJsZS1kYXRhLXByb3ZpZGVyLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFTdkUsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxJQUFzQixFQUN0QixXQUEwQjtJQUUxQixPQUFPLElBQUkscUJBQXFCLENBQStDLFdBQTJCLENBQUMsQ0FBQztBQUNoSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGUsIFNlcnZpY2VDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge1RhYmxlRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVEYXRhUHJvdmlkZXJGcm9tQ2xhc3M8TW9kZWwsIFNvcnRzID0ga2V5b2YgTW9kZWwsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbD4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPlxuKTogVGFibGVEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCB1bmRlZmluZWQsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWw+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgc2VydmljZVR5cGU6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT5cbik6IFRhYmxlRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnMsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWwsIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3Ncbikge1xuICAgIHJldHVybiBuZXcgVGFibGVEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzPihzZXJ2aWNlVHlwZSBhcyBTZXJ2aWNlQ2xhc3MpO1xufVxuIl19","import { CommonsInternalError, TypeRegistry } from '@mediusinc/mng-commons/core';\nimport { enumModelGeneric } from '@mediusinc/mng-commons/model';\nimport { ModelClassDescriptor, findClassTitleAttribute } from '@mediusinc/mng-commons/model/class';\nimport { ColumnTypeEnum } from '@mediusinc/mng-commons/table/api';\nimport { getTableClassAttributeDef } from './class-table-attribute-converter';\n/**\n * generates column based on attributes\n * @param desc Table descriptor\n * @param attribute attribute map\n * @param column if provided, replaced by new, otherwise new is created\n * @param args additional parameters\n */\nexport function upsertTableColumnFromAttributeDef(desc, attribute, column, ...args) {\n if (column == null) {\n column = desc.addColumnUnsafe(attribute.name);\n }\n if (attribute.columnType === ColumnTypeEnum.Enum && args.length === 0 && attribute.enumType) {\n args = [enumModelGeneric(attribute.enumType)];\n }\n column = column.asType(attribute.columnType, attribute.columnDisplayType, ...args);\n if (attribute.classType) {\n const titleProperty = findClassTitleAttribute(attribute.classType) ?? undefined;\n if (titleProperty) {\n column.withGetter(value => value?.[titleProperty]);\n }\n }\n else {\n desc.addFilterFromColumnDescriptorUnsafe(column, false);\n desc.withSortUnsafe(column.property);\n }\n return column;\n}\n/**\n * defines modified type of column\n * DO NOT USE with enum (use withCustomEnumType)\n * @param descriptor table descriptor\n * @param property column name\n * @param columnType modified type\n * @param args additional attributes\n * @param columnDisplayType\n */\nexport function modifyTableClassAttributeColumnType(descriptor, property, columnType, columnDisplayType, ...args) {\n return modifyTableClassAttributeColumnTypeUnsafe(descriptor, property, columnType, columnDisplayType, ...args);\n}\nexport function modifyTableClassAttributeColumnTypeUnsafe(descriptor, property, columnType, columnDisplayType, ...args) {\n if (!(descriptor.model instanceof ModelClassDescriptor)) {\n throw new CommonsInternalError(`withColumnModifiedType cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`);\n }\n const attributeDef = getTableClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);\n if (attributeDef != null) {\n attributeDef.columnType = columnType ?? attributeDef.columnType;\n attributeDef.columnDisplayType = columnDisplayType ?? attributeDef.columnDisplayType;\n return upsertTableColumnFromAttributeDef(descriptor, attributeDef, descriptor.columns.find(col => col.property === attributeDef.name), ...args);\n }\n return null;\n}\n/**\n * defines custom enum type for column\n * @param descriptor table descriptor\n * @param property column name\n * @param enumDesc Enum descriptor.\n */\nexport function modifyTableClassAttributeColumnEnum(descriptor, property, enumDesc) {\n return tableDescriptorModifyEnumColumnUnsafe(descriptor, property, enumDesc);\n}\nexport function tableDescriptorModifyEnumColumnUnsafe(descriptor, property, enumDesc) {\n if (!(descriptor.model instanceof ModelClassDescriptor)) {\n throw new CommonsInternalError(`withColumnModifiedEnum cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`);\n }\n const attributeDef = getTableClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);\n if (attributeDef != null) {\n attributeDef.columnType = ColumnTypeEnum.Enum;\n upsertTableColumnFromAttributeDef(descriptor, attributeDef, descriptor.columns.find(col => col.property === property), enumDesc ?? enumModelGeneric(TypeRegistry.get().findEnum(attributeDef.type)));\n }\n return null;\n}\n/**\n * modifies column with class and lookup provider\n * @param descriptor table descriptor\n * @param property column name\n * @param lookupProvider lookupProvider for class\n * @param optionsLabelProperty\n * @param filterProperty\n */\nexport function modifyTableColumnFilterLookup(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty) {\n return modifyTableColumnFilterLookupUnsafe(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty);\n}\nexport function modifyTableColumnFilterLookupUnsafe(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty) {\n const column = descriptor.columns.find(col => col.property === property);\n if (column) {\n const filter = descriptor.addFilterLookupUnsafe(column.property, lookupProvider, filterProperty);\n if (optionsLabelProperty) {\n filter.withOptionsLabelPropertyUnsafe(optionsLabelProperty);\n }\n return filter;\n }\n return null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGUtZGVzY3JpcHRvci1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL2NsYXNzL3NyYy9jbGFzcy10YWJsZS1kZXNjcmlwdG9yLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFpQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RyxPQUFPLEVBQWlCLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakcsT0FBTyxFQUEwQyxjQUFjLEVBQXNCLE1BQU0sa0NBQWtDLENBQUM7QUFFOUgsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHNUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUM3QyxJQUErQyxFQUMvQyxTQUFpQyxFQUNqQyxNQUFrRCxFQUNsRCxHQUFHLElBQVc7SUFFZCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJ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Q2xCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgRW51bVR5cGUsIElMb29rdXBEYXRhUHJvdmlkZXIsIFR5cGVSZWdpc3RyeX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmlsdGVyTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9maWx0ZXInO1xuaW1wb3J0IHtFbnVtRGVzY3JpcHRvciwgZW51bU1vZGVsR2VuZXJpY30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5pbXBvcnQge01vZGVsQ2xhc3NEZXNjcmlwdG9yLCBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbC9jbGFzcyc7XG5pbXBvcnQge0NvbHVtbkRlc2NyaXB0b3IsIENvbHVtbkRpc3BsYXlUeXBlRW51bSwgQ29sdW1uVHlwZUVudW0sIFRhYmxlRGVzY3JpcHRvckluc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcblxuaW1wb3J0IHtnZXRUYWJsZUNsYXNzQXR0cmlidXRlRGVmfSBmcm9tICcuL2NsYXNzLXRhYmxlLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuaW1wb3J0IHtUYWJsZUNsYXNzQXR0cmlidXRlRGVmfSBmcm9tICcuL2NsYXNzLXRhYmxlLWF0dHJpYnV0ZS5tb2RlbCc7XG5cbi8qKlxuICogZ2VuZXJhdGVzIGNvbHVtbiBiYXNlZCBvbiBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0gZGVzYyBUYWJsZSBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gYXR0cmlidXRlIGF0dHJpYnV0ZSBtYXBcbiAqIEBwYXJhbSBjb2x1bW4gaWYgcHJvdmlkZWQsIHJlcGxhY2VkIGJ5IG5ldywgb3RoZXJ3aXNlIG5ldyBpcyBjcmVhdGVkXG4gKiBAcGFyYW0gYXJncyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwc2VydFRhYmxlQ29sdW1uRnJvbUF0dHJpYnV0ZURlZjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbD4oXG4gICAgZGVzYzogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sXG4gICAgYXR0cmlidXRlOiBUYWJsZUNsYXNzQXR0cmlidXRlRGVmLFxuICAgIGNvbHVtbj86IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWw+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4pOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsPiB7XG4gICAgaWYgKGNvbHVtbiA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbiA9IGRlc2MuYWRkQ29sdW1uVW5zYWZlKGF0dHJpYnV0ZS5uYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cmlidXRlLmNvbHVtblR5cGUgPT09IENvbHVtblR5cGVFbnVtLkVudW0gJiYgYXJncy5sZW5ndGggPT09IDAgJiYgYXR0cmlidXRlLmVudW1UeXBlKSB7XG4gICAgICAgIGFyZ3MgPSBbZW51bU1vZGVsR2VuZXJpYyhhdHRyaWJ1dGUuZW51bVR5cGUpXTtcbiAgICB9XG5cbiAgICBjb2x1bW4gPSBjb2x1bW4uYXNUeXBlKGF0dHJpYnV0ZS5jb2x1bW5UeXBlLCBhdHRyaWJ1dGUuY29sdW1uRGlzcGxheVR5cGUsIC4uLmFyZ3MpO1xuICAgIGlmIChhdHRyaWJ1dGUuY2xhc3NUeXBlKSB7XG4gICAgICAgIGNvbnN0IHRpdGxlUHJvcGVydHkgPSBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZShhdHRyaWJ1dGUuY2xhc3NUeXBlKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aXRsZVByb3BlcnR5KSB7XG4gICAgICAgICAgICBjb2x1bW4ud2l0aEdldHRlcih2YWx1ZSA9PiB2YWx1ZT8uW3RpdGxlUHJvcGVydHkgYXMga2V5b2Ygb2JqZWN0XSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBkZXNjLmFkZEZpbHRlckZyb21Db2x1bW5EZXNjcmlwdG9yVW5zYWZlKGNvbHVtbiwgZmFsc2UpO1xuICAgICAgICBkZXNjLndpdGhTb3J0VW5zYWZlKGNvbHVtbi5wcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbjtcbn1cblxuLyoqXG4gKiBkZWZpbmVzIG1vZGlmaWVkIHR5cGUgb2YgY29sdW1uXG4gKiBETyBOT1QgVVNFIHdpdGggZW51bSAodXNlIHdpdGhDdXN0b21FbnVtVHlwZSlcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIHRhYmxlIGRlc2NyaXB0b3JcbiAqIEBwYXJhbSBwcm9wZXJ0eSBjb2x1bW4gbmFtZVxuICogQHBhcmFtIGNvbHVtblR5cGUgbW9kaWZpZWQgdHlwZVxuICogQHBhcmFtIGFyZ3MgYWRkaXRpb25hbCBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0gY29sdW1uRGlzcGxheVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxlQ2xhc3NBdHRyaWJ1dGVDb2x1bW5UeXBlPFxuICAgIFRhYmxlTW9kZWwsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBUYWJsZU1vZGVsLFxuICAgIENvbHVtbk1vZGVsID0gTm9uTnVsbGFibGU8VGFibGVNb2RlbFtQcm9wZXJ0eV0+LFxuICAgIENvbHVtblZhbHVlID0gVGFibGVNb2RlbFtQcm9wZXJ0eV1cbj4oXG4gICAgZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIGNvbHVtblR5cGU/OiBDb2x1bW5UeXBlRW51bSxcbiAgICBjb2x1bW5EaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuKTogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG1vZGlmeVRhYmxlQ2xhc3NBdHRyaWJ1dGVDb2x1bW5UeXBlVW5zYWZlPFRhYmxlTW9kZWwsIENvbHVtbk1vZGVsLCBDb2x1bW5WYWx1ZT4oZGVzY3JpcHRvciwgcHJvcGVydHkgYXMgc3RyaW5nLCBjb2x1bW5UeXBlLCBjb2x1bW5EaXNwbGF5VHlwZSwgLi4uYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZnlUYWJsZUNsYXNzQXR0cmlidXRlQ29sdW1uVHlwZVVuc2FmZTxUYWJsZU1vZGVsLCBDb2x1bW5Nb2RlbCA9IGFueSwgQ29sdW1uVmFsdWUgPSBDb2x1bW5Nb2RlbD4oXG4gICAgZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sXG4gICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICBjb2x1bW5UeXBlPzogQ29sdW1uVHlwZUVudW0sXG4gICAgY29sdW1uRGlzcGxheVR5cGU/OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0sXG4gICAgLi4uYXJnczogYW55W11cbik6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB8IG51bGwge1xuICAgIGlmICghKGRlc2NyaXB0b3IubW9kZWwgaW5zdGFuY2VvZiBNb2RlbENsYXNzRGVzY3JpcHRvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYHdpdGhDb2x1bW5Nb2RpZmllZFR5cGUgY2Fubm90IGJlIGV4ZWN1dGVkIGZvciBwcm9wZXJ0eSAke3Byb3BlcnR5fTogTW9kZWwgZGVzY3JpcHRvciBpcyBub3Qgb2YgdHlwZSAnTW9kZWxDbGFzc0Rlc2NyaXB0b3InIGlzIG5vdCBkZWZpbmVkLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVEZWYgPSBnZXRUYWJsZUNsYXNzQXR0cmlidXRlRGVmKGRlc2NyaXB0b3IubW9kZWwuY2xhc3NUeXBlKS5maW5kKGF0dHIgPT4gYXR0ci5uYW1lID09PSBwcm9wZXJ0eSk7XG5cbiAgICBpZiAoYXR0cmlidXRlRGVmICE9IG51bGwpIHtcbiAgICAgICAgYXR0cmlidXRlRGVmLmNvbHVtblR5cGUgPSBjb2x1bW5UeXBlID8/IGF0dHJpYnV0ZURlZi5jb2x1bW5UeXBlO1xuICAgICAgICBhdHRyaWJ1dGVEZWYuY29sdW1uRGlzcGxheVR5cGUgPSBjb2x1bW5EaXNwbGF5VHlwZSA/PyBhdHRyaWJ1dGVEZWYuY29sdW1uRGlzcGxheVR5cGU7XG4gICAgICAgIHJldHVybiB1cHNlcnRUYWJsZUNvbHVtbkZyb21BdHRyaWJ1dGVEZWYoXG4gICAgICAgICAgICBkZXNjcmlwdG9yLFxuICAgICAgICAgICAgYXR0cmlidXRlRGVmLFxuICAgICAgICAgICAgZGVzY3JpcHRvci5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC5wcm9wZXJ0eSA9PT0gYXR0cmlidXRlRGVmLm5hbWUpLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIGRlZmluZXMgY3VzdG9tIGVudW0gdHlwZSBmb3IgY29sdW1uXG4gKiBAcGFyYW0gZGVzY3JpcHRvciB0YWJsZSBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gcHJvcGVydHkgY29sdW1uIG5hbWVcbiAqIEBwYXJhbSBlbnVtRGVzYyBFbnVtIGRlc2NyaXB0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZnlUYWJsZUNsYXNzQXR0cmlidXRlQ29sdW1uRW51bTxcbiAgICBUYWJsZU1vZGVsLFxuICAgIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgVGFibGVNb2RlbCxcbiAgICBFbnVtIGV4dGVuZHMgTm9uTnVsbGFibGU8VGFibGVNb2RlbFtQcm9wZXJ0eV0+LFxuICAgIENvbHVtbk1vZGVsID0gTm9uTnVsbGFibGU8VGFibGVNb2RlbFtQcm9wZXJ0eV0+LFxuICAgIENvbHVtblZhbHVlID0gVGFibGVNb2RlbFtQcm9wZXJ0eV1cbj4oZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sIHByb3BlcnR5OiBQcm9wZXJ0eSwgZW51bURlc2M/OiBFbnVtRGVzY3JpcHRvcjxFbnVtPik6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB8IG51bGwge1xuICAgIHJldHVybiB0YWJsZURlc2NyaXB0b3JNb2RpZnlFbnVtQ29sdW1uVW5zYWZlPFRhYmxlTW9kZWwsIEVudW0sIENvbHVtbk1vZGVsLCBDb2x1bW5WYWx1ZT4oZGVzY3JpcHRvciwgcHJvcGVydHkgYXMgc3RyaW5nLCBlbnVtRGVzYyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZURlc2NyaXB0b3JNb2RpZnlFbnVtQ29sdW1uVW5zYWZlPFRhYmxlTW9kZWwsIEVudW0gPSBhbnksIENvbHVtbk1vZGVsID0gYW55LCBDb2x1bW5WYWx1ZSA9IENvbHVtbk1vZGVsPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGVudW1EZXNjPzogRW51bURlc2NyaXB0b3I8RW51bT5cbik6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB8IG51bGwge1xuICAgIGlmICghKGRlc2NyaXB0b3IubW9kZWwgaW5zdGFuY2VvZiBNb2RlbENsYXNzRGVzY3JpcHRvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYHdpdGhDb2x1bW5Nb2RpZmllZEVudW0gY2Fubm90IGJlIGV4ZWN1dGVkIGZvciBwcm9wZXJ0eSAke3Byb3BlcnR5fTogTW9kZWwgZGVzY3JpcHRvciBpcyBub3Qgb2YgdHlwZSAnTW9kZWxDbGFzc0Rlc2NyaXB0b3InIGlzIG5vdCBkZWZpbmVkLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVEZWYgPSBnZXRUYWJsZUNsYXNzQXR0cmlidXRlRGVmKGRlc2NyaXB0b3IubW9kZWwuY2xhc3NUeXBlKS5maW5kKGF0dHIgPT4gYXR0ci5uYW1lID09PSBwcm9wZXJ0eSk7XG5cbiAgICBpZiAoYXR0cmlidXRlRGVmICE9IG51bGwpIHtcbiAgICAgICAgYXR0cmlidXRlRGVmLmNvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5FbnVtO1xuICAgICAgICB1cHNlcnRUYWJsZUNvbHVtbkZyb21BdHRyaWJ1dGVEZWYoXG4gICAgICAgICAgICBkZXNjcmlwdG9yLFxuICAgICAgICAgICAgYXR0cmlidXRlRGVmLFxuICAgICAgICAgICAgZGVzY3JpcHRvci5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpLFxuICAgICAgICAgICAgZW51bURlc2MgPz8gZW51bU1vZGVsR2VuZXJpYyhUeXBlUmVnaXN0cnkuZ2V0KCkuZmluZEVudW0oYXR0cmlidXRlRGVmLnR5cGUpIGFzIEVudW1UeXBlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIG1vZGlmaWVzIGNvbHVtbiB3aXRoIGNsYXNzIGFuZCBsb29rdXAgcHJvdmlkZXJcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIHRhYmxlIGRlc2NyaXB0b3JcbiAqIEBwYXJhbSBwcm9wZXJ0eSBjb2x1bW4gbmFtZVxuICogQHBhcmFtIGxvb2t1cFByb3ZpZGVyIGxvb2t1cFByb3ZpZGVyIGZvciBjbGFzc1xuICogQHBhcmFtIG9wdGlvbnNMYWJlbFByb3BlcnR5XG4gKiBAcGFyYW0gZmlsdGVyUHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxlQ29sdW1uRmlsdGVyTG9va3VwPFRhYmxlTW9kZWwsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgVGFibGVNb2RlbCwgU2VydmljZSwgQ29sdW1uTW9kZWwgPSBOb25OdWxsYWJsZTxUYWJsZU1vZGVsW1Byb3BlcnR5XT4+KFxuICAgIGRlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBsb29rdXBQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8Q29sdW1uTW9kZWwsIGFueT4sXG4gICAgb3B0aW9uc0xhYmVsUHJvcGVydHk/OiBrZXlvZiBDb2x1bW5Nb2RlbCxcbiAgICBmaWx0ZXJQcm9wZXJ0eT86IGtleW9mIENvbHVtbk1vZGVsXG4pOiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBTZXJ2aWNlPiB8IG51bGwge1xuICAgIHJldHVybiBtb2RpZnlUYWJsZUNvbHVtbkZpbHRlckxvb2t1cFVuc2FmZTxUYWJsZU1vZGVsLCBTZXJ2aWNlLCBDb2x1bW5Nb2RlbD4oXG4gICAgICAgIGRlc2NyaXB0b3IsXG4gICAgICAgIHByb3BlcnR5IGFzIHN0cmluZyxcbiAgICAgICAgbG9va3VwUHJvdmlkZXIsXG4gICAgICAgIG9wdGlvbnNMYWJlbFByb3BlcnR5IGFzIHN0cmluZyxcbiAgICAgICAgZmlsdGVyUHJvcGVydHkgYXMgc3RyaW5nXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxlQ29sdW1uRmlsdGVyTG9va3VwVW5zYWZlPFRhYmxlTW9kZWwsIFNlcnZpY2UsIENvbHVtbk1vZGVsPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGxvb2t1cFByb3ZpZGVyPzogSUxvb2t1cERhdGFQcm92aWRlcjxDb2x1bW5Nb2RlbCwgU2VydmljZT4sXG4gICAgb3B0aW9uc0xhYmVsUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgZmlsdGVyUHJvcGVydHk/OiBzdHJpbmdcbik6IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIFNlcnZpY2U+IHwgbnVsbCB7XG4gICAgY29uc3QgY29sdW1uID0gZGVzY3JpcHRvci5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xuICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gZGVzY3JpcHRvci5hZGRGaWx0ZXJMb29rdXBVbnNhZmUoY29sdW1uLnByb3BlcnR5LCBsb29rdXBQcm92aWRlciwgZmlsdGVyUHJvcGVydHkpO1xuICAgICAgICBpZiAob3B0aW9uc0xhYmVsUHJvcGVydHkpIHtcbiAgICAgICAgICAgIGZpbHRlci53aXRoT3B0aW9uc0xhYmVsUHJvcGVydHlVbnNhZmUob3B0aW9uc0xhYmVsUHJvcGVydHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuIl19","import { modelClass } from '@mediusinc/mng-commons/model/class';\nimport { TableDescriptorInst } from '@mediusinc/mng-commons/table/api';\nimport { getTableClassAttributeDef } from './class-table-attribute-converter';\nimport { upsertTableColumnFromAttributeDef } from './class-table-descriptor-helpers';\nexport function tableDescriptorFromClass(type, opts) {\n return new TableDescriptorInst(modelClass(type, opts));\n}\n/**\n * generates descriptor based on type attribute definition\n * @param type class type\n * @param attributes\n * @param opts\n */\nexport function tableDescriptorFromClassAttrsDef(type, attributes, opts) {\n const descriptor = new TableDescriptorInst(modelClass(type, opts), true);\n (attributes ?? getTableClassAttributeDef(type))\n .filter(attr => !attr.type.includes('Set') && !attr.type.includes('Array'))\n .forEach(attr => upsertTableColumnFromAttributeDef(descriptor, attr));\n return descriptor;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGUtZGVzY3JpcHRvci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL2NsYXNzL3NyYy9jbGFzcy10YWJsZS1kZXNjcmlwdG9yLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBZ0MsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUU1RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRixNQUFNLFVBQVUsd0JBQXdCLENBQ3BDLElBQTJCLEVBQzNCLElBQWdEO0lBRWhELE9BQU8sSUFBSSxtQkFBbUIsQ0FBNkIsVUFBVSxDQUFhLElBQTZCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1SCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0NBQWdDLENBQzVDLElBQTJCLEVBQzNCLFVBQXFDLEVBQ3JDLElBQWdEO0lBRWhELE1BQU0sVUFBVSxHQUFHLElBQUksbUJBQW1CLENBQTZCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckcsQ0FBQyxVQUFVLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7bW9kZWxDbGFzc30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbC9jbGFzcyc7XG5pbXBvcnQge1RhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlLCBUYWJsZURlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5cbmltcG9ydCB7Z2V0VGFibGVDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9jbGFzcy10YWJsZS1hdHRyaWJ1dGUtY29udmVydGVyJztcbmltcG9ydCB7VGFibGVDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9jbGFzcy10YWJsZS1hdHRyaWJ1dGUubW9kZWwnO1xuaW1wb3J0IHt1cHNlcnRUYWJsZUNvbHVtbkZyb21BdHRyaWJ1dGVEZWZ9IGZyb20gJy4vY2xhc3MtdGFibGUtZGVzY3JpcHRvci1oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGVzY3JpcHRvckZyb21DbGFzczxUYWJsZU1vZGVsLCBTb3J0cyA9IGtleW9mIFRhYmxlTW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZU1vZGVsPihcbiAgICB0eXBlOiBDbGFzc1R5cGU8VGFibGVNb2RlbD4sXG4gICAgb3B0cz86IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWw+XG4pOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgcmV0dXJuIG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbENsYXNzPFRhYmxlTW9kZWw+KHR5cGUgYXMgQ2xhc3NUeXBlPFRhYmxlTW9kZWw+LCBvcHRzKSk7XG59XG5cbi8qKlxuICogZ2VuZXJhdGVzIGRlc2NyaXB0b3IgYmFzZWQgb24gdHlwZSBhdHRyaWJ1dGUgZGVmaW5pdGlvblxuICogQHBhcmFtIHR5cGUgY2xhc3MgdHlwZVxuICogQHBhcmFtIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZURlc2NyaXB0b3JGcm9tQ2xhc3NBdHRyc0RlZjxUYWJsZU1vZGVsLCBTb3J0cyA9IGtleW9mIFRhYmxlTW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZU1vZGVsPihcbiAgICB0eXBlOiBDbGFzc1R5cGU8VGFibGVNb2RlbD4sXG4gICAgYXR0cmlidXRlcz86IFRhYmxlQ2xhc3NBdHRyaWJ1dGVEZWZbXSxcbiAgICBvcHRzPzogVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8VGFibGVNb2RlbD5cbik6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsQ2xhc3ModHlwZSwgb3B0cyksIHRydWUpO1xuICAgIChhdHRyaWJ1dGVzID8/IGdldFRhYmxlQ2xhc3NBdHRyaWJ1dGVEZWYodHlwZSkpXG4gICAgICAgIC5maWx0ZXIoYXR0ciA9PiAhYXR0ci50eXBlLmluY2x1ZGVzKCdTZXQnKSAmJiAhYXR0ci50eXBlLmluY2x1ZGVzKCdBcnJheScpKVxuICAgICAgICAuZm9yRWFjaChhdHRyID0+IHVwc2VydFRhYmxlQ29sdW1uRnJvbUF0dHJpYnV0ZURlZihkZXNjcmlwdG9yLCBhdHRyKSk7XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLXRhYmxlLWFwaS1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlL2FwaS9jbGFzcy9zcmMvbWVkaXVzaW5jLW1uZy1jb21tb25zLXRhYmxlLWFwaS1jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-table-api-class.mjs","sources":["../../table/api/class/src/class-table-attribute-converter.ts","../../table/api/class/src/class-table-data-provider.factory.ts","../../table/api/class/src/class-table-descriptor-helpers.ts","../../table/api/class/src/class-table-descriptor.factory.ts","../../table/api/class/src/mediusinc-mng-commons-table-api-class.ts"],"sourcesContent":["import {ClassAttributeDef, ClassType, CommonsInternalError, EnumType, TypeRegistry} from '@mediusinc/mng-commons/core';\nimport {ColumnDisplayTypeEnum, ColumnTypeEnum} from '@mediusinc/mng-commons/table/api';\n\nimport {TableClassAttributeDef} from './class-table-attribute.model';\n\n/**\n * converts string type to column type enum, default is string\n * @param attributeType\n */\nexport function getColumnTypeFromClassAttributeDefType(attributeType: string): ColumnTypeEnum {\n const typeRegistry = TypeRegistry.get();\n if (typeRegistry.findEnum(attributeType) as EnumType) {\n attributeType = 'enum';\n } else if (typeRegistry.findType(attributeType) as ClassType<any>) {\n attributeType = 'class';\n }\n\n switch (attributeType.toLowerCase()) {\n case 'number':\n case 'currency':\n return ColumnTypeEnum.Number;\n case 'boolean':\n return ColumnTypeEnum.Boolean;\n case 'date':\n return ColumnTypeEnum.Date;\n case 'enum':\n return ColumnTypeEnum.Enum;\n case 'custom':\n return ColumnTypeEnum.Custom;\n case 'class':\n return ColumnTypeEnum.String;\n case 'string':\n default:\n return ColumnTypeEnum.String;\n }\n}\n\nexport function getColumnDisplayTypeFromColumnType(columnType: ColumnTypeEnum, attributeType: string): ColumnDisplayTypeEnum {\n switch (columnType) {\n case ColumnTypeEnum.Number:\n return attributeType === 'currency' ? ColumnDisplayTypeEnum.Currency : ColumnDisplayTypeEnum.Number;\n case ColumnTypeEnum.Boolean:\n return ColumnDisplayTypeEnum.Boolean;\n case ColumnTypeEnum.Date:\n return ColumnDisplayTypeEnum.Date;\n case ColumnTypeEnum.Enum:\n return ColumnDisplayTypeEnum.Enum;\n case ColumnTypeEnum.Custom:\n return ColumnDisplayTypeEnum.Component;\n case ColumnTypeEnum.String:\n default:\n return ColumnDisplayTypeEnum.String;\n }\n}\n\nexport function expandClassAttributeDefWithTableDef(attributes?: Array<ClassAttributeDef> | null): TableClassAttributeDef[] {\n if (!attributes) {\n throw new CommonsInternalError('Class attribute definition is null, problem with TypeRegistry::findAttributesDefinitionByClassType?', {name: 'TableviewUtilsError'});\n }\n\n const typeRegistry = TypeRegistry.get();\n const tableClassAttributeDef: TableClassAttributeDef[] = [];\n for (const attribute of attributes) {\n const enumType = typeRegistry.findEnum(attribute.type);\n const columnType = enumType ? ColumnTypeEnum.Enum : getColumnTypeFromClassAttributeDefType(attribute.type);\n tableClassAttributeDef.push({\n name: attribute.name,\n baseName: attribute.baseName,\n type: attribute.type,\n subtype: attribute.subtype,\n columnType: enumType ? ColumnTypeEnum.Enum : getColumnTypeFromClassAttributeDefType(attribute.type),\n columnDisplayType: getColumnDisplayTypeFromColumnType(columnType, attribute.type),\n enumType: typeRegistry.findEnum(attribute.type) as EnumType,\n classType: typeRegistry.findType(attribute.type) as ClassType<any>\n });\n }\n\n return tableClassAttributeDef;\n}\n\n/**\n * returns attributes from class type and extends to typed def with column and field enum type\n * @param type class type\n */\nexport function getTableClassAttributeDef<T>(type: ClassType<T>): TableClassAttributeDef[] {\n return expandClassAttributeDefWithTableDef(TypeRegistry.get().findAttributesDefinitionByClassType(type));\n}\n","import {ClassType, ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {TableDataProviderInst} from '@mediusinc/mng-commons/table/api';\n\nexport function tableDataProviderFromClass<Model, Sorts = keyof Model, Filters extends keyof any = keyof Model>(\n type: ClassType<Model>\n): TableDataProviderInst<Model, undefined, Sorts, Filters, undefined>;\nexport function tableDataProviderFromClass<Model, Service = any, Sorts = keyof Model, Filters extends keyof any = keyof Model>(\n type: ClassType<Model>,\n serviceType: ServiceClassType<Service>\n): TableDataProviderInst<Model, Service, Sorts, Filters, ServiceClassType<Service>>;\nexport function tableDataProviderFromClass<Model, Service = any, Sorts = keyof Model, Filters extends keyof any = keyof Model, ServiceClass = ServiceClassType<Service>>(\n type: ClassType<Model>,\n serviceType?: ServiceClass\n) {\n return new TableDataProviderInst<Model, Service, Sorts, Filters, ServiceClass>(serviceType as ServiceClass);\n}\n","import {CommonsInternalError, EnumType, ILookupDataProvider, TypeRegistry} from '@mediusinc/mng-commons/core';\nimport {FilterLookupDescriptor} from '@mediusinc/mng-commons/filter';\nimport {EnumDescriptor, enumModelGeneric} from '@mediusinc/mng-commons/model';\nimport {ModelClassDescriptor, findClassTitleAttribute} from '@mediusinc/mng-commons/model/class';\nimport {ColumnDescriptor, ColumnDisplayTypeEnum, ColumnTypeEnum, TableDescriptorInst} from '@mediusinc/mng-commons/table/api';\n\nimport {getTableClassAttributeDef} from './class-table-attribute-converter';\nimport {TableClassAttributeDef} from './class-table-attribute.model';\n\n/**\n * generates column based on attributes\n * @param desc Table descriptor\n * @param attribute attribute map\n * @param column if provided, replaced by new, otherwise new is created\n * @param args additional parameters\n */\nexport function upsertTableColumnFromAttributeDef<ColumnModel, TableModel>(\n desc: TableDescriptorInst<TableModel, any, any>,\n attribute: TableClassAttributeDef,\n column?: ColumnDescriptor<ColumnModel, TableModel>,\n ...args: any[]\n): ColumnDescriptor<ColumnModel, TableModel> {\n if (column == null) {\n column = desc.addColumnUnsafe(attribute.name);\n }\n\n if (attribute.columnType === ColumnTypeEnum.Enum && args.length === 0 && attribute.enumType) {\n args = [enumModelGeneric(attribute.enumType)];\n }\n\n column = column.asType(attribute.columnType, attribute.columnDisplayType, ...args);\n if (attribute.classType) {\n const titleProperty = findClassTitleAttribute(attribute.classType) ?? undefined;\n if (titleProperty) {\n column.withGetter(value => value?.[titleProperty as keyof object]);\n }\n } else {\n desc.addFilterFromColumnDescriptorUnsafe(column, false);\n desc.withSortUnsafe(column.property);\n }\n\n return column;\n}\n\n/**\n * defines modified type of column\n * DO NOT USE with enum (use withCustomEnumType)\n * @param descriptor table descriptor\n * @param property column name\n * @param columnType modified type\n * @param args additional attributes\n * @param columnDisplayType\n */\nexport function modifyTableClassAttributeColumnType<\n TableModel,\n Property extends keyof TableModel,\n ColumnModel = NonNullable<TableModel[Property]>,\n ColumnValue = TableModel[Property]\n>(\n descriptor: TableDescriptorInst<TableModel, any, any>,\n property: Property,\n columnType?: ColumnTypeEnum,\n columnDisplayType?: ColumnDisplayTypeEnum,\n ...args: any[]\n): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null {\n return modifyTableClassAttributeColumnTypeUnsafe<TableModel, ColumnModel, ColumnValue>(descriptor, property as string, columnType, columnDisplayType, ...args);\n}\n\nexport function modifyTableClassAttributeColumnTypeUnsafe<TableModel, ColumnModel = any, ColumnValue = ColumnModel>(\n descriptor: TableDescriptorInst<TableModel, any, any>,\n property: string,\n columnType?: ColumnTypeEnum,\n columnDisplayType?: ColumnDisplayTypeEnum,\n ...args: any[]\n): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null {\n if (!(descriptor.model instanceof ModelClassDescriptor)) {\n throw new CommonsInternalError(\n `withColumnModifiedType cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`\n );\n }\n\n const attributeDef = getTableClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);\n\n if (attributeDef != null) {\n attributeDef.columnType = columnType ?? attributeDef.columnType;\n attributeDef.columnDisplayType = columnDisplayType ?? attributeDef.columnDisplayType;\n return upsertTableColumnFromAttributeDef(\n descriptor,\n attributeDef,\n descriptor.columns.find(col => col.property === attributeDef.name),\n ...args\n );\n }\n\n return null;\n}\n\n/**\n * defines custom enum type for column\n * @param descriptor table descriptor\n * @param property column name\n * @param enumDesc Enum descriptor.\n */\nexport function modifyTableClassAttributeColumnEnum<\n TableModel,\n Property extends keyof TableModel,\n Enum extends NonNullable<TableModel[Property]>,\n ColumnModel = NonNullable<TableModel[Property]>,\n ColumnValue = TableModel[Property]\n>(descriptor: TableDescriptorInst<TableModel, any, any>, property: Property, enumDesc?: EnumDescriptor<Enum>): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null {\n return tableDescriptorModifyEnumColumnUnsafe<TableModel, Enum, ColumnModel, ColumnValue>(descriptor, property as string, enumDesc);\n}\n\nexport function tableDescriptorModifyEnumColumnUnsafe<TableModel, Enum = any, ColumnModel = any, ColumnValue = ColumnModel>(\n descriptor: TableDescriptorInst<TableModel, any, any>,\n property: string,\n enumDesc?: EnumDescriptor<Enum>\n): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null {\n if (!(descriptor.model instanceof ModelClassDescriptor)) {\n throw new CommonsInternalError(\n `withColumnModifiedEnum cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`\n );\n }\n\n const attributeDef = getTableClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);\n\n if (attributeDef != null) {\n attributeDef.columnType = ColumnTypeEnum.Enum;\n upsertTableColumnFromAttributeDef(\n descriptor,\n attributeDef,\n descriptor.columns.find(col => col.property === property),\n enumDesc ?? enumModelGeneric(TypeRegistry.get().findEnum(attributeDef.type) as EnumType)\n );\n }\n\n return null;\n}\n\n/**\n * modifies column with class and lookup provider\n * @param descriptor table descriptor\n * @param property column name\n * @param lookupProvider lookupProvider for class\n * @param optionsLabelProperty\n * @param filterProperty\n */\nexport function modifyTableColumnFilterLookup<TableModel, Property extends keyof TableModel, Service, ColumnModel = NonNullable<TableModel[Property]>>(\n descriptor: TableDescriptorInst<TableModel, any, any>,\n property: Property,\n lookupProvider?: ILookupDataProvider<ColumnModel, any>,\n optionsLabelProperty?: keyof ColumnModel,\n filterProperty?: keyof ColumnModel\n): FilterLookupDescriptor<ColumnModel, TableModel, Service> | null {\n return modifyTableColumnFilterLookupUnsafe<TableModel, Service, ColumnModel>(\n descriptor,\n property as string,\n lookupProvider,\n optionsLabelProperty as string,\n filterProperty as string\n );\n}\n\nexport function modifyTableColumnFilterLookupUnsafe<TableModel, Service, ColumnModel>(\n descriptor: TableDescriptorInst<TableModel, any, any>,\n property: string,\n lookupProvider?: ILookupDataProvider<ColumnModel, Service>,\n optionsLabelProperty?: string,\n filterProperty?: string\n): FilterLookupDescriptor<ColumnModel, TableModel, Service> | null {\n const column = descriptor.columns.find(col => col.property === property);\n if (column) {\n const filter = descriptor.addFilterLookupUnsafe(column.property, lookupProvider, filterProperty);\n if (optionsLabelProperty) {\n filter.withOptionsLabelPropertyUnsafe(optionsLabelProperty);\n }\n return filter;\n }\n return null;\n}\n","import {ClassType} from '@mediusinc/mng-commons/core';\nimport {modelClass} from '@mediusinc/mng-commons/model/class';\nimport {TableDescriptorCreateOptsType, TableDescriptorInst} from '@mediusinc/mng-commons/table/api';\n\nimport {getTableClassAttributeDef} from './class-table-attribute-converter';\nimport {TableClassAttributeDef} from './class-table-attribute.model';\nimport {upsertTableColumnFromAttributeDef} from './class-table-descriptor-helpers';\n\nexport function tableDescriptorFromClass<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(\n type: ClassType<TableModel>,\n opts?: TableDescriptorCreateOptsType<TableModel>\n): TableDescriptorInst<TableModel, Sorts, Filters> {\n return new TableDescriptorInst<TableModel, Sorts, Filters>(modelClass<TableModel>(type as ClassType<TableModel>, opts));\n}\n\n/**\n * generates descriptor based on type attribute definition\n * @param type class type\n * @param attributes\n * @param opts\n */\nexport function tableDescriptorFromClassAttrsDef<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(\n type: ClassType<TableModel>,\n attributes?: TableClassAttributeDef[],\n opts?: TableDescriptorCreateOptsType<TableModel>\n): TableDescriptorInst<TableModel, Sorts, Filters> {\n const descriptor = new TableDescriptorInst<TableModel, Sorts, Filters>(modelClass(type, opts), true);\n (attributes ?? getTableClassAttributeDef(type))\n .filter(attr => !attr.type.includes('Set') && !attr.type.includes('Array'))\n .forEach(attr => upsertTableColumnFromAttributeDef(descriptor, attr));\n return descriptor;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}