@mediusinc/mng-commons-data-api-class 6.0.0-rc.4 → 6.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs +5 -7
  2. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs.map +1 -1
  3. package/openapi/model.mustache +1 -1
  4. package/package.json +4 -10
  5. package/version-info.json +3 -3
  6. package/esm2022/index.mjs +0 -9
  7. package/esm2022/lib/models/query-result.model.mjs +0 -24
  8. package/esm2022/lib/serder/object-serializer.mjs +0 -184
  9. package/esm2022/lib/services/api.abstract.service.mjs +0 -55
  10. package/esm2022/lib/services/crud-api.abstract.service.mjs +0 -82
  11. package/esm2022/lib/services/get-all-api.abstract.service.mjs +0 -49
  12. package/esm2022/mediusinc-mng-commons-data-api-class.mjs +0 -5
  13. package/esm2022/tableview/index.mjs +0 -3
  14. package/esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs +0 -5
  15. package/esm2022/tableview/tableview-crud-create.mjs +0 -25
  16. package/esm2022/tableview/tableview-crud.data-provider.mjs +0 -50
  17. package/esm2022/v1/helpers/query-param-convert.mjs +0 -103
  18. package/esm2022/v1/helpers/tableview-crud-create.mjs +0 -22
  19. package/esm2022/v1/index.mjs +0 -22
  20. package/esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs +0 -5
  21. package/esm2022/v1/models/builders/query-param.builder.mjs +0 -83
  22. package/esm2022/v1/models/filter-match-type.model.mjs +0 -27
  23. package/esm2022/v1/models/filter-param.model.mjs +0 -33
  24. package/esm2022/v1/models/query-mode.model.mjs +0 -18
  25. package/esm2022/v1/models/query-param.model.mjs +0 -68
  26. package/esm2022/v1/models/query-result.model.mjs +0 -24
  27. package/esm2022/v1/provide.mjs +0 -56
  28. package/esm2022/v1/services/api.abstract.service.mjs +0 -72
  29. package/esm2022/v1/services/crud-api.abstract.service.mjs +0 -83
  30. package/esm2022/v1/services/get-all-api.abstract.service.mjs +0 -38
  31. package/esm2022/v1/services/tokens/data-api-class.token.mjs +0 -6
  32. package/esm2022/v1/tableview/tableview-crud.data-provider.mjs +0 -50
  33. package/esm2022/v1/utils/query-param-map.util.mjs +0 -57
@@ -1,6 +1,6 @@
1
1
  import { map } from 'rxjs/operators';
2
2
  import { CommonsInternalError, FilterMatchMode, valueToDefined, TypeRegistry, CommonsFeatureTypeEnum, COMMONS_MODULE_CONFIG_IT } from '@mediusinc/mng-commons/core';
3
- import { inject, Injector, InjectionToken, APP_INITIALIZER } from '@angular/core';
3
+ import { inject, Injector, InjectionToken, provideAppInitializer } from '@angular/core';
4
4
  import { modelClass } from '@mediusinc/mng-commons/model/class';
5
5
  import { TableviewDataProviderInst, TableviewInputBuilder, tableviewDescriptor } from '@mediusinc/mng-commons/tableview/api';
6
6
  import { HttpClient, HttpParams } from '@angular/common/http';
