{"version":3,"file":"main-class-mvvm-viewmodel.mjs","sources":["../../../../projects/main-class/mvvm/viewmodel/src/abstract-detail.viewmodel.ts","../../../../projects/main-class/mvvm/viewmodel/src/abstract-crud-form.viewmodel.ts","../../../../projects/main-class/mvvm/viewmodel/src/abstract-list.viewmodel.ts","../../../../projects/main-class/mvvm/viewmodel/index.ts","../../../../projects/main-class/mvvm/viewmodel/main-class-mvvm-viewmodel.ts"],"sourcesContent":["import {AbstractDetailRepository} from '@main-class/mvvm/model';\n\nexport abstract class AbstractDetailViewmodel<T> {\n  abstract get repository(): AbstractDetailRepository<T>;\n\n  async get(id: string): Promise<T> {\n    return await this.repository.get(id);\n  }\n}\n","import {FormViewModel} from './form.viewmodel';\nimport {AbstractCrudRepository} from '@main-class/mvvm/model';\n\nexport abstract class AbstractCrudFormViewmodel<ENTITY, CREATE = ENTITY, UPDATE = ENTITY> implements FormViewModel<CREATE | UPDATE, ENTITY> {\n\n    protected abstract get repository(): AbstractCrudRepository<any, ENTITY, CREATE, UPDATE>;\n\n    async find(id: any): Promise<ENTITY> {\n        return await this.repository.get(id);\n    }\n\n    async submit(input: { id: any } & (CREATE | UPDATE)): Promise<ENTITY> {\n        if (!!input.id) {\n            return await this.repository.update(input.id, input as UPDATE);\n        } else {\n            return await this.repository.create(input as CREATE);\n        }\n    }\n\n}\n","import {\n  AbstractCrudRepository,\n  AbstractListRepository,\n  NumericQueryPagination,\n  Page,\n  Query,\n  UndefinedQueryPagination\n} from '@main-class/mvvm/model';\n\nexport abstract class AbstractListViewmodel<QUERY extends Query<NumericQueryPagination | UndefinedQueryPagination>, ENTITY> {\n  protected abstract get repository(): AbstractListRepository<QUERY, ENTITY>;\n\n  async all(): Promise<ENTITY[]> {\n    return await this.repository.all();\n  }\n\n  async query(query: QUERY): Promise<Page<ENTITY>> {\n    return await this.repository.query(query);\n  }\n\n  async delete(id: any) {\n    if (!!(this.repository as AbstractCrudRepository<QUERY, ENTITY>).delete) {\n      await (this.repository as AbstractCrudRepository<QUERY, ENTITY>).delete(id);\n    }\n  }\n\n}\n","/*\n * Public API Surface of mvvm\n */\n\nexport * from './src/form.viewmodel';\nexport * from './src/abstract-detail.viewmodel';\nexport * from './src/abstract-crud-form.viewmodel';\nexport * from './src/abstract-list.viewmodel';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAEsB,uBAAuB,CAAA;IAG3C,MAAM,GAAG,CAAC,EAAU,EAAA;QAClB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;;AAEvC;;MCLqB,yBAAyB,CAAA;IAI3C,MAAM,IAAI,CAAC,EAAO,EAAA;QACd,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;;IAGxC,MAAM,MAAM,CAAC,KAAsC,EAAA;AAC/C,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;AACZ,YAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAe,CAAC;;aAC3D;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;;;AAI/D;;MCVqB,qBAAqB,CAAA;AAGzC,IAAA,MAAM,GAAG,GAAA;AACP,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;;IAGpC,MAAM,KAAK,CAAC,KAAY,EAAA;QACtB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;;IAG3C,MAAM,MAAM,CAAC,EAAO,EAAA;QAClB,IAAI,CAAC,CAAE,IAAI,CAAC,UAAoD,CAAC,MAAM,EAAE;YACvE,MAAO,IAAI,CAAC,UAAoD,CAAC,MAAM,CAAC,EAAE,CAAC;;;AAIhF;;AC1BD;;AAEG;;ACFH;;AAEG;;;;"}