@@ -688,12 +688,10 @@ function withDataApiV1() {
688
688
  return {
689
689
  type: CommonsFeatureTypeEnum.DataApiAsClassV1,
690
690
  providers: [
691
- {
692
- provide: APP_INITIALIZER,
693
- useFactory: initializeDataApiObsolete,
694
- deps: [COMMONS_MODULE_CONFIG_IT],
695
- multi: true
696
- },
691
+ provideAppInitializer(() => {
692
+ const initializerFn = initializeDataApiObsolete(inject(COMMONS_MODULE_CONFIG_IT));
693
+ return initializerFn();
694
+ }),
697
695
  {
698
696
  provide: COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT,
699
697
  useValue: true
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-data-api-class-v1.mjs","sources":["../../v1/src/models/filter-match-type.model.ts","../../v1/src/models/filter-param.model.ts","../../v1/src/models/query-mode.model.ts","../../v1/src/models/query-param.model.ts","../../v1/src/models/builders/query-param.builder.ts","../../v1/src/helpers/query-param-convert.ts","../../v1/src/tableview/tableview-crud.data-provider.ts","../../v1/src/helpers/tableview-crud-create.ts","../../v1/src/models/query-result.model.ts","../../v1/src/services/tokens/data-api-class.token.ts","../../v1/src/services/api.abstract.service.ts","../../v1/src/services/get-all-api.abstract.service.ts","../../v1/src/services/crud-api.abstract.service.ts","../../v1/src/utils/query-param-map.util.ts","../../v1/src/provide.ts","../../v1/src/index.ts","../../v1/src/mediusinc-mng-commons-data-api-class-v1.ts"],"sourcesContent":["/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport enum MediusFilterMatchType {\n Equals = 'EQUALS',\n NotEquals = 'NOT_EQUALS',\n FromTo = 'FROM_TO',\n Contains = 'CONTAINS',\n StartsWith = 'STARTS_WITH',\n EndsWith = 'ENDS_WITH',\n In = 'IN',\n NotIn = 'NOT_IN',\n SmallerThan = 'SMALLER_THAN',\n GreaterThan = 'GREATER_THAN',\n Exists = 'EXISTS',\n DoesNotExist = 'DOES_NOT_EXIST'\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterMatchType} from './filter-match-type.model';\n\nexport class MediusFilterParam {\n property?: string;\n filterValue?: any;\n filterValueTo?: any;\n filterMatchType?: MediusFilterMatchType;\n filterMatchCaseSensitive?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'property',\n baseName: 'property',\n type: 'string'\n },\n {\n name: 'filterValue',\n baseName: 'filter_value',\n type: 'object'\n },\n {\n name: 'filterValueTo',\n baseName: 'filter_value_to',\n type: 'object'\n },\n {\n name: 'filterMatchType',\n baseName: 'filter_match_type',\n type: 'FilterMatchType'\n },\n {\n name: 'filterMatchCaseSensitive',\n baseName: 'filter_match_case_sensitive',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MediusFilterParam.attributeTypeMap;\n }\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport enum MediusQueryMode {\n Count = 'COUNT',\n Data = 'DATA',\n All = 'ALL'\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterParam} from './filter-param.model';\nimport {MediusQueryMode} from './query-mode.model';\n\nexport class MediusQueryParam {\n sortProperty?: Array<string>;\n sortAsc?: Array<boolean>;\n itemsOffset?: number;\n itemsPerPage?: number;\n filterParams?: Array<MediusFilterParam>;\n filterAllParam?: string;\n filterAllProperties?: Array<string>;\n validateProperties?: Array<string>;\n selectInTwoSteps?: boolean;\n sortEnumByOrdinal?: boolean;\n groupByProperties?: Array<string>;\n queryMode?: MediusQueryMode;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'sortProperty',\n baseName: 'sort_property',\n type: 'Array<string>'\n },\n {\n name: 'sortAsc',\n baseName: 'sort_asc',\n type: 'Array<boolean>'\n },\n {\n name: 'itemsOffset',\n baseName: 'items_offset',\n type: 'number'\n },\n {\n name: 'itemsPerPage',\n baseName: 'items_per_page',\n type: 'number'\n },\n {\n name: 'filterParams',\n baseName: 'filter_params',\n type: 'Array<FilterParam>'\n },\n {\n name: 'filterAllParam',\n baseName: 'filter_all_param',\n type: 'string'\n },\n {\n name: 'filterAllProperties',\n baseName: 'filter_all_properties',\n type: 'Array<string>'\n },\n {\n name: 'validateProperties',\n baseName: 'validate_properties',\n type: 'Array<string>'\n },\n {\n name: 'selectInTwoSteps',\n baseName: 'select_in_two_steps',\n type: 'boolean'\n },\n {\n name: 'sortEnumByOrdinal',\n baseName: 'sort_enum_by_ordinal',\n type: 'boolean'\n },\n {\n name: 'groupByProperties',\n baseName: 'group_by_properties',\n type: 'Array<string>'\n },\n {\n name: 'queryMode',\n baseName: 'query_mode',\n type: 'QueryMode'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MediusQueryParam.attributeTypeMap;\n }\n}\n","import {MediusFilterMatchType} from '../filter-match-type.model';\nimport {MediusFilterParam} from '../filter-param.model';\nimport {MediusQueryMode} from '../query-mode.model';\nimport {MediusQueryParam} from '../query-param.model';\n\nexport class MediusQueryParamBuilder {\n private constructor(private queryParam: MediusQueryParam) {}\n\n /**\n * Creates a new instance of `MediusQueryParamBuilder` with the specified `itemsPerPage` and `itemsOffset` values.\n *\n * @param {number} [itemsPerPage=50] - The number of items per page.\n * @param {number} [itemsOffset=0] - The offset value for the items.\n *\n * @returns {MediusQueryParamBuilder} A new instance of `MediusQueryParamBuilder`.\n *\n * @deprecated\n */\n public static create(itemsPerPage = 50, itemsOffset = 0): MediusQueryParamBuilder {\n const queryParam = new MediusQueryParam();\n queryParam.itemsPerPage = itemsPerPage;\n queryParam.itemsOffset = itemsOffset;\n queryParam.queryMode = MediusQueryMode.All;\n return new MediusQueryParamBuilder(queryParam);\n }\n\n /**\n * Creates a new instance of MediusQueryParamBuilder based on an existing MediusQueryParam object.\n *\n * @param {MediusQueryParam} queryParam - The existing MediusQueryParam object to create from.\n * @param {number} [itemsPerPage] - The number of items per page for the new instance. If not provided, default value is used.\n * @param {number} [itemsOffset] - The offset for the new instance. If not provided, default value is used.\n *\n * @returns {MediusQueryParamBuilder} - A new instance of MediusQueryParamBuilder.\n *\n * @deprecated\n */\n public static createFromExisting(queryParam: MediusQueryParam, itemsPerPage?: number, itemsOffset?: number): MediusQueryParamBuilder {\n queryParam.itemsPerPage = itemsPerPage ?? queryParam.itemsPerPage ?? 50;\n queryParam.itemsOffset = itemsOffset ?? queryParam.itemsOffset ?? 0;\n queryParam.queryMode = queryParam.queryMode ?? MediusQueryMode.All;\n return new MediusQueryParamBuilder(queryParam);\n }\n\n public withItemsPerPage(itemsPerPage: number): MediusQueryParamBuilder {\n this.queryParam.itemsPerPage = itemsPerPage;\n return this;\n }\n\n public withItemsOffset(itemsOffset: number): MediusQueryParamBuilder {\n this.queryParam.itemsOffset = itemsOffset;\n return this;\n }\n\n public withQueryMode(queryMode: MediusQueryMode): MediusQueryParamBuilder {\n this.queryParam.queryMode = queryMode;\n return this;\n }\n\n public withSort(property: string, asc = true): MediusQueryParamBuilder {\n if (!this.queryParam.sortProperty || !this.queryParam.sortAsc) {\n this.queryParam.sortProperty = [];\n this.queryParam.sortAsc = [];\n }\n this.queryParam.sortProperty.push(property);\n this.queryParam.sortAsc.push(asc);\n return this;\n }\n\n public withFilter(\n property: string,\n value: any,\n valueTo: any = undefined,\n matchType: MediusFilterMatchType = MediusFilterMatchType.Contains,\n matchCaseSensitive = false\n ): MediusQueryParamBuilder {\n if (!this.queryParam.filterParams) {\n this.queryParam.filterParams = [];\n }\n const filterParam = new MediusFilterParam();\n filterParam.property = property;\n filterParam.filterValue = value;\n filterParam.filterValueTo = valueTo;\n filterParam.filterMatchType = matchType;\n filterParam.filterMatchCaseSensitive = matchCaseSensitive;\n this.queryParam.filterParams.push(filterParam);\n return this;\n }\n\n public build(): MediusQueryParam {\n const queryParam = this.queryParam;\n this.queryParam = new MediusQueryParam();\n return queryParam;\n }\n}\n","import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, DataListFilter, DataListFilterValueType, DataListParams, DataListResult, FilterMatchMode} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParamBuilder} from '../models/builders/query-param.builder';\nimport {MediusFilterMatchType} from '../models/filter-match-type.model';\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {QueryParamMap} from '../utils/query-param-map.util';\n\nexport function toV1QueryParam(): undefined;\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(params: DataListParams<Sorts, Filters>, map?: QueryParamMap<Sorts, Filters>): MediusQueryParam;\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(\n params: DataListParams<Sorts, Filters> | undefined,\n map?: QueryParamMap<Sorts, Filters>\n): MediusQueryParam | undefined;\n/**\n * Converts the given DataListParams object to an ObsoleteV1QueryParam object.\n *\n * @param {DataListParams} params - The object to convert.\n * @param {QueryParamMap} map - The configuration object used to map sort and filter properties.\n *\n * @returns The converted ObsoleteV1QueryParam object if params is not null or undefined, otherwise returns undefined.\n *\n * @deprecated\n */\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(\n params?: DataListParams<Sorts, Filters>,\n map?: QueryParamMap<Sorts, Filters>\n): MediusQueryParam | undefined {\n if (!params) return undefined;\n\n const builder = MediusQueryParamBuilder.create();\n if (params.offset !== undefined) {\n builder.withItemsOffset(params.offset);\n }\n if (params.limit !== undefined) {\n builder.withItemsPerPage(params.limit);\n }\n if (Array.isArray(params.sort)) {\n params.sort.forEach(s => builder.withSort(map?.mapSort(s.property as string) ?? (s.property as string), s.ascending));\n }\n if (typeof params.filters === 'object') {\n Object.entries(params.filters).forEach(([key, value]) => {\n const filter = value as DataListFilter;\n if (filter.value != null) {\n const matchMode = filter.matchMode ? toV1FilterMatchType(filter.matchMode) : MediusFilterMatchType.Equals;\n let value: DataListFilterValueType = undefined;\n let valueTo: DataListFilterValueType = undefined;\n if (matchMode === MediusFilterMatchType.FromTo) {\n if (Array.isArray(filter.value)) {\n if (filter.value.length > 0) value = filter.value[0];\n if (filter.value.length > 1) valueTo = filter.value[1];\n }\n } else {\n value = filter.value;\n }\n\n builder.withFilter(map?.mapFilter(key) ?? key, value, valueTo, matchMode, filter.caseSensitive);\n }\n });\n }\n\n return builder.build();\n}\n\nexport function toV1FilterMatchType(match: string): MediusFilterMatchType {\n switch (match) {\n case FilterMatchMode.Equals:\n return MediusFilterMatchType.Equals;\n case FilterMatchMode.NotEquals:\n return MediusFilterMatchType.NotEquals;\n case FilterMatchMode.Contains:\n return MediusFilterMatchType.Contains;\n case FilterMatchMode.In:\n return MediusFilterMatchType.In;\n case FilterMatchMode.NotIn:\n return MediusFilterMatchType.NotIn;\n case FilterMatchMode.StartsWith:\n return MediusFilterMatchType.StartsWith;\n case FilterMatchMode.EndsWith:\n return MediusFilterMatchType.EndsWith;\n case FilterMatchMode.LessThan:\n return MediusFilterMatchType.SmallerThan;\n case FilterMatchMode.GreaterThan:\n return MediusFilterMatchType.GreaterThan;\n case FilterMatchMode.Between:\n return MediusFilterMatchType.FromTo;\n case FilterMatchMode.Exists:\n return MediusFilterMatchType.Exists;\n case FilterMatchMode.DoesNotExist:\n return MediusFilterMatchType.DoesNotExist;\n case FilterMatchMode.NotContains:\n case FilterMatchMode.LessThanOrEqualTo:\n case FilterMatchMode.GreaterThanOrEqualTo:\n default:\n throw new CommonsInternalError(`Filter match type '${match}' not supported.`);\n }\n}\n\n/**\n * Convert a query result from an obsolete API version 1 to a `DataListResult`\n *\n * @param {DataListParams} params - The data list parameters for the query\n * @param {Service} service - The service object used to make the API call\n * @param {function} apiOperation - The API operation function that returns an `Observable<MediusQueryResult<Item>>`\n * @param {any} additionalParams - Additional parameters to pass to the API operation function (optional)\n *\n * @returns {Observable<DataListResult<Item>>} - An observable that emits a `DataListResult` object\n *\n * @deprecated\n */\nexport function executeV1GetAll<Item, Service>(\n params: DataListParams,\n service: Service,\n apiOperation: (qp: MediusQueryParam, ...additionalParams: any) => Observable<MediusQueryResult<Item>>,\n additionalParams?: any\n): Observable<DataListResult<Item>> {\n const queryParam = toV1QueryParam(params);\n return apiOperation\n .bind(service)(queryParam, ...(additionalParams ?? []))\n .pipe(map(res => ({data: res.pageData ?? [], totalCount: res.allDataCount})));\n}\n","import {Type} from '@angular/core';\n\nimport {map} from 'rxjs/operators';\n\nimport {ClassType, ServiceClassType, valueToDefined} from '@mediusinc/mng-commons/core';\nimport {TableviewDataProviderInst} from '@mediusinc/mng-commons/tableview/api';\n\nimport {toV1QueryParam} from '../helpers/query-param-convert';\nimport {MediusQueryParamBuilder} from '../models/builders/query-param.builder';\nimport {MediusFilterMatchType} from '../models/filter-match-type.model';\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ICommonsCrudV1ApiService} from '../services/crud-api.abstract.service';\nimport {ICommonsGetAllV1ApiService} from '../services/get-all-api.abstract.service';\n\n/**\n * A data provider for a CRUD table view that uses an obsolete version 1 API service.\n *\n * @typeparam Model - The type of the data model.\n * @typeparam Service - The type of the API service.\n * @typeparam Sorts - The type for available sort keys on get all operation.\n * @typeparam Filters - The type for available sort keys on get all operation.\n *\n * @deprecated\n */\nexport class TableviewCrudV1DataProviderInst<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n> extends TableviewDataProviderInst<Model, Service, Sorts, Filters, ServiceClassType<Service>> {\n protected constructor(serviceType: Type<Service>, idPropertyName?: string, useGetAllForFetch = false) {\n super(serviceType);\n this.withGetAll((params, service, locale) =>\n service.getAllPost(toV1QueryParam(params), undefined, locale).pipe(map(res => ({data: res.pageData ?? [], totalCount: res.allDataCount ?? res.pageData?.length ?? 0})))\n );\n\n if (useGetAllForFetch) {\n const selectedIdPropertyName = idPropertyName ?? 'id';\n this.withFetch((id, service) => {\n const qp: MediusQueryParam = MediusQueryParamBuilder.create(10, 0).withFilter(selectedIdPropertyName, id, id, MediusFilterMatchType.Equals, true).build();\n return service!.getAllPost(qp).pipe(map(res => res.pageData![0]));\n });\n } else {\n this.withFetch((id, service, locale) => service!.getByIdGet!(id, undefined, locale));\n }\n this.withCreate((item, service) => service!.createPost!(valueToDefined(item)));\n this.withUpdate((id, item, service) => service!.updatePut!(id, valueToDefined(item)));\n this.withDelete((id, service, item) => service!.removeDelete!(id, item).pipe(map(res => res ?? undefined)));\n }\n}\n\nexport class TableviewCrudV1DataProvider extends TableviewCrudV1DataProviderInst<any, any> {\n /**\n * @deprecated\n */\n public static create<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(type: ClassType<Model>, serviceType: Type<Service>, idProperty?: keyof Model, useGetAllForFetch = false): TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters> {\n return TableviewCrudV1DataProvider.createUnsafe<Model, Service, Sorts, Filters>(type, serviceType, idProperty as string, useGetAllForFetch);\n }\n\n /**\n * @deprecated\n */\n public static createUnsafe<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(type: ClassType<Model>, serviceType: Type<Service>, idProperty?: string, useGetAllForFetch = false): TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters> {\n return new TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>(serviceType, idProperty, useGetAllForFetch);\n }\n}\n","import {Injector, inject} from '@angular/core';\n\nimport {ClassType, ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {modelClass} from '@mediusinc/mng-commons/model/class';\nimport {TableviewDescriptorInst, TableviewInputBuilder, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ICommonsCrudV1ApiService} from '../services/crud-api.abstract.service';\nimport {ICommonsGetAllV1ApiService} from '../services/get-all-api.abstract.service';\nimport {TableviewCrudV1DataProvider, TableviewCrudV1DataProviderInst} from '../tableview/tableview-crud.data-provider';\n\n/**\n * Creates a tableview with the given class, service based on data API v1 (obsolete) and optional class/model configuration.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudObsoleteV1ApiService` and `IMngGetAllObsoleteV1ApiService`.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns {Tableview} - The built table view.\n *\n * @deprecated\n */\nexport function tableviewCrudV1<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n>(\n type: ClassType<Model>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: ClassType<any> | string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters, undefined, Model, Model, Model, Model>,\n TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n const builder = new TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters, undefined, Model, Model, Model, Model>,\n TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>,\n Sorts,\n Filters\n >(\n tableviewDescriptor(modelClass(type, {id: modelConfig?.idProperty, title: modelConfig?.titleProperty, i18nBase: modelConfig?.i18nBaseKey})),\n TableviewCrudV1DataProvider.create(type, service, modelConfig?.idProperty),\n inject(Injector)\n );\n buildFn?.(builder);\n return builder.build();\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nexport class MediusQueryResult<T> implements IMediusQueryResult<T> {\n allDataCount?: number;\n pageData?: Array<T>;\n\n static discriminator?: string;\n\n static fromArray<T>(pageData: T[], allDataCount?: number) {\n const mqr = new MediusQueryResult<T>();\n mqr.allDataCount = allDataCount ?? pageData.length;\n mqr.pageData = pageData;\n return mqr;\n }\n\n static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'allDataCount',\n baseName: 'all_data_count',\n type: 'number'\n },\n {\n name: 'pageData',\n baseName: 'page_data',\n type: 'Array<T>'\n }\n ];\n\n static getAttributeTypeMap() {\n return MediusQueryResult.attributeTypeMap;\n }\n}\n\nexport interface IMediusQueryResult<T> {\n allDataCount?: number;\n pageData?: Array<T>;\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * Some fake token to incept needed types for query params and object serializer setup\n */\nexport const COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT = new InjectionToken<boolean>('CommonsDataApiClassObsolete');\n","import {HttpClient} from '@angular/common/http';\nimport {inject} from '@angular/core';\n\nimport {ObjectSerializer} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT} from './tokens/data-api-class.token';\n\n/**\n * This is an abstract class that provides base functionality for API services.\n *\n * @deprecated\n */\nexport abstract class ACommonsBaseV1ApiService {\n protected readonly objectSerializer: ObjectSerializer = ObjectSerializer.get();\n protected readonly http = inject(HttpClient);\n protected readonly obsoleteConfig = inject(COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT);\n\n protected abstract getBasePath(): string;\n\n protected abstract getServiceBasePath(): string | null;\n\n protected getUrl(...pathSegments: Array<string>): string {\n let baseUrl = this.getBasePath();\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.substring(0, baseUrl.length - 1);\n }\n const serviceBasePath = this.getServiceBasePath();\n let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');\n // omit first and last '/'\n if (path.startsWith('/')) {\n path = path.substring(1);\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n // replace any double '//' from path that could come from joining paths\n path = path.replace('//', '/');\n return `${baseUrl}/${path}`;\n }\n\n protected serializeQueryParam(queryParam: MediusQueryParam, type = 'QueryParam') {\n return this.objectSerializer.serialize(queryParam, type);\n }\n\n protected deserializeQueryResult<QR>(item: any, qrType: ClassType<QR>): QR {\n return this.deserializeClass(item, qrType);\n }\n\n protected deserializeClass<C>(item: any, type: ClassType<C>): C {\n return this.objectSerializer.deserializeClass(item, type);\n }\n\n protected deserializeClassArray<C>(item: any, type: ClassType<C>): Array<C> {\n return this.objectSerializer.deserializeClassArray(item, type);\n }\n\n protected serializeClass<C>(item: C, type: ClassType<C>): any {\n return this.objectSerializer.serializeClass(item, type);\n }\n\n protected serializeClassArray<C>(item: Array<C>, type: ClassType<C>): any {\n return this.objectSerializer.serializeClassArray(item, type);\n }\n}\n\n/**\n * Represents an abstract base class for the ACommonsV1ApiService.\n *\n * @typeparam T The main type of data to be handled by the service.\n *\n * @deprecated\n */\nexport abstract class ACommonsV1ApiService<T> extends ACommonsBaseV1ApiService {\n protected constructor(protected type: ClassType<T>) {\n super();\n }\n\n protected deserialize(item: any): T {\n return this.deserializeClass(item, this.type);\n }\n\n protected serialize(item: T): any {\n return this.serializeClass(item, this.type);\n }\n}\n","import {HttpParams} from '@angular/common/http';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {ClassType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ACommonsV1ApiService} from './api.abstract.service';\n\n/**\n * A service interface for getting paginated data results using POST method.\n *\n * @typeparam QRT The type of the query result in get all operation.\n *\n * @deprecated\n */\nexport interface ICommonsGetAllV1ApiService<QRT extends MediusQueryResult<any>> {\n getAllPost(queryParamBody?: MediusQueryParam, params?: HttpParams, locale?: string): Observable<QRT>;\n}\n\n/**\n * An abstract class representing a service for retrieving all obsolete entities.\n *\n * @typeparam T The main type of data to be handled by the service.\n * @typeparam QRT The type of the query result in get all operation.\n *\n * @deprecated\n */\nexport abstract class ACommonsGetAllV1ApiService<T, QRT extends MediusQueryResult<any>> extends ACommonsV1ApiService<T> implements ICommonsGetAllV1ApiService<QRT> {\n protected constructor(\n type: ClassType<T>,\n protected queryResultType: ClassType<QRT>\n ) {\n super(type);\n }\n\n public getAllPost(queryParamBody?: MediusQueryParam, params?: HttpParams, locale?: string): Observable<QRT> {\n const url = this.getUrl(this.getGetAllPostPath());\n if (params && locale) {\n params = params.set('lang', locale);\n } else if (locale) {\n params = new HttpParams().set('lang', locale);\n }\n return this.http\n .post<any>(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));\n }\n\n protected getGetAllPostPath(): string {\n return '/get-all';\n }\n}\n","import {HttpParams} from '@angular/common/http';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {ClassType, IdType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ACommonsGetAllV1ApiService} from './get-all-api.abstract.service';\n\n/**\n * A service interface for CRUD operation on a resource.\n *\n * @typeparam T The main type of data to be handled by the service.\n *\n * @deprecated\n */\nexport interface ICommonsCrudV1ApiService<T> {\n createPost?(item: T, params?: HttpParams): Observable<T>;\n\n getByIdGet?(id: IdType, params?: HttpParams, locale?: string): Observable<T>;\n\n updatePut?(id: IdType, item: T, params?: HttpParams): Observable<T>;\n\n removeDelete?(id: IdType, item?: T, params?: HttpParams): Observable<T | null>;\n}\n\n/**\n * Abstract class for creating CRUD API service implementation.\n *\n * @typeparam T The type of the entity.\n * @typeparam QRT The type of the query result.\n *\n * @deprecated\n */\nexport abstract class ACommonsCrudV1ApiService<T, QRT extends MediusQueryResult<any>> extends ACommonsGetAllV1ApiService<T, QRT> implements ICommonsCrudV1ApiService<T> {\n protected constructor(type: ClassType<T>, queryResultType: ClassType<QRT>) {\n super(type, queryResultType);\n }\n\n public createPost(item: T, params?: HttpParams): Observable<T> {\n const url = this.getUrl(this.getCreatePostPath(item));\n return this.http\n .post<unknown>(url, this.serialize(item), {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public getByIdGet(id: IdType, params?: HttpParams, locale?: string): Observable<T> {\n const url = this.getUrl(this.getGetByIdGetPath(id));\n if (params && locale) {\n params = params.set('lang', locale);\n } else if (locale) {\n params = new HttpParams().set('lang', locale);\n }\n return this.http\n .get<unknown>(url, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public updatePut(id: IdType, item: T, params?: HttpParams): Observable<T> {\n const url = this.getUrl(this.getUpdatePutPath(id, item));\n return this.http\n .put<unknown>(url, this.serialize(item), {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public removeDelete(id: IdType, item?: T, params?: HttpParams): Observable<T | null> {\n const url = this.getUrl(this.getRemoveDeletePath(id, item));\n return this.http\n .request<unknown>('delete', url, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n body: item ? this.serialize(item) : undefined,\n params: params\n })\n .pipe(map(res => (res ? this.deserialize(res) : null)));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getCreatePostPath(item: T): string {\n return '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getUpdatePutPath(id: IdType, item: T): string {\n return `/${id}`;\n }\n\n protected getGetByIdGetPath(id: IdType): string {\n return `/${id}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getRemoveDeletePath(id: IdType, item?: T) {\n return `/${id}`;\n }\n}\n","import {DataListFilter, DataListParams} from '@mediusinc/mng-commons/core';\n\n/**\n * A class representing a mapping of query parameters.\n *\n * @typeparam Sorts - The type for available sort keys on get all operation.\n * @typeparam Filters - The type for available sort keys on get all operation.\n *\n * @deprecated\n */\nexport class QueryParamMap<Sorts, Filters extends keyof any> {\n private readonly _sorts: Record<string, string> = {};\n private readonly _filters: Record<string, string> = {};\n\n protected constructor(private readonly _params?: DataListParams<Sorts, Filters>) {\n // empty line\n }\n\n public static create() {\n return new QueryParamMap<string, string>();\n }\n\n public static forParams<Sorts, Filters extends keyof any>(params?: DataListParams<Sorts, Filters>) {\n return new QueryParamMap<Sorts, Filters>(params);\n }\n\n withSortMap(sort: Sorts, mapTo: string) {\n this._sorts[sort as string] = mapTo;\n return this;\n }\n\n withFilterMap(filter: Filters, mapTo: string) {\n this._filters[filter as string] = mapTo;\n return this;\n }\n\n mapSort(sort: string): string {\n return this._sorts[sort] ?? (sort as string);\n }\n\n mapFilter(filter: string): string {\n return this._filters[filter] ?? (filter as string);\n }\n\n mapParams(): DataListParams<any, any> | undefined {\n if (!this._params) {\n return undefined;\n }\n\n const params = {\n offset: this._params.offset,\n limit: this._params.limit,\n search: this._params.search,\n sort: this._params.sort?.map(s => ({property: this.mapSort(s.property as string), ascending: s.ascending}))\n } as DataListParams<any, any>;\n\n if (this._params.filters) {\n params.filters = {};\n Object.entries(this._params.filters).forEach(([key, value]) => {\n params.filters![this.mapFilter(key)] = {\n ...(value as DataListFilter)\n };\n });\n }\n\n return params;\n }\n}\n","import {APP_INITIALIZER, Provider} from '@angular/core';\n\nimport {Observable, of} from 'rxjs';\n\nimport {ObjectSerializer} from '@mediusinc/mng-commons-data-api-class';\nimport {COMMONS_MODULE_CONFIG_IT, CommonsFeature, CommonsFeatureTypeEnum, CommonsModuleConfig, TypeRegistry} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterMatchType} from './models/filter-match-type.model';\nimport {MediusFilterParam} from './models/filter-param.model';\nimport {MediusQueryMode} from './models/query-mode.model';\nimport {MediusQueryParam} from './models/query-param.model';\nimport {COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT} from './services/tokens/data-api-class.token';\n\nfunction initializeQpTypesAndSerDer(config: CommonsModuleConfig): boolean {\n const typeRegistry = TypeRegistry.get();\n typeRegistry.registerType(MediusFilterParam, 'FilterParam');\n typeRegistry.registerType(MediusQueryParam, 'QueryParam');\n typeRegistry.registerEnum(MediusFilterMatchType, 'FilterMatchType');\n typeRegistry.registerEnum(MediusQueryMode, 'QueryMode');\n\n ObjectSerializer.get().configure({...(config?.serialization ?? {})});\n\n return true;\n}\n\nfunction initializeDataApiObsolete(config: CommonsModuleConfig): () => Observable<void> {\n return () => {\n initializeQpTypesAndSerDer(config);\n return of(void 0);\n };\n}\n\n/**\n * Prepares providers for usage of the Obsolete Data API functionalities.\n *\n * @returns {CommonsFeature} The `CommonsFeature` object with the Data API Obsolete configuration.\n *\n * @deprecated.\n */\nexport function withDataApiV1(): CommonsFeature {\n return {\n type: CommonsFeatureTypeEnum.DataApiAsClassV1,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: initializeDataApiObsolete,\n deps: [COMMONS_MODULE_CONFIG_IT],\n multi: true\n },\n {\n provide: COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT,\n useValue: true\n }\n ]\n };\n}\n\nexport function provideDataApiV1Child(): Provider {\n return {\n provide: COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT,\n useFactory: initializeQpTypesAndSerDer,\n deps: [COMMONS_MODULE_CONFIG_IT]\n };\n}\n","// helpers\nexport * from './helpers/query-param-convert';\nexport * from './helpers/tableview-crud-create';\n\n// models\nexport * from './models/builders/query-param.builder';\nexport * from './models/filter-match-type.model';\nexport * from './models/filter-param.model';\nexport * from './models/query-mode.model';\nexport * from './models/query-param.model';\nexport * from './models/query-result.model';\n\n// services\nexport * from './services/tokens/data-api-class.token';\nexport * from './services/api.abstract.service';\nexport * from './services/crud-api.abstract.service';\nexport * from './services/get-all-api.abstract.service';\n\n// tableview\nexport * from './tableview/tableview-crud.data-provider';\n\n// utils\nexport * from './utils/query-param-map.util';\n\n// provider\nexport * from './provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-data-api-class-v1.mjs","sources":["../../v1/src/models/filter-match-type.model.ts","../../v1/src/models/filter-param.model.ts","../../v1/src/models/query-mode.model.ts","../../v1/src/models/query-param.model.ts","../../v1/src/models/builders/query-param.builder.ts","../../v1/src/helpers/query-param-convert.ts","../../v1/src/tableview/tableview-crud.data-provider.ts","../../v1/src/helpers/tableview-crud-create.ts","../../v1/src/models/query-result.model.ts","../../v1/src/services/tokens/data-api-class.token.ts","../../v1/src/services/api.abstract.service.ts","../../v1/src/services/get-all-api.abstract.service.ts","../../v1/src/services/crud-api.abstract.service.ts","../../v1/src/utils/query-param-map.util.ts","../../v1/src/provide.ts","../../v1/src/index.ts","../../v1/src/mediusinc-mng-commons-data-api-class-v1.ts"],"sourcesContent":["/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport enum MediusFilterMatchType {\n Equals = 'EQUALS',\n NotEquals = 'NOT_EQUALS',\n FromTo = 'FROM_TO',\n Contains = 'CONTAINS',\n StartsWith = 'STARTS_WITH',\n EndsWith = 'ENDS_WITH',\n In = 'IN',\n NotIn = 'NOT_IN',\n SmallerThan = 'SMALLER_THAN',\n GreaterThan = 'GREATER_THAN',\n Exists = 'EXISTS',\n DoesNotExist = 'DOES_NOT_EXIST'\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterMatchType} from './filter-match-type.model';\n\nexport class MediusFilterParam {\n property?: string;\n filterValue?: any;\n filterValueTo?: any;\n filterMatchType?: MediusFilterMatchType;\n filterMatchCaseSensitive?: boolean;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'property',\n baseName: 'property',\n type: 'string'\n },\n {\n name: 'filterValue',\n baseName: 'filter_value',\n type: 'object'\n },\n {\n name: 'filterValueTo',\n baseName: 'filter_value_to',\n type: 'object'\n },\n {\n name: 'filterMatchType',\n baseName: 'filter_match_type',\n type: 'FilterMatchType'\n },\n {\n name: 'filterMatchCaseSensitive',\n baseName: 'filter_match_case_sensitive',\n type: 'boolean'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MediusFilterParam.attributeTypeMap;\n }\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport enum MediusQueryMode {\n Count = 'COUNT',\n Data = 'DATA',\n All = 'ALL'\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterParam} from './filter-param.model';\nimport {MediusQueryMode} from './query-mode.model';\n\nexport class MediusQueryParam {\n sortProperty?: Array<string>;\n sortAsc?: Array<boolean>;\n itemsOffset?: number;\n itemsPerPage?: number;\n filterParams?: Array<MediusFilterParam>;\n filterAllParam?: string;\n filterAllProperties?: Array<string>;\n validateProperties?: Array<string>;\n selectInTwoSteps?: boolean;\n sortEnumByOrdinal?: boolean;\n groupByProperties?: Array<string>;\n queryMode?: MediusQueryMode;\n\n public static discriminator?: string;\n\n public static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'sortProperty',\n baseName: 'sort_property',\n type: 'Array<string>'\n },\n {\n name: 'sortAsc',\n baseName: 'sort_asc',\n type: 'Array<boolean>'\n },\n {\n name: 'itemsOffset',\n baseName: 'items_offset',\n type: 'number'\n },\n {\n name: 'itemsPerPage',\n baseName: 'items_per_page',\n type: 'number'\n },\n {\n name: 'filterParams',\n baseName: 'filter_params',\n type: 'Array<FilterParam>'\n },\n {\n name: 'filterAllParam',\n baseName: 'filter_all_param',\n type: 'string'\n },\n {\n name: 'filterAllProperties',\n baseName: 'filter_all_properties',\n type: 'Array<string>'\n },\n {\n name: 'validateProperties',\n baseName: 'validate_properties',\n type: 'Array<string>'\n },\n {\n name: 'selectInTwoSteps',\n baseName: 'select_in_two_steps',\n type: 'boolean'\n },\n {\n name: 'sortEnumByOrdinal',\n baseName: 'sort_enum_by_ordinal',\n type: 'boolean'\n },\n {\n name: 'groupByProperties',\n baseName: 'group_by_properties',\n type: 'Array<string>'\n },\n {\n name: 'queryMode',\n baseName: 'query_mode',\n type: 'QueryMode'\n }\n ];\n\n public static getAttributeTypeMap() {\n return MediusQueryParam.attributeTypeMap;\n }\n}\n","import {MediusFilterMatchType} from '../filter-match-type.model';\nimport {MediusFilterParam} from '../filter-param.model';\nimport {MediusQueryMode} from '../query-mode.model';\nimport {MediusQueryParam} from '../query-param.model';\n\nexport class MediusQueryParamBuilder {\n private constructor(private queryParam: MediusQueryParam) {}\n\n /**\n * Creates a new instance of `MediusQueryParamBuilder` with the specified `itemsPerPage` and `itemsOffset` values.\n *\n * @param {number} [itemsPerPage=50] - The number of items per page.\n * @param {number} [itemsOffset=0] - The offset value for the items.\n *\n * @returns {MediusQueryParamBuilder} A new instance of `MediusQueryParamBuilder`.\n *\n * @deprecated\n */\n public static create(itemsPerPage = 50, itemsOffset = 0): MediusQueryParamBuilder {\n const queryParam = new MediusQueryParam();\n queryParam.itemsPerPage = itemsPerPage;\n queryParam.itemsOffset = itemsOffset;\n queryParam.queryMode = MediusQueryMode.All;\n return new MediusQueryParamBuilder(queryParam);\n }\n\n /**\n * Creates a new instance of MediusQueryParamBuilder based on an existing MediusQueryParam object.\n *\n * @param {MediusQueryParam} queryParam - The existing MediusQueryParam object to create from.\n * @param {number} [itemsPerPage] - The number of items per page for the new instance. If not provided, default value is used.\n * @param {number} [itemsOffset] - The offset for the new instance. If not provided, default value is used.\n *\n * @returns {MediusQueryParamBuilder} - A new instance of MediusQueryParamBuilder.\n *\n * @deprecated\n */\n public static createFromExisting(queryParam: MediusQueryParam, itemsPerPage?: number, itemsOffset?: number): MediusQueryParamBuilder {\n queryParam.itemsPerPage = itemsPerPage ?? queryParam.itemsPerPage ?? 50;\n queryParam.itemsOffset = itemsOffset ?? queryParam.itemsOffset ?? 0;\n queryParam.queryMode = queryParam.queryMode ?? MediusQueryMode.All;\n return new MediusQueryParamBuilder(queryParam);\n }\n\n public withItemsPerPage(itemsPerPage: number): MediusQueryParamBuilder {\n this.queryParam.itemsPerPage = itemsPerPage;\n return this;\n }\n\n public withItemsOffset(itemsOffset: number): MediusQueryParamBuilder {\n this.queryParam.itemsOffset = itemsOffset;\n return this;\n }\n\n public withQueryMode(queryMode: MediusQueryMode): MediusQueryParamBuilder {\n this.queryParam.queryMode = queryMode;\n return this;\n }\n\n public withSort(property: string, asc = true): MediusQueryParamBuilder {\n if (!this.queryParam.sortProperty || !this.queryParam.sortAsc) {\n this.queryParam.sortProperty = [];\n this.queryParam.sortAsc = [];\n }\n this.queryParam.sortProperty.push(property);\n this.queryParam.sortAsc.push(asc);\n return this;\n }\n\n public withFilter(\n property: string,\n value: any,\n valueTo: any = undefined,\n matchType: MediusFilterMatchType = MediusFilterMatchType.Contains,\n matchCaseSensitive = false\n ): MediusQueryParamBuilder {\n if (!this.queryParam.filterParams) {\n this.queryParam.filterParams = [];\n }\n const filterParam = new MediusFilterParam();\n filterParam.property = property;\n filterParam.filterValue = value;\n filterParam.filterValueTo = valueTo;\n filterParam.filterMatchType = matchType;\n filterParam.filterMatchCaseSensitive = matchCaseSensitive;\n this.queryParam.filterParams.push(filterParam);\n return this;\n }\n\n public build(): MediusQueryParam {\n const queryParam = this.queryParam;\n this.queryParam = new MediusQueryParam();\n return queryParam;\n }\n}\n","import {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, DataListFilter, DataListFilterValueType, DataListParams, DataListResult, FilterMatchMode} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParamBuilder} from '../models/builders/query-param.builder';\nimport {MediusFilterMatchType} from '../models/filter-match-type.model';\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {QueryParamMap} from '../utils/query-param-map.util';\n\nexport function toV1QueryParam(): undefined;\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(params: DataListParams<Sorts, Filters>, map?: QueryParamMap<Sorts, Filters>): MediusQueryParam;\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(\n params: DataListParams<Sorts, Filters> | undefined,\n map?: QueryParamMap<Sorts, Filters>\n): MediusQueryParam | undefined;\n/**\n * Converts the given DataListParams object to an ObsoleteV1QueryParam object.\n *\n * @param {DataListParams} params - The object to convert.\n * @param {QueryParamMap} map - The configuration object used to map sort and filter properties.\n *\n * @returns The converted ObsoleteV1QueryParam object if params is not null or undefined, otherwise returns undefined.\n *\n * @deprecated\n */\nexport function toV1QueryParam<Sorts = string, Filters extends keyof any = string>(\n params?: DataListParams<Sorts, Filters>,\n map?: QueryParamMap<Sorts, Filters>\n): MediusQueryParam | undefined {\n if (!params) return undefined;\n\n const builder = MediusQueryParamBuilder.create();\n if (params.offset !== undefined) {\n builder.withItemsOffset(params.offset);\n }\n if (params.limit !== undefined) {\n builder.withItemsPerPage(params.limit);\n }\n if (Array.isArray(params.sort)) {\n params.sort.forEach(s => builder.withSort(map?.mapSort(s.property as string) ?? (s.property as string), s.ascending));\n }\n if (typeof params.filters === 'object') {\n Object.entries(params.filters).forEach(([key, value]) => {\n const filter = value as DataListFilter;\n if (filter.value != null) {\n const matchMode = filter.matchMode ? toV1FilterMatchType(filter.matchMode) : MediusFilterMatchType.Equals;\n let value: DataListFilterValueType = undefined;\n let valueTo: DataListFilterValueType = undefined;\n if (matchMode === MediusFilterMatchType.FromTo) {\n if (Array.isArray(filter.value)) {\n if (filter.value.length > 0) value = filter.value[0];\n if (filter.value.length > 1) valueTo = filter.value[1];\n }\n } else {\n value = filter.value;\n }\n\n builder.withFilter(map?.mapFilter(key) ?? key, value, valueTo, matchMode, filter.caseSensitive);\n }\n });\n }\n\n return builder.build();\n}\n\nexport function toV1FilterMatchType(match: string): MediusFilterMatchType {\n switch (match) {\n case FilterMatchMode.Equals:\n return MediusFilterMatchType.Equals;\n case FilterMatchMode.NotEquals:\n return MediusFilterMatchType.NotEquals;\n case FilterMatchMode.Contains:\n return MediusFilterMatchType.Contains;\n case FilterMatchMode.In:\n return MediusFilterMatchType.In;\n case FilterMatchMode.NotIn:\n return MediusFilterMatchType.NotIn;\n case FilterMatchMode.StartsWith:\n return MediusFilterMatchType.StartsWith;\n case FilterMatchMode.EndsWith:\n return MediusFilterMatchType.EndsWith;\n case FilterMatchMode.LessThan:\n return MediusFilterMatchType.SmallerThan;\n case FilterMatchMode.GreaterThan:\n return MediusFilterMatchType.GreaterThan;\n case FilterMatchMode.Between:\n return MediusFilterMatchType.FromTo;\n case FilterMatchMode.Exists:\n return MediusFilterMatchType.Exists;\n case FilterMatchMode.DoesNotExist:\n return MediusFilterMatchType.DoesNotExist;\n case FilterMatchMode.NotContains:\n case FilterMatchMode.LessThanOrEqualTo:\n case FilterMatchMode.GreaterThanOrEqualTo:\n default:\n throw new CommonsInternalError(`Filter match type '${match}' not supported.`);\n }\n}\n\n/**\n * Convert a query result from an obsolete API version 1 to a `DataListResult`\n *\n * @param {DataListParams} params - The data list parameters for the query\n * @param {Service} service - The service object used to make the API call\n * @param {function} apiOperation - The API operation function that returns an `Observable<MediusQueryResult<Item>>`\n * @param {any} additionalParams - Additional parameters to pass to the API operation function (optional)\n *\n * @returns {Observable<DataListResult<Item>>} - An observable that emits a `DataListResult` object\n *\n * @deprecated\n */\nexport function executeV1GetAll<Item, Service>(\n params: DataListParams,\n service: Service,\n apiOperation: (qp: MediusQueryParam, ...additionalParams: any) => Observable<MediusQueryResult<Item>>,\n additionalParams?: any\n): Observable<DataListResult<Item>> {\n const queryParam = toV1QueryParam(params);\n return apiOperation\n .bind(service)(queryParam, ...(additionalParams ?? []))\n .pipe(map(res => ({data: res.pageData ?? [], totalCount: res.allDataCount})));\n}\n","import {Type} from '@angular/core';\n\nimport {map} from 'rxjs/operators';\n\nimport {ClassType, ServiceClassType, valueToDefined} from '@mediusinc/mng-commons/core';\nimport {TableviewDataProviderInst} from '@mediusinc/mng-commons/tableview/api';\n\nimport {toV1QueryParam} from '../helpers/query-param-convert';\nimport {MediusQueryParamBuilder} from '../models/builders/query-param.builder';\nimport {MediusFilterMatchType} from '../models/filter-match-type.model';\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ICommonsCrudV1ApiService} from '../services/crud-api.abstract.service';\nimport {ICommonsGetAllV1ApiService} from '../services/get-all-api.abstract.service';\n\n/**\n * A data provider for a CRUD table view that uses an obsolete version 1 API service.\n *\n * @typeparam Model - The type of the data model.\n * @typeparam Service - The type of the API service.\n * @typeparam Sorts - The type for available sort keys on get all operation.\n * @typeparam Filters - The type for available sort keys on get all operation.\n *\n * @deprecated\n */\nexport class TableviewCrudV1DataProviderInst<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n> extends TableviewDataProviderInst<Model, Service, Sorts, Filters, ServiceClassType<Service>> {\n protected constructor(serviceType: Type<Service>, idPropertyName?: string, useGetAllForFetch = false) {\n super(serviceType);\n this.withGetAll((params, service, locale) =>\n service.getAllPost(toV1QueryParam(params), undefined, locale).pipe(map(res => ({data: res.pageData ?? [], totalCount: res.allDataCount ?? res.pageData?.length ?? 0})))\n );\n\n if (useGetAllForFetch) {\n const selectedIdPropertyName = idPropertyName ?? 'id';\n this.withFetch((id, service) => {\n const qp: MediusQueryParam = MediusQueryParamBuilder.create(10, 0).withFilter(selectedIdPropertyName, id, id, MediusFilterMatchType.Equals, true).build();\n return service!.getAllPost(qp).pipe(map(res => res.pageData![0]));\n });\n } else {\n this.withFetch((id, service, locale) => service!.getByIdGet!(id, undefined, locale));\n }\n this.withCreate((item, service) => service!.createPost!(valueToDefined(item)));\n this.withUpdate((id, item, service) => service!.updatePut!(id, valueToDefined(item)));\n this.withDelete((id, service, item) => service!.removeDelete!(id, item).pipe(map(res => res ?? undefined)));\n }\n}\n\nexport class TableviewCrudV1DataProvider extends TableviewCrudV1DataProviderInst<any, any> {\n /**\n * @deprecated\n */\n public static create<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(type: ClassType<Model>, serviceType: Type<Service>, idProperty?: keyof Model, useGetAllForFetch = false): TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters> {\n return TableviewCrudV1DataProvider.createUnsafe<Model, Service, Sorts, Filters>(type, serviceType, idProperty as string, useGetAllForFetch);\n }\n\n /**\n * @deprecated\n */\n public static createUnsafe<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(type: ClassType<Model>, serviceType: Type<Service>, idProperty?: string, useGetAllForFetch = false): TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters> {\n return new TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>(serviceType, idProperty, useGetAllForFetch);\n }\n}\n","import {Injector, inject} from '@angular/core';\n\nimport {ClassType, ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {modelClass} from '@mediusinc/mng-commons/model/class';\nimport {TableviewDescriptorInst, TableviewInputBuilder, tableviewDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ICommonsCrudV1ApiService} from '../services/crud-api.abstract.service';\nimport {ICommonsGetAllV1ApiService} from '../services/get-all-api.abstract.service';\nimport {TableviewCrudV1DataProvider, TableviewCrudV1DataProviderInst} from '../tableview/tableview-crud.data-provider';\n\n/**\n * Creates a tableview with the given class, service based on data API v1 (obsolete) and optional class/model configuration.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudObsoleteV1ApiService` and `IMngGetAllObsoleteV1ApiService`.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns {Tableview} - The built table view.\n *\n * @deprecated\n */\nexport function tableviewCrudV1<\n Model,\n Service extends ICommonsCrudV1ApiService<Model> & ICommonsGetAllV1ApiService<MediusQueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n>(\n type: ClassType<Model>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: ClassType<any> | string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters, undefined, Model, Model, Model, Model>,\n TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n const builder = new TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters, undefined, Model, Model, Model, Model>,\n TableviewCrudV1DataProviderInst<Model, Service, Sorts, Filters>,\n Sorts,\n Filters\n >(\n tableviewDescriptor(modelClass(type, {id: modelConfig?.idProperty, title: modelConfig?.titleProperty, i18nBase: modelConfig?.i18nBaseKey})),\n TableviewCrudV1DataProvider.create(type, service, modelConfig?.idProperty),\n inject(Injector)\n );\n buildFn?.(builder);\n return builder.build();\n}\n","/**\n * Generated API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {ClassAttributeDef} from '@mediusinc/mng-commons/core';\n\nexport class MediusQueryResult<T> implements IMediusQueryResult<T> {\n allDataCount?: number;\n pageData?: Array<T>;\n\n static discriminator?: string;\n\n static fromArray<T>(pageData: T[], allDataCount?: number) {\n const mqr = new MediusQueryResult<T>();\n mqr.allDataCount = allDataCount ?? pageData.length;\n mqr.pageData = pageData;\n return mqr;\n }\n\n static attributeTypeMap: Array<ClassAttributeDef> = [\n {\n name: 'allDataCount',\n baseName: 'all_data_count',\n type: 'number'\n },\n {\n name: 'pageData',\n baseName: 'page_data',\n type: 'Array<T>'\n }\n ];\n\n static getAttributeTypeMap() {\n return MediusQueryResult.attributeTypeMap;\n }\n}\n\nexport interface IMediusQueryResult<T> {\n allDataCount?: number;\n pageData?: Array<T>;\n}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * Some fake token to incept needed types for query params and object serializer setup\n */\nexport const COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT = new InjectionToken<boolean>('CommonsDataApiClassObsolete');\n","import {HttpClient} from '@angular/common/http';\nimport {inject} from '@angular/core';\n\nimport {ObjectSerializer} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT} from './tokens/data-api-class.token';\n\n/**\n * This is an abstract class that provides base functionality for API services.\n *\n * @deprecated\n */\nexport abstract class ACommonsBaseV1ApiService {\n protected readonly objectSerializer: ObjectSerializer = ObjectSerializer.get();\n protected readonly http = inject(HttpClient);\n protected readonly obsoleteConfig = inject(COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT);\n\n protected abstract getBasePath(): string;\n\n protected abstract getServiceBasePath(): string | null;\n\n protected getUrl(...pathSegments: Array<string>): string {\n let baseUrl = this.getBasePath();\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.substring(0, baseUrl.length - 1);\n }\n const serviceBasePath = this.getServiceBasePath();\n let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');\n // omit first and last '/'\n if (path.startsWith('/')) {\n path = path.substring(1);\n }\n if (path.endsWith('/')) {\n path = path.substring(0, path.length - 1);\n }\n // replace any double '//' from path that could come from joining paths\n path = path.replace('//', '/');\n return `${baseUrl}/${path}`;\n }\n\n protected serializeQueryParam(queryParam: MediusQueryParam, type = 'QueryParam') {\n return this.objectSerializer.serialize(queryParam, type);\n }\n\n protected deserializeQueryResult<QR>(item: any, qrType: ClassType<QR>): QR {\n return this.deserializeClass(item, qrType);\n }\n\n protected deserializeClass<C>(item: any, type: ClassType<C>): C {\n return this.objectSerializer.deserializeClass(item, type);\n }\n\n protected deserializeClassArray<C>(item: any, type: ClassType<C>): Array<C> {\n return this.objectSerializer.deserializeClassArray(item, type);\n }\n\n protected serializeClass<C>(item: C, type: ClassType<C>): any {\n return this.objectSerializer.serializeClass(item, type);\n }\n\n protected serializeClassArray<C>(item: Array<C>, type: ClassType<C>): any {\n return this.objectSerializer.serializeClassArray(item, type);\n }\n}\n\n/**\n * Represents an abstract base class for the ACommonsV1ApiService.\n *\n * @typeparam T The main type of data to be handled by the service.\n *\n * @deprecated\n */\nexport abstract class ACommonsV1ApiService<T> extends ACommonsBaseV1ApiService {\n protected constructor(protected type: ClassType<T>) {\n super();\n }\n\n protected deserialize(item: any): T {\n return this.deserializeClass(item, this.type);\n }\n\n protected serialize(item: T): any {\n return this.serializeClass(item, this.type);\n }\n}\n","import {HttpParams} from '@angular/common/http';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {ClassType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryParam} from '../models/query-param.model';\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ACommonsV1ApiService} from './api.abstract.service';\n\n/**\n * A service interface for getting paginated data results using POST method.\n *\n * @typeparam QRT The type of the query result in get all operation.\n *\n * @deprecated\n */\nexport interface ICommonsGetAllV1ApiService<QRT extends MediusQueryResult<any>> {\n getAllPost(queryParamBody?: MediusQueryParam, params?: HttpParams, locale?: string): Observable<QRT>;\n}\n\n/**\n * An abstract class representing a service for retrieving all obsolete entities.\n *\n * @typeparam T The main type of data to be handled by the service.\n * @typeparam QRT The type of the query result in get all operation.\n *\n * @deprecated\n */\nexport abstract class ACommonsGetAllV1ApiService<T, QRT extends MediusQueryResult<any>> extends ACommonsV1ApiService<T> implements ICommonsGetAllV1ApiService<QRT> {\n protected constructor(\n type: ClassType<T>,\n protected queryResultType: ClassType<QRT>\n ) {\n super(type);\n }\n\n public getAllPost(queryParamBody?: MediusQueryParam, params?: HttpParams, locale?: string): Observable<QRT> {\n const url = this.getUrl(this.getGetAllPostPath());\n if (params && locale) {\n params = params.set('lang', locale);\n } else if (locale) {\n params = new HttpParams().set('lang', locale);\n }\n return this.http\n .post<any>(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));\n }\n\n protected getGetAllPostPath(): string {\n return '/get-all';\n }\n}\n","import {HttpParams} from '@angular/common/http';\n\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {ClassType, IdType} from '@mediusinc/mng-commons/core';\n\nimport {MediusQueryResult} from '../models/query-result.model';\nimport {ACommonsGetAllV1ApiService} from './get-all-api.abstract.service';\n\n/**\n * A service interface for CRUD operation on a resource.\n *\n * @typeparam T The main type of data to be handled by the service.\n *\n * @deprecated\n */\nexport interface ICommonsCrudV1ApiService<T> {\n createPost?(item: T, params?: HttpParams): Observable<T>;\n\n getByIdGet?(id: IdType, params?: HttpParams, locale?: string): Observable<T>;\n\n updatePut?(id: IdType, item: T, params?: HttpParams): Observable<T>;\n\n removeDelete?(id: IdType, item?: T, params?: HttpParams): Observable<T | null>;\n}\n\n/**\n * Abstract class for creating CRUD API service implementation.\n *\n * @typeparam T The type of the entity.\n * @typeparam QRT The type of the query result.\n *\n * @deprecated\n */\nexport abstract class ACommonsCrudV1ApiService<T, QRT extends MediusQueryResult<any>> extends ACommonsGetAllV1ApiService<T, QRT> implements ICommonsCrudV1ApiService<T> {\n protected constructor(type: ClassType<T>, queryResultType: ClassType<QRT>) {\n super(type, queryResultType);\n }\n\n public createPost(item: T, params?: HttpParams): Observable<T> {\n const url = this.getUrl(this.getCreatePostPath(item));\n return this.http\n .post<unknown>(url, this.serialize(item), {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public getByIdGet(id: IdType, params?: HttpParams, locale?: string): Observable<T> {\n const url = this.getUrl(this.getGetByIdGetPath(id));\n if (params && locale) {\n params = params.set('lang', locale);\n } else if (locale) {\n params = new HttpParams().set('lang', locale);\n }\n return this.http\n .get<unknown>(url, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public updatePut(id: IdType, item: T, params?: HttpParams): Observable<T> {\n const url = this.getUrl(this.getUpdatePutPath(id, item));\n return this.http\n .put<unknown>(url, this.serialize(item), {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n params: params\n })\n .pipe(map(res => this.deserialize(res)));\n }\n\n public removeDelete(id: IdType, item?: T, params?: HttpParams): Observable<T | null> {\n const url = this.getUrl(this.getRemoveDeletePath(id, item));\n return this.http\n .request<unknown>('delete', url, {\n withCredentials: true,\n observe: 'body',\n reportProgress: false,\n body: item ? this.serialize(item) : undefined,\n params: params\n })\n .pipe(map(res => (res ? this.deserialize(res) : null)));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getCreatePostPath(item: T): string {\n return '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getUpdatePutPath(id: IdType, item: T): string {\n return `/${id}`;\n }\n\n protected getGetByIdGetPath(id: IdType): string {\n return `/${id}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected getRemoveDeletePath(id: IdType, item?: T) {\n return `/${id}`;\n }\n}\n","import {DataListFilter, DataListParams} from '@mediusinc/mng-commons/core';\n\n/**\n * A class representing a mapping of query parameters.\n *\n * @typeparam Sorts - The type for available sort keys on get all operation.\n * @typeparam Filters - The type for available sort keys on get all operation.\n *\n * @deprecated\n */\nexport class QueryParamMap<Sorts, Filters extends keyof any> {\n private readonly _sorts: Record<string, string> = {};\n private readonly _filters: Record<string, string> = {};\n\n protected constructor(private readonly _params?: DataListParams<Sorts, Filters>) {\n // empty line\n }\n\n public static create() {\n return new QueryParamMap<string, string>();\n }\n\n public static forParams<Sorts, Filters extends keyof any>(params?: DataListParams<Sorts, Filters>) {\n return new QueryParamMap<Sorts, Filters>(params);\n }\n\n withSortMap(sort: Sorts, mapTo: string) {\n this._sorts[sort as string] = mapTo;\n return this;\n }\n\n withFilterMap(filter: Filters, mapTo: string) {\n this._filters[filter as string] = mapTo;\n return this;\n }\n\n mapSort(sort: string): string {\n return this._sorts[sort] ?? (sort as string);\n }\n\n mapFilter(filter: string): string {\n return this._filters[filter] ?? (filter as string);\n }\n\n mapParams(): DataListParams<any, any> | undefined {\n if (!this._params) {\n return undefined;\n }\n\n const params = {\n offset: this._params.offset,\n limit: this._params.limit,\n search: this._params.search,\n sort: this._params.sort?.map(s => ({property: this.mapSort(s.property as string), ascending: s.ascending}))\n } as DataListParams<any, any>;\n\n if (this._params.filters) {\n params.filters = {};\n Object.entries(this._params.filters).forEach(([key, value]) => {\n params.filters![this.mapFilter(key)] = {\n ...(value as DataListFilter)\n };\n });\n }\n\n return params;\n }\n}\n","import {Provider, inject, provideAppInitializer} from '@angular/core';\n\nimport {Observable, of} from 'rxjs';\n\nimport {ObjectSerializer} from '@mediusinc/mng-commons-data-api-class';\nimport {COMMONS_MODULE_CONFIG_IT, CommonsFeature, CommonsFeatureTypeEnum, CommonsModuleConfig, TypeRegistry} from '@mediusinc/mng-commons/core';\n\nimport {MediusFilterMatchType} from './models/filter-match-type.model';\nimport {MediusFilterParam} from './models/filter-param.model';\nimport {MediusQueryMode} from './models/query-mode.model';\nimport {MediusQueryParam} from './models/query-param.model';\nimport {COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT} from './services/tokens/data-api-class.token';\n\nfunction initializeQpTypesAndSerDer(config: CommonsModuleConfig): boolean {\n const typeRegistry = TypeRegistry.get();\n typeRegistry.registerType(MediusFilterParam, 'FilterParam');\n typeRegistry.registerType(MediusQueryParam, 'QueryParam');\n typeRegistry.registerEnum(MediusFilterMatchType, 'FilterMatchType');\n typeRegistry.registerEnum(MediusQueryMode, 'QueryMode');\n\n ObjectSerializer.get().configure({...(config?.serialization ?? {})});\n\n return true;\n}\n\nfunction initializeDataApiObsolete(config: CommonsModuleConfig): () => Observable<void> {\n return () => {\n initializeQpTypesAndSerDer(config);\n return of(void 0);\n };\n}\n\n/**\n * Prepares providers for usage of the Obsolete Data API functionalities.\n *\n * @returns {CommonsFeature} The `CommonsFeature` object with the Data API Obsolete configuration.\n *\n * @deprecated.\n */\nexport function withDataApiV1(): CommonsFeature {\n return {\n type: CommonsFeatureTypeEnum.DataApiAsClassV1,\n providers: [\n provideAppInitializer(() => {\n const initializerFn = initializeDataApiObsolete(inject(COMMONS_MODULE_CONFIG_IT));\n return initializerFn();\n }),\n {\n provide: COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT,\n useValue: true\n }\n ]\n };\n}\n\nexport function provideDataApiV1Child(): Provider {\n return {\n provide: COMMONS_DATA_API_CLASS_OBSOLETE_CONFIG_IT,\n useFactory: initializeQpTypesAndSerDer,\n deps: [COMMONS_MODULE_CONFIG_IT]\n };\n}\n","// helpers\nexport * from './helpers/query-param-convert';\nexport * from './helpers/tableview-crud-create';\n\n// models\nexport * from './models/builders/query-param.builder';\nexport * from './models/filter-match-type.model';\nexport * from './models/filter-param.model';\nexport * from './models/query-mode.model';\nexport * from './models/query-param.model';\nexport * from './models/query-result.model';\n\n// services\nexport * from './services/tokens/data-api-class.token';\nexport * from './services/api.abstract.service';\nexport * from './services/crud-api.abstract.service';\nexport * from './services/get-all-api.abstract.service';\n\n// tableview\nexport * from './tableview/tableview-crud.data-provider';\n\n// utils\nexport * from './utils/query-param-map.util';\n\n// provider\nexport * from './provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {{>licenseInfo}}
2
2
 
3
- /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types */
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
 
5
5
  {{#models}}
6
6
  {{#model}}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-data-api-class",
3
- "version": "6.0.0-rc.4",
3
+ "version": "6.0.0-rc.6",
4
4
  "peerDependencies": {
5
- "@angular/common": "^17.3.0 || ^18.0.0",
6
- "@angular/core": "^17.3.0 || ^18.0.0",
7
- "@mediusinc/mng-commons": "~6.0.0-rc.4"
5
+ "@angular/common": "^19.0.0",
6
+ "@angular/core": "^19.0.0",
7
+ "@mediusinc/mng-commons": "~6.0.0-rc.6"
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "^2.8.1"
@@ -21,20 +21,14 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2022": "./esm2022/mediusinc-mng-commons-data-api-class.mjs",
25
- "esm": "./esm2022/mediusinc-mng-commons-data-api-class.mjs",
26
24
  "default": "./fesm2022/mediusinc-mng-commons-data-api-class.mjs"
27
25
  },
28
26
  "./tableview": {
29
27
  "types": "./tableview/index.d.ts",
30
- "esm2022": "./esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs",
31
- "esm": "./esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs",
32
28
  "default": "./fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs"
33
29
  },
34
30
  "./v1": {
35
31
  "types": "./v1/index.d.ts",
36
- "esm2022": "./esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs",
37
- "esm": "./esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs",
38
32
  "default": "./fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs"
39
33
  }
40
34
  }
package/version-info.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-data-api-class",
3
- "version": "6.0.0-rc.4",
3
+ "version": "6.0.0-rc.6",
4
4
  "tag": null,
5
5
  "distance": null,
6
- "hash": "0a9d731",
6
+ "hash": "65c2b24",
7
7
  "dirty": true,
8
8
  "semver": null,
9
9
  "buildTimestamp": null,
10
- "raw": "6.0.0-rc.4-0a9d731-dirty"
10
+ "raw": "6.0.0-rc.6-65c2b24-dirty"
11
11
  }
package/esm2022/index.mjs DELETED
@@ -1,9 +0,0 @@
1
- // models
2
- export * from './lib/models/query-result.model';
3
- // serder
4
- export * from './lib/serder/object-serializer';
5
- // services
6
- export * from './lib/services/api.abstract.service';
7
- export * from './lib/services/crud-api.abstract.service';
8
- export * from './lib/services/get-all-api.abstract.service';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsU0FBUztBQUNULGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsV0FBVztBQUNYLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcblxuLy8gc2VyZGVyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJkZXIvb2JqZWN0LXNlcmlhbGl6ZXInO1xuXG4vLyBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLmFic3RyYWN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9nZXQtYWxsLWFwaS5hYnN0cmFjdC5zZXJ2aWNlJztcbiJdfQ==
@@ -1,24 +0,0 @@
1
- export class QueryResult {
2
- static fromArray(pageData, allDataCount) {
3
- const mqr = new QueryResult();
4
- mqr.totalCount = allDataCount ?? pageData.length;
5
- mqr.data = pageData;
6
- return mqr;
7
- }
8
- static { this.attributeTypeMap = [
9
- {
10
- name: 'totalCount',
11
- baseName: 'totalCount',
12
- type: 'number'
13
- },
14
- {
15
- name: 'data',
16
- baseName: 'data',
17
- type: 'Array<T>'
18
- }
19
- ]; }
20
- static getAttributeTypeMap() {
21
- return QueryResult.attributeTypeMap;
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxXQUFXO0lBTXBCLE1BQU0sQ0FBQyxTQUFTLENBQU8sUUFBZ0IsRUFBRSxZQUFxQjtRQUMxRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsRUFBUSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakQsR0FBRyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO2FBRU0scUJBQWdCLEdBQTZCO1FBQ2hEO1lBQ0ksSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsSUFBSSxFQUFFLFFBQVE7U0FDakI7UUFDRDtZQUNJLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFFLFVBQVU7U0FDbkI7S0FDSixDQUFDO0lBRUYsTUFBTSxDQUFDLG1CQUFtQjtRQUN0QixPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5UmVzdWx0PEl0ZW0+IGltcGxlbWVudHMgSU1lZGl1c1F1ZXJ5UmVzdWx0VjI8SXRlbT4ge1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZGF0YT86IEFycmF5PEl0ZW0+O1xuXG4gICAgc3RhdGljIGRpc2NyaW1pbmF0b3I/OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbUFycmF5PEl0ZW0+KHBhZ2VEYXRhOiBJdGVtW10sIGFsbERhdGFDb3VudD86IG51bWJlcikge1xuICAgICAgICBjb25zdCBtcXIgPSBuZXcgUXVlcnlSZXN1bHQ8SXRlbT4oKTtcbiAgICAgICAgbXFyLnRvdGFsQ291bnQgPSBhbGxEYXRhQ291bnQgPz8gcGFnZURhdGEubGVuZ3RoO1xuICAgICAgICBtcXIuZGF0YSA9IHBhZ2VEYXRhO1xuICAgICAgICByZXR1cm4gbXFyO1xuICAgIH1cblxuICAgIHN0YXRpYyBhdHRyaWJ1dGVUeXBlTWFwOiBBcnJheTxDbGFzc0F0dHJpYnV0ZURlZj4gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd0b3RhbENvdW50JyxcbiAgICAgICAgICAgIGJhc2VOYW1lOiAndG90YWxDb3VudCcsXG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2RhdGEnLFxuICAgICAgICAgICAgdHlwZTogJ0FycmF5PFQ+J1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHN0YXRpYyBnZXRBdHRyaWJ1dGVUeXBlTWFwKCkge1xuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHQuYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lZGl1c1F1ZXJ5UmVzdWx0VjI8SXRlbT4ge1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZGF0YT86IEFycmF5PEl0ZW0+O1xufVxuIl19