ngrx-entity-crud 12.0.6-beta.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.
- package/README.md +259 -0
- package/bundles/ngrx-entity-crud.umd.js +1829 -0
- package/bundles/ngrx-entity-crud.umd.js.map +1 -0
- package/esm2015/lib/actions.js +88 -0
- package/esm2015/lib/base-crud-gql.service.js +71 -0
- package/esm2015/lib/base-crud.service.js +136 -0
- package/esm2015/lib/create_adapter.js +14 -0
- package/esm2015/lib/effect.js +467 -0
- package/esm2015/lib/entity_state.js +23 -0
- package/esm2015/lib/ibase-crud-service.js +2 -0
- package/esm2015/lib/j-ngrx-filter.js +133 -0
- package/esm2015/lib/models.js +17 -0
- package/esm2015/lib/reducer.js +353 -0
- package/esm2015/lib/state_selectors.js +56 -0
- package/esm2015/lib/utils.js +19 -0
- package/esm2015/ngrx-entity-crud.js +5 -0
- package/esm2015/public-api.js +7 -0
- package/fesm2015/ngrx-entity-crud.js +1367 -0
- package/fesm2015/ngrx-entity-crud.js.map +1 -0
- package/lib/actions.d.ts +5 -0
- package/lib/actions.d.ts.map +1 -0
- package/lib/base-crud-gql.service.d.ts +19 -0
- package/lib/base-crud-gql.service.d.ts.map +1 -0
- package/lib/base-crud.service.d.ts +34 -0
- package/lib/base-crud.service.d.ts.map +1 -0
- package/lib/create_adapter.d.ts +6 -0
- package/lib/create_adapter.d.ts.map +1 -0
- package/lib/effect.d.ts +132 -0
- package/lib/effect.d.ts.map +1 -0
- package/lib/entity_state.d.ts +9 -0
- package/lib/entity_state.d.ts.map +1 -0
- package/lib/ibase-crud-service.d.ts +13 -0
- package/lib/ibase-crud-service.d.ts.map +1 -0
- package/lib/j-ngrx-filter.d.ts +14 -0
- package/lib/j-ngrx-filter.d.ts.map +1 -0
- package/lib/models.d.ts +494 -0
- package/lib/models.d.ts.map +1 -0
- package/lib/reducer.d.ts +11 -0
- package/lib/reducer.d.ts.map +1 -0
- package/lib/state_selectors.d.ts +5 -0
- package/lib/state_selectors.d.ts.map +1 -0
- package/lib/utils.d.ts +8 -0
- package/lib/utils.d.ts.map +1 -0
- package/ngrx-entity-crud.d.ts +5 -0
- package/ngrx-entity-crud.d.ts.map +1 -0
- package/ngrx-entity-crud.metadata.json +1 -0
- package/package.json +41 -0
- package/public-api.d.ts +7 -0
- package/public-api.d.ts.map +1 -0
- package/schematics/auth/files/model/auth.ts +17 -0
- package/schematics/auth/files/store/auth-store/actions.ts +30 -0
- package/schematics/auth/files/store/auth-store/auth-mock.service.ts +95 -0
- package/schematics/auth/files/store/auth-store/auth-store.module.ts +34 -0
- package/schematics/auth/files/store/auth-store/auth.guard.ts +44 -0
- package/schematics/auth/files/store/auth-store/auth.service.ts +28 -0
- package/schematics/auth/files/store/auth-store/conf.ts +2 -0
- package/schematics/auth/files/store/auth-store/effects.ts +53 -0
- package/schematics/auth/files/store/auth-store/index.d.ts +13 -0
- package/schematics/auth/files/store/auth-store/index.ts +13 -0
- package/schematics/auth/files/store/auth-store/names.ts +3 -0
- package/schematics/auth/files/store/auth-store/reducer.ts +16 -0
- package/schematics/auth/files/store/auth-store/selectors.ts +51 -0
- package/schematics/auth/files/store/auth-store/state.ts +16 -0
- package/schematics/auth/files/views/login/components/logout-button/logout-button.component.ts +49 -0
- package/schematics/auth/files/views/login/login-main/login-main.component.html +25 -0
- package/schematics/auth/files/views/login/login-main/login-main.component.ts +57 -0
- package/schematics/auth/files/views/login/login-routing.module.ts +30 -0
- package/schematics/auth/files/views/login/login.module.ts +30 -0
- package/schematics/auth/index.d.ts +2 -0
- package/schematics/auth/index.js +77 -0
- package/schematics/auth/index.js.map +1 -0
- package/schematics/auth/schema.json +21 -0
- package/schematics/auth0/files/store/auth-store/actions.ts +21 -0
- package/schematics/auth0/files/store/auth-store/auth-store.module.ts +32 -0
- package/schematics/auth0/files/store/auth-store/auth.guard.ts +44 -0
- package/schematics/auth0/files/store/auth-store/authentication.service.ts +32 -0
- package/schematics/auth0/files/store/auth-store/conf.ts +2 -0
- package/schematics/auth0/files/store/auth-store/effects.ts +59 -0
- package/schematics/auth0/files/store/auth-store/index.d.ts +13 -0
- package/schematics/auth0/files/store/auth-store/index.ts +13 -0
- package/schematics/auth0/files/store/auth-store/login.component.ts +75 -0
- package/schematics/auth0/files/store/auth-store/names.ts +3 -0
- package/schematics/auth0/files/store/auth-store/profile.ts +12 -0
- package/schematics/auth0/files/store/auth-store/reducer.ts +23 -0
- package/schematics/auth0/files/store/auth-store/selectors.ts +24 -0
- package/schematics/auth0/files/store/auth-store/state.ts +11 -0
- package/schematics/auth0/index.d.ts +2 -0
- package/schematics/auth0/index.js +67 -0
- package/schematics/auth0/index.js.map +1 -0
- package/schematics/auth0/schema.json +21 -0
- package/schematics/collection.json +30 -0
- package/schematics/my-utility.d.ts +58 -0
- package/schematics/my-utility.js +257 -0
- package/schematics/my-utility.js.map +1 -0
- package/schematics/ng-add/files/root-store/index.d.ts +8 -0
- package/schematics/ng-add/files/root-store/index.ts +8 -0
- package/schematics/ng-add/files/root-store/root-reducer.ts +11 -0
- package/schematics/ng-add/files/root-store/root-store.module.ts +29 -0
- package/schematics/ng-add/files/root-store/router-store/actions.ts +27 -0
- package/schematics/ng-add/files/root-store/router-store/effects.ts +65 -0
- package/schematics/ng-add/files/root-store/router-store/index.d.ts +11 -0
- package/schematics/ng-add/files/root-store/router-store/index.ts +11 -0
- package/schematics/ng-add/files/root-store/router-store/pop-up-base.component.ts +83 -0
- package/schematics/ng-add/files/root-store/router-store/pop-up-base.module.ts +24 -0
- package/schematics/ng-add/files/root-store/router-store/reducer.ts +31 -0
- package/schematics/ng-add/files/root-store/router-store/router-store.module.ts +30 -0
- package/schematics/ng-add/files/root-store/router-store/selectors.ts +63 -0
- package/schematics/ng-add/files/root-store/router-store/state.ts +18 -0
- package/schematics/ng-add/files/root-store/selectors.ts +20 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/actions.ts +11 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/effects.ts +10 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/index.d.ts +13 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/index.ts +13 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/names.ts +3 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/operators.ts +24 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/reducer.ts +8 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/selectors.ts +41 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/slide-menu-store.module.ts +27 -0
- package/schematics/ng-add/files/root-store/slide-menu-store/state.ts +14 -0
- package/schematics/ng-add/files/root-store/state.ts +5 -0
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +78 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.json +22 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +52 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +57 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +7 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +50 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +15 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +23 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +36 -0
- package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__.module.ts +33 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +1 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +16 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +1 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +27 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +1 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +18 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +36 -0
- package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__.module.ts +26 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +38 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +50 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +30 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +101 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +12 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +21 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +37 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__.module.ts +49 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/components/button-create-many-test-__clazz@dasherize__.component.ts +46 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/components/button-delete-__clazz@dasherize__.component.ts +35 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/components/button-edit-many-test-__clazz@dasherize__.component.ts +45 -0
- package/schematics/section/files/primeng/__clazz@dasherize__/components/button-new-__clazz@dasherize__.component.ts +45 -0
- package/schematics/section/index.d.ts +2 -0
- package/schematics/section/index.js +56 -0
- package/schematics/section/index.js.map +1 -0
- package/schematics/section/schema.json +39 -0
- package/schematics/store/files/base-model/__clazz@dasherize__.ts +8 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__-store.module.ts +26 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.actions.ts +9 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.effects.ts +11 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.names.ts +3 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.reducer.ts +8 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.selectors.ts +18 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.state.ts +6 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/index.d.ts +13 -0
- package/schematics/store/files/base-store/__clazz@dasherize__-store/index.ts +13 -0
- package/schematics/store/files/crud-graphql/__clazz@dasherize__-store/__clazz@dasherize__.criteria.ts +39 -0
- package/schematics/store/files/crud-graphql/__clazz@dasherize__-store/__clazz@dasherize__.graphql +34 -0
- package/schematics/store/files/crud-model/__clazz@dasherize__.ts +8 -0
- package/schematics/store/files/crud-service/__clazz@dasherize__.service.ts +11 -0
- package/schematics/store/files/crud-service-graphql/__clazz@dasherize__.service.ts +16 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__-store.module.ts +26 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.actions.ts +55 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.effects.ts +90 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.names.ts +3 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.reducer.ts +103 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.selectors.ts +26 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.state.ts +11 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/index.d.ts +15 -0
- package/schematics/store/files/crud-store/__clazz@dasherize__-store/index.ts +15 -0
- package/schematics/store/index.d.ts +2 -0
- package/schematics/store/index.js +100 -0
- package/schematics/store/index.js.map +1 -0
- package/schematics/store/schema.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngrx-entity-crud.js","sources":["../../../projects/ngrx-entity-crud/src/lib/models.ts","../../../projects/ngrx-entity-crud/src/lib/entity_state.ts","../../../projects/ngrx-entity-crud/src/lib/j-ngrx-filter.ts","../../../projects/ngrx-entity-crud/src/lib/state_selectors.ts","../../../projects/ngrx-entity-crud/src/lib/actions.ts","../../../projects/ngrx-entity-crud/src/lib/utils.ts","../../../projects/ngrx-entity-crud/src/lib/reducer.ts","../../../projects/ngrx-entity-crud/src/lib/create_adapter.ts","../../../projects/ngrx-entity-crud/src/lib/effect.ts","../../../projects/ngrx-entity-crud/src/lib/base-crud.service.ts","../../../projects/ngrx-entity-crud/src/lib/base-crud-gql.service.ts","../../../projects/ngrx-entity-crud/src/ngrx-entity-crud.ts"],"sourcesContent":["import {EntityAdapter, EntityState} from '@ngrx/entity';\nimport {Action, ActionCreator, MemoizedSelector} from '@ngrx/store';\n\n// COPIATO DA @ngrx/store/src/models\n// se viene importato da @ngrx/store/src/models, da errori nei progetti dove viene utilizzato.\nexport declare interface TypedAction<T extends string> extends Action {\n readonly type: T;\n}\n\n// COPIATO DA @ngrx/store/src/models\n// se viene importato da @ngrx/entity/src/models, da errori nei progetti dove viene utilizzato.\nexport interface DictionaryNum<T> {\n [id: number]: T | undefined;\n}\n\nexport declare abstract class Dictionary<T> implements DictionaryNum<T> {\n [id: string]: T | undefined;\n}\n\n// COPIATO DA @ngrx/store/src/models\n// se viene importato da @ngrx/entity/src/models, da errori nei progetti dove viene utilizzato.\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n// COPIATO DA @ngrx/store/src/models\n// se viene importato da @ngrx/entity/src/models, da errori nei progetti dove viene utilizzato.\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\n// per evitare l'importazione\n// import {Comparer, EntityAdapter, IdSelector} from '@ngrx/entity/src/models';\n// ho copiato i seguenti type\nexport declare type ComparerStr<T> = (a: T, b: T) => string;\nexport declare type Comparer<T> = (a: T, b: T) => number;\n\nexport interface EntitySelectors<T, V> {\n /**\n * - used to select a group of ids\n * @param (state: V) => string[] | number[]\n */\n selectIds: (state: V) => string[] | number[];\n /**\n * - used to select a group of entities\n * @param (state: V) => Dictionary<T>\n */\n selectEntities: (state: V) => Dictionary<T>;\n /**\n * - used to select all items\n * @param (state: V) => T[]\n */\n selectAll: (state: V) => T[];\n /**\n * - used to select the sum of items\n * @param (state: V) => number\n */\n selectTotal: (state: V) => number;\n}\n\nexport enum CrudEnum {\n SEARCH = 'Search',\n DELETE = 'Delete',\n CREATE = 'Create',\n EDIT = 'Edit',\n SELECT = 'Select',\n RESET = 'Reset',\n}\n\nexport enum ActionEnum {\n RESPONSE = 'Response',\n REQUEST = 'Request',\n FAILURE = 'Failure',\n SUCCESS = 'Success',\n}\n\nexport interface OptRequestBase {\n /**\n * is added to the service route,\n * in some cases it is necessary to invoke a sub-route.\n * if the service was \"user\" and the sub-route \"user/accept\":\n * path:[\"accept\"]\n */\n path?: any[];\n /**\n * Dispatched actions in case of error.\n */\n onFault?: Action[];\n /**\n * Dispatched actions in the event of a positive response\n */\n onResult?: Action[];\n\n /**\n * per ogni stringa presente nell'attributo, verrà spedita una notifica Response.\n * in questo modo, chi invia la notifica potrà poi filtrare i fati in base alla chiave inviata.\n */\n dispatchResponse?: boolean;\n}\n\n/**\n * - criteria: ICriteria: criteria di ricerca\n */\nexport interface ICriteria<QP = any> extends OptRequestBase {\n /**\n *\n * \"REFRESH\" the store will be deleted before making the remote call, all the elements will be added to the call result.\n *\n */\n mode?: 'REFRESH' | 'upsertMany' | 'addAll';\n\n queryParams?: QP;\n}\n\nexport interface OptRequest<T = any> extends OptRequestBase {\n mutationParams: T;\n}\n\nexport interface OptResponse<T> {\n actionType: string;\n response: Response<T>;\n request: ICriteria | OptRequest;\n}\n\nexport interface OptEffect {\n /**\n * per ogni stringa presente nell'attributo, verrà spedita una notifica Response.\n * in questo modo, chi invia la notifica potrà poi filtrare i fati in base alla chiave inviata.\n */\n dispatchResponse?: boolean;\n}\n\nexport interface Response<T> {\n data: T | any;\n hasError: boolean;\n message: string;\n}\n\nexport interface FilterMetadata {\n value?: any;\n matchMode?: string;\n renderFunction?: (value: any) => string;\n}\n\nexport interface CrudState<T> extends EntityState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n filters: { [s: string]: FilterMetadata; };\n lastCriteria: ICriteria;\n idsSelected: string[] | number[];\n itemSelected: T;\n idSelected: string | number;\n // itemsSelected: T[];\n entitiesSelected: Dictionary<T>;\n // ogni entità registra l'azione scatenata e la risposta dal server.\n responses: OptResponse<T>[];\n}\n\nexport interface EntityCrudSelectors<T, V> extends EntitySelectors<T, V> {\n /**\n *\n *\n * - used to select selected id\n * - populated with action \"...SelectedItem({item})\",\n * @param (state: V) => string | number\n */\n selectIdSelected: (state: V) => string | number;\n /**\n * - used to select selected ids\n * - populated with action \"...SelectedItems({item})\",\n * @param (state: V) => string[] | number[]\n */\n selectIdsSelected: (state: V) => string[] | number[];\n /**\n * - used to select selectedItem\n * - populated with action \"...SelectedItems({item})\",\n * - local clone, does not match the instance in the store\n * @param (state: V) => T\n */\n selectItemSelected: (state: V) => T;\n /**\n * - used to select selected item\n * - populated with action \"...SelectedItems({item:{id:string ...}})\",\n * - same instance of the store (state.entities)\n * - the selector is created with:\n * - selectIdSelected + selectEntities,\n * @param (state: V) => T\n */\n selectItemSelectedOrigin: (state: V) => T;\n /**\n * - used to select a group of selected items\n * - populated with action \"...SelectedItems({item})\",\n * - local clone, does not match the instance in the store\n * @param (state: V) => T[]\n */\n selectItemsSelected: (state: V) => T[];\n\n /**\n * - used to select a group of selected entities\n * - populated with action \"...SelectedItems({item})\",\n * - local clone, does not match the instance in the store\n * @param (state: V) => Dictionary<T>\n */\n selectEntitiesSelected: (state: V) => Dictionary<T>;\n /**\n * - used to select a group of selected items\n * - populated with action \"...SelectedItems({item})\",\n * - same instance of the store (state.entities)\n * - selectIdsSelected + selectEntities,\n * @param (state: V) => T[]\n */\n selectItemsSelectedOrigin: (state: V) => T[];\n /**\n * - used to select last criteria\n * @param (state: V) => ICriteria\n */\n selectLastCriteria: (state: V) => ICriteria;\n /**\n * - used to select an error\n * @param (state: V) => string\n */\n selectError: (state: V) => string;\n /**\n * - returns true if there are calls in progress\n * @@param (state: V) => boolean\n */\n selectIsLoading: (state: V) => boolean;\n /**\n * - returns true if all calls are completed\n * @@param (state: V) => boolean\n */\n selectIsLoaded: (state: V) => boolean;\n /**\n * - used to select filters\n * @param (state: V) => {[s: string]: FilterMetadata;}\n */\n selectFilters: (state: V) => { [s: string]: FilterMetadata; };\n /**\n * - used to select filtered items\n * @param MemoizedSelector<V, T[]>\n */\n selectFilteredItems: MemoizedSelector<V, T[]>;\n /**\n * - used to select response variable contained in the formula\n * @param (state: V) => OptResponse<T>[]\n */\n selectResponses: (state: V) => OptResponse<T>[];\n}\n\nexport interface EntityCrudState<T> extends EntityState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n filters: { [s: string]: FilterMetadata; };\n lastCriteria: ICriteria;\n itemSelected: T;\n idSelected: string | number;\n // /**\n // * TODO: questo attributo andra sostituiro da una lista di id, d\n // * a utilizzare come riferimenti agli elementi selezionati.\n // * @deprecated utilizzare entitySelected/idSelected\n // */\n // itemsSelected: T[];\n entitiesSelected: Dictionary<T>;\n\n idsSelected: string[] | number[];\n // ogni entità registra l'azione scatenata e la risposta dal server.\n responses: OptResponse<T>[];\n}\n\nexport interface EntityCrudAdapter<T> extends EntityAdapter<T> {\n getInitialCrudState(): EntityCrudState<T>;\n\n getInitialCrudState<S extends object>(state: S): EntityCrudState<T> & S;\n\n getCrudSelectors<V>(selectState: (state: V) => EntityCrudState<T>): EntityCrudSelectors<T, V>;\n\n createCrudActions(name: string): Actions<T>;\n\n // todo modificare la firma del metodo, tipizzare Actions<any>\n createCrudReducer<S>(initialState: S, actions: Actions<any>);\n}\n\ninterface PropsSearchSuccess<T> {\n items: T;\n request: ICriteria;\n}\n\nexport interface Actions<T> {\n\n // azione dispacciata dall'effect se:\n // OptRequestBase.dispatchResponse === true\n // OptEffect.dispatchResponse === true\n Response?: ActionCreator<string, (props: OptResponse<T | T[]>) => OptResponse<T | T[]> & TypedAction<string>>;\n ResetResponses?: ActionCreator<string, () => { type: string; }>;\n\n /**\n * - action used to execute asynchronous researches\n * @example StoreActions.SearchRequest({queryParams: {}})\n * - mode?: 'REFRESH': se viene passato il valore REFRESH, il dato presente nello store viene cancellato prima di eseguire la chiamata,\n * altrimenti il dato verrà sostituito al result della chiamata\n * @param mode?: 'REFRESH' | 'upsertMany' | 'addAll'\n * @param queryParams?: any\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n * @param type: string\n *\n */\n SearchRequest?: ActionCreator<string, (props: ICriteria) => ICriteria & TypedAction<string>>;\n SearchFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n SearchSuccess?: ActionCreator<string, (props: { items: T[], request: ICriteria }) => { items: T[], request: ICriteria } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to remove an item\n * @example const toState: State = featureReducer(state, actions.DeleteRequest(payload));\n * @param item: T\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n DeleteRequest?: ActionCreator<string, (props: OptRequest) => OptRequest & TypedAction<string>>;\n DeleteFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n DeleteSuccess?: ActionCreator<string, (props: { id: string; }) => { id: string; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to remove more items\n * @example this.store$.dispatch(<%= clazz %>StoreActions.DeleteManyRequest({items}));\n * @param items: T[]\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n DeleteManyRequest?: ActionCreator<string, (props: OptRequest) => OptRequest & TypedAction<string>>;\n DeleteManyFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n DeleteManySuccess?: ActionCreator<string, (props: { ids: string[]; }) => { ids: string[]; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to create a new item\n * @example store.dispatch(actions.CreateRequest(payload));\n * @param item: T\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n CreateRequest?: ActionCreator<string, (props: OptRequest) => OptRequest & TypedAction<string>>;\n CreateFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n CreateSuccess?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to create more new items\n * @example store.dispatch(actions.CreateManyRequest(payload));\n * @param items: T[]\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n CreateManyRequest?: ActionCreator<string, (props: OptRequest<T[] | T>) => OptRequest<T[] | T> & TypedAction<string>>;\n CreateManyFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n CreateManySuccess?: ActionCreator<string, (props: { items: T[]; }) => { items: T[]; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to select an item\n * @example store.dispatch(actions.SelectRequest(payload));\n * @param item: T\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n SelectRequest?: ActionCreator<string, (props: ICriteria) => ICriteria & TypedAction<string>>;\n SelectFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n SelectSuccess?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to modify an item\n * @example store.dispatch(actions.EditRequest(payload));\n * @param item: T\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n EditRequest?: ActionCreator<string, (props: OptRequest) => OptRequest & TypedAction<string>>;\n EditFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n EditSuccess?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to execute a request to modify more items\n * @example store.dispatch(actions.EditManyRequest(payload));\n * @param items: T[]\n * @param path?: any[]\n * @param onFault?: Action[]\n * @param onResult?: Action[]\n * @param dispatchResponse?: boolean\n */\n EditManyRequest?: ActionCreator<string, (props: OptRequest) => OptRequest & TypedAction<string>>;\n EditManyFailure?: ActionCreator<string, (props: { error: string; }) => { error: string; } & TypedAction<string>>;\n EditManySuccess?: ActionCreator<string, (props: { items: T[]; }) => { items: T[]; } & TypedAction<string>>;\n\n /**\n * - action used to execute a store reset\n * @example store.dispatch(actions.Reset());\n * @param type: string\n */\n Reset?: ActionCreator<string, () => { type: string; }>;\n\n /**\n * - action used to apply some filters on data\n * @example store.dispatch(actions.Filters(payload));\n * @param filters: { [s: string]: FilterMetadata;}\n */\n Filters?: ActionCreator<string, (props: { filters: { [s: string]: FilterMetadata; }; }) => { filters: { [s: string]: FilterMetadata; }; } & TypedAction<string>>;\n\n // selezione locale di + elementi\n /**\n * - action used to identify a group of items to select\n * @example store.dispatch(actions.SelectItems(payload));\n * @param items: T[]\n */\n SelectItems?: ActionCreator<string, (props: { items: T[]; }) => { items: T[]; } & TypedAction<string>>;\n // TODO: doc\n AddManySelected?: ActionCreator<string, (props: { items: T[]; }) => { items: T[]; } & TypedAction<string>>;\n // TODO: doc\n RemoveManySelected?: ActionCreator<string, (props: { ids: string[]; }) => { ids: string[]; } & TypedAction<string>>;\n // TODO: doc\n RemoveAllSelected?: ActionCreator<string>;\n /**\n * - action used to identify a single item to select\n * @example store.dispatch(actions.SelectItem(payload));\n * @param item: T\n */\n SelectItem?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to modify an item on the store\n * @example store.dispatch(actions.Edit(payload));\n * @param item: T\n */\n Edit?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to create an item on the store\n * @example store.dispatch(actions.Create(payload));\n * @param item: T\n */\n Create?: ActionCreator<string, (props: { item: T; }) => { item: T; } & TypedAction<string>>;\n\n /**\n * - action used to remove an item on the store\n * @example const toState: State = featureReducer(expectState, actions.Delete(payload));\n * @param id: string\n */\n Delete?: ActionCreator<string, (props: { id: string; }) => { id: string; } & TypedAction<string>>;\n\n}\n","import {EntityCrudState} from './models';\n\nexport function getInitialEntityCrudState<V>(): EntityCrudState<V> {\n return {\n ids: [],\n entities: {},\n isLoading: false,\n isLoaded: false,\n error: null,\n filters: {},\n lastCriteria: null,\n entitiesSelected: {},\n idsSelected: [],\n itemSelected: null,\n idSelected: null,\n responses: []\n };\n}\n\nexport function createInitialCrudStateFactory<V>() {\n function getInitialCrudState(): EntityCrudState<V>;\n function getInitialCrudState<S extends object>(\n additionalState: S\n ): EntityCrudState<V> & S;\n function getInitialCrudState(additionalState: any = {}): any {\n return Object.assign(getInitialEntityCrudState(), additionalState);\n }\n\n return {getInitialCrudState};\n}\n","import {FilterMetadata} from './models';\n\nexport const isEmpty = (obj) => {\n return obj === null || undefined\n ? true\n : (() => {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n })();\n};\n\nexport function jNgrxFilter<T>(items: T[], filters: { [s: string]: FilterMetadata; }): T[] {\n return new JNgrxFilter<T>().jNgrxFilter(items, filters);\n}\n\nexport class JNgrxFilter<T> {\n\n private readonly filterConstraints = {\n\n startsWith(value, filter): boolean {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n const filterValue = filter.toLowerCase();\n return value.toString().toLowerCase().slice(0, filterValue.length) === filterValue;\n },\n\n contains(value, filter): boolean {\n if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toString().toLowerCase().indexOf(filter.toLowerCase()) !== -1;\n },\n\n endsWith(value, filter): boolean {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n const filterValue = filter.toString().toLowerCase();\n return value.toString().toLowerCase().indexOf(filterValue, value.toString().length - filterValue.length) !== -1;\n },\n\n equals(value, filter): boolean {\n if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toString().toLowerCase() === filter.toString().toLowerCase();\n },\n\n notEquals(value, filter): boolean {\n if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {\n return false;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n\n return value.toString().toLowerCase() !== filter.toString().toLowerCase();\n },\n\n in(value, filters: any[]): boolean {\n if (filters === undefined || filters === null || filters.length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n filters.forEach(filter => {\n if (filter === value) {\n return true;\n }\n });\n\n return false;\n }\n };\n\n public jNgrxFilter(items: T[], filters: { [s: string]: FilterMetadata; }): T[] {\n\n if (isEmpty(filters)) {\n return items;\n }\n\n const filteredValue = [];\n items.forEach((item) => {\n let localMatch = false;\n\n // tslint:disable-next-line:forin\n for (const filterField in filters) {\n\n const filterValue = filters[filterField].value;\n const filterMatchMode = filters[filterField].matchMode || 'startsWith';\n const filterConstraint = this.filterConstraints[filterMatchMode];\n\n const renderFunction = filters[filterField].renderFunction;\n const dataFieldValue = this.isFunction(renderFunction) ? renderFunction(this.resolveFieldData(item, filterField)) : this.resolveFieldData(item, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue)) {\n localMatch = true;\n break;\n }\n }\n if (localMatch) {\n filteredValue.push(item);\n }\n });\n\n return filteredValue;\n }\n\n private resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else {\n return null;\n }\n }\n\n private readonly isFunction = (obj: any) => !!(obj && obj.constructor && obj.call && obj.apply);\n}\n","import {CrudState, Dictionary, EntityCrudSelectors, EntityCrudState, FilterMetadata, ICriteria, OptResponse} from './models';\nimport {createSelector, MemoizedSelector} from '@ngrx/store';\nimport {jNgrxFilter} from './j-ngrx-filter';\n\nexport function createCrudSelectorsFactory<T>(adapter) {\n\n function getCrudSelectors<V>(\n selectState: (state: V) => EntityCrudState<T>\n ): EntityCrudSelectors<T, V>;\n function getCrudSelectors<V>(\n selectState: (state: V) => EntityCrudState<T>\n ): EntityCrudSelectors<T, V> {\n\n const getError = (state: CrudState<T>): any => state.error;\n const getIsLoading = (state: CrudState<T>): boolean => state.isLoading;\n const getIsLoaded = (state: CrudState<T>): boolean => state.isLoaded;\n const getFilters = (state: CrudState<T>): { [s: string]: FilterMetadata; } => state.filters;\n const getLastCriteria = (state: CrudState<T>): ICriteria => state.lastCriteria;\n const getItemSelected = (state: CrudState<T>): T => state.itemSelected;\n const getIdSelected = (state: CrudState<T>): string | number => state.idSelected;\n // const getItemsSelected = (state: CrudState<T>): T[] => state.itemsSelected;\n const getEntitiesSelected = (state: CrudState<T>): Dictionary<T> => state.entitiesSelected;\n const getIdsSelected = (state: CrudState<T>): string[] | number[] => state.idsSelected;\n const getRespones = (state: CrudState<T>): OptResponse<T>[] => state.responses;\n\n const selectError: MemoizedSelector<V, any> = createSelector(selectState, getError);\n const selectIsLoading: MemoizedSelector<V, boolean> = createSelector(selectState, getIsLoading);\n const selectIsLoaded: MemoizedSelector<V, boolean> = createSelector(selectState, getIsLoaded);\n const selectFilters: MemoizedSelector<V, { [s: string]: FilterMetadata; }> = createSelector(\n selectState,\n getFilters\n );\n const selectLastCriteria: MemoizedSelector<V, ICriteria> = createSelector(selectState, getLastCriteria);\n\n const selectItemSelected: MemoizedSelector<V, T> = createSelector(selectState, getItemSelected);\n const selectEntitiesSelected: MemoizedSelector<V, Dictionary<T>> = createSelector(selectState, getEntitiesSelected);\n const selectItemsSelected: MemoizedSelector<V, T[]> = createSelector(selectEntitiesSelected, (entities: Dictionary<T>) => Object.values(entities));\n\n const selectIdSelected: MemoizedSelector<V, string | number> = createSelector(selectState, getIdSelected);\n const selectIdsSelected: MemoizedSelector<V, string[] | number[]> = createSelector(selectState, getIdsSelected);\n\n const selectResponses: MemoizedSelector<V, OptResponse<T>[]> = createSelector(selectState, getRespones);\n\n const {\n selectAll,\n selectEntities,\n selectIds,\n selectTotal\n } = adapter.getSelectors(selectState);\n\n const selectItemsSelectedOrigin = createSelector(\n selectIdsSelected,\n selectEntities,\n (ids: any[], entities: Dictionary<T>): any =>\n ids.map((id: any) => (entities[id] as T))\n );\n\n const selectItemSelectedOrigin = createSelector(\n selectIdSelected,\n selectEntities,\n (id, entities: Dictionary<T>): any => entities[id]\n );\n\n const selectFilteredItems: MemoizedSelector<any, T[]> = createSelector([selectAll, selectFilters],\n (allTasks: T[], filters: { [s: string]: FilterMetadata; }): T[] => {\n return jNgrxFilter<T>(allTasks, filters);\n }\n );\n\n return {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectFilters,\n selectFilteredItems,\n selectAll,\n selectEntities,\n selectIds,\n selectTotal,\n selectLastCriteria,\n selectIdSelected,\n selectItemSelected,\n selectItemSelectedOrigin,\n selectIdsSelected,\n selectItemsSelected,\n selectEntitiesSelected,\n selectItemsSelectedOrigin,\n selectResponses,\n };\n }\n\n return {getCrudSelectors};\n}\n","import {ActionEnum, Actions, CrudEnum, FilterMetadata, ICriteria, OptRequest, OptResponse} from './models';\nimport {createAction, props} from '@ngrx/store';\n\nexport function createCrudActionsFactory<T>() {\n function createCrudActions(name: string): Actions<T> {\n\n // tslint:disable:variable-name\n /**\n * mode:\n * comportamento predefinito, il dato attualmente presente viene cancellato e ripopolato al result della chiamata\n * REFRESH => il dato viene sostituito al result della chiamata.\n */\n const Response = createAction(`[${name}] ${ActionEnum.RESPONSE}`, props<OptResponse<T | T[]>>());\n const ResetResponses = createAction(`[${name}] ${CrudEnum.RESET} ${ActionEnum.RESPONSE}`);\n\n const SearchRequest = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.REQUEST}`, props<ICriteria>());\n const SearchFailure = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const SearchSuccess = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.SUCCESS}`, props<{ items: T[], request: ICriteria }>());\n\n const DeleteRequest = createAction(`[${name}] ${CrudEnum.DELETE} ${ActionEnum.REQUEST}`, props<OptRequest>());\n const DeleteFailure = createAction(`[${name}] ${CrudEnum.DELETE} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const DeleteSuccess = createAction(`[${name}] ${CrudEnum.DELETE} ${ActionEnum.SUCCESS}`, props<{ id: string }>());\n\n const DeleteManyRequest = createAction(`[${name}] ${CrudEnum.DELETE} many ${ActionEnum.REQUEST}`, props<OptRequest>());\n const DeleteManyFailure = createAction(`[${name}] ${CrudEnum.DELETE} many ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const DeleteManySuccess = createAction(`[${name}] ${CrudEnum.DELETE} many ${ActionEnum.SUCCESS}`, props<{ ids: string[] }>());\n\n const CreateRequest = createAction(`[${name}] ${CrudEnum.CREATE} ${ActionEnum.REQUEST}`, props<OptRequest>());\n const CreateFailure = createAction(`[${name}] ${CrudEnum.CREATE} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const CreateSuccess = createAction(`[${name}] ${CrudEnum.CREATE} ${ActionEnum.SUCCESS}`, props<{ item: T }>());\n\n const CreateManyRequest = createAction(`[${name}] ${CrudEnum.CREATE} many ${ActionEnum.REQUEST}`, props<OptRequest>());\n const CreateManyFailure = createAction(`[${name}] ${CrudEnum.CREATE} many ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const CreateManySuccess = createAction(`[${name}] ${CrudEnum.CREATE} many ${ActionEnum.SUCCESS}`, props<{ items: T[] }>());\n\n const SelectRequest = createAction(`[${name}] ${CrudEnum.SELECT} ${ActionEnum.REQUEST}`, props<ICriteria>());\n const SelectFailure = createAction(`[${name}] ${CrudEnum.SELECT} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const SelectSuccess = createAction(`[${name}] ${CrudEnum.SELECT} ${ActionEnum.SUCCESS}`, props<{ item: T }>());\n\n const EditRequest = createAction(`[${name}] ${CrudEnum.EDIT} ${ActionEnum.REQUEST}`, props<OptRequest>());\n const EditFailure = createAction(`[${name}] ${CrudEnum.EDIT} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const EditSuccess = createAction(`[${name}] ${CrudEnum.EDIT} ${ActionEnum.SUCCESS}`, props<{ item: T }>());\n\n const EditManyRequest = createAction(`[${name}] ${CrudEnum.EDIT} many ${ActionEnum.REQUEST}`, props<OptRequest>());\n const EditManyFailure = createAction(`[${name}] ${CrudEnum.EDIT} many ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const EditManySuccess = createAction(`[${name}] ${CrudEnum.EDIT} many ${ActionEnum.SUCCESS}`, props<{ items: T[] }>());\n\n const Reset = createAction(`[${name}] ${CrudEnum.RESET}`);\n const Filters = createAction(`[${name}] Filters`, props<{ filters: { [s: string]: FilterMetadata; } }>());\n\n const SelectItems = createAction(`[${name}] SelectItems`, props<{ items: T[] }>());\n const AddManySelected = createAction(`[${name}] AddManySelected`, props<{ items: T[] }>());\n const RemoveManySelected = createAction(`[${name}] RemoveManySelected`, props<{ ids: string[] }>());\n const RemoveAllSelected = createAction(`[${name}] RemoveAllSelected`);\n\n const SelectItem = createAction(`[${name}] SelectItem`, props<{ item: T }>());\n\n const Edit = createAction(`[${name}] ${CrudEnum.EDIT} `, props<{ item: T }>());\n const Create = createAction(`[${name}] ${CrudEnum.CREATE}`, props<{ item: T }>());\n const Delete = createAction(`[${name}] ${CrudEnum.DELETE} `, props<{ id: string }>());\n\n return {\n Response,\n ResetResponses,\n SearchRequest,\n SearchFailure,\n SearchSuccess,\n\n DeleteRequest,\n DeleteFailure,\n DeleteSuccess,\n\n DeleteManyRequest,\n DeleteManyFailure,\n DeleteManySuccess,\n\n CreateRequest,\n CreateFailure,\n CreateSuccess,\n\n CreateManyRequest,\n CreateManyFailure,\n CreateManySuccess,\n\n SelectRequest,\n SelectFailure,\n SelectSuccess,\n\n EditRequest,\n EditFailure,\n EditSuccess,\n\n EditManyRequest,\n EditManyFailure,\n EditManySuccess,\n\n Reset,\n Filters,\n SelectItems,\n RemoveManySelected,\n AddManySelected,\n RemoveAllSelected,\n SelectItem,\n Edit,\n Create,\n Delete,\n };\n }\n\n return {createCrudActions};\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {ActionEnum, Dictionary, IdSelector} from './models';\nimport {Action} from '@ngrx/store';\nimport {isDevMode} from '@angular/core';\nimport {EntityAdapter} from '@ngrx/entity';\n\nexport const ofFailure = <T extends Action>(): MonoTypeOperatorFunction<T> => {\n return input$ => input$.pipe(filter(value => value.type.endsWith(ActionEnum.FAILURE)));\n};\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n const key = selectId(entity);\n\n if (isDevMode() && key === undefined) {\n console.warn(\n '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n 'You should probably provide your own `selectId` implementation.',\n 'The entity that was passed:',\n entity,\n 'The `selectId` implementation:',\n selectId.toString()\n );\n }\n\n return key;\n}\n\nexport const toDictionary = <T>(items: T[], adapter: EntityAdapter<T>) => items.reduce((prev, curr): Dictionary<T> => {\n const key = selectIdValue(curr, adapter.selectId);\n prev[key] = curr;\n return prev;\n}, {});\n","import {Actions, EntityCrudState, ICriteria, OptRequest} from './models';\nimport {EntityAdapter} from '@ngrx/entity';\nimport {ActionCreator, createReducer, on, ReducerTypes} from '@ngrx/store';\nimport {selectIdValue, toDictionary} from './utils';\n\nexport function evalData<T>(fn: () => T, def: any = null): T {\n try {\n return fn();\n } catch (e) {\n return def;\n }\n}\n\nexport function createCrudOns<T, S extends EntityCrudState<T>>(adapter: EntityAdapter<T>, initialState: S, actions: Actions<T>): { [key: string]: any } {\n const searchRequestOn = on(actions.SearchRequest, (state: S, criteria: ICriteria) => {\n if (!criteria.path && !criteria.mode && !criteria.queryParams) {\n throw new Error('It is not possible a search without payload, use :\\'{criteria:{}}\\'');\n }\n\n const {itemSelected, idSelected, entitiesSelected, idsSelected} = initialState;\n\n if (criteria.mode === 'REFRESH' || criteria.mode === 'upsertMany') {\n return Object.assign(\n {},\n state,\n {\n isLoading: true,\n error: initialState.error,\n lastCriteria: criteria,\n itemSelected,\n idSelected,\n entitiesSelected,\n idsSelected\n }\n );\n }\n return adapter.removeAll(\n Object.assign(\n {},\n state,\n {\n isLoading: true,\n error: initialState.error,\n lastCriteria: criteria,\n itemSelected,\n idSelected,\n entitiesSelected,\n idsSelected\n })\n );\n });\n const deleteRequestOn = on(actions.DeleteRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const deleteManyRequestOn = on(actions.DeleteManyRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const editRequestOn = on(actions.EditRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const editManyRequestOn = on(actions.EditManyRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const createRequestOn = on(actions.CreateRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const createManyRequestOn = on(actions.CreateManyRequest, (state: S, request: OptRequest) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n const selectRequestOn = on(actions.SelectRequest, (state: S, request: ICriteria) => {\n return Object.assign(\n {},\n state,\n {isLoading: true, error: initialState.error}\n );\n });\n\n const searchSuccessOn = on(actions.SearchSuccess, (state: S, {type, items, request}) => {\n const mode = evalData(() => request.mode, null) || 'setAll';\n let method;\n switch (mode) {\n case 'REFRESH' : {\n // console.log('REFRESH');\n method = adapter.setAll;\n break;\n }\n case 'upsertMany': {\n // console.log('upsertMany');\n method = adapter.upsertMany;\n break;\n }\n case 'setAll': {\n // console.log('setAll');\n method = adapter.setAll;\n break;\n }\n\n default: {\n // console.log('default');\n method = adapter.setAll;\n break;\n }\n }\n\n return method(items, Object.assign(\n {},\n state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n });\n const deleteSuccessOn = on(actions.DeleteSuccess, (state: S, {type, id}) => {\n\n // tolgo dallo store.idsSelected l'elemento cancellato\n const idsSelected = (state.idsSelected as any[]).filter((idA) => idA === id);\n const entitiesSelected = idsSelected.reduce((prev, curr) => {\n prev[curr] = state.entitiesSelected[curr];\n return prev;\n }, {});\n\n // se ho cancellato l'id seezionato, lo tolgo dallo store.\n const idSelected = !!state.idSelected && state.idSelected === id ? null : state.idSelected;\n const itemSelected = !idSelected ? null : state.itemSelected;\n\n return adapter.removeOne(id,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null,\n idSelected,\n idsSelected,\n itemSelected,\n entitiesSelected\n }\n ));\n }\n );\n\n const deleteManySuccessOn = on(actions.DeleteManySuccess, (state: S, {type, ids}) => {\n\n // tolgo dallo store.idsSelected gli elementi che sono stati cancellati.\n const idsSelected: string[] = (state.idsSelected as any[]).filter((id) => !(id in ids));\n const entitiesSelected = idsSelected.reduce((prev, curr) => {\n prev[curr] = state.entitiesSelected[curr];\n return prev;\n }, {});\n\n // se ho cancellato l'id seezionato, lo tolgo dallo store.\n const idSelected = !!state.idSelected && state.idSelected in ids ? null : state.idSelected;\n const itemSelected = !idSelected ? null : state.itemSelected;\n return adapter.removeMany(ids,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null,\n idSelected,\n idsSelected,\n itemSelected,\n entitiesSelected\n }\n ));\n });\n\n const deleteOn = on(actions.Delete, (state: S, {type, id}) => {\n // tolgo dallo store.idsSelected l'elemento cancellato\n const idsSelected = (state.idsSelected as any[]).filter((idA) => idA === id);\n\n // se ho cancellato l'id seezionato, lo tolgo dallo store.\n const idSelected = !!state.idSelected && state.idSelected === id ? null : state.idSelected;\n\n return adapter.removeOne(id,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null,\n idSelected,\n idsSelected\n }\n ));\n }\n );\n const responseOn = on(actions.Response, (state: S, response) => {\n const responses = [...state.responses, response];\n return {...{}, ...state, ...{responses}};\n });\n\n const resetResponsesOn = on(actions.ResetResponses, (state: S) => {\n const responses = [];\n return {...state, ...{responses}};\n }\n );\n const createSuccessOn = on(actions.CreateSuccess, (state: S, {type, item}) => adapter.addOne(item,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const createManySuccessOn = on(actions.CreateManySuccess, (state: S, {type, items}) => adapter.addMany(items,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const createOn = on(actions.Create, (state: S, {type, item}) => adapter.addOne(item,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const editSuccessOn = on(actions.EditSuccess, (state: S, {item, type}) => adapter.upsertOne(item,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const editManySuccessOn = on(actions.EditManySuccess, (state: S, {items, type}) => adapter.upsertMany(items,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const editOn = on(actions.Edit, (state: S, {item, type}) => adapter.upsertOne(item,\n Object.assign(\n {}, state,\n {\n isLoaded: true,\n isLoading: false,\n error: null\n }\n )));\n const filtersOn = on(actions.Filters, (state: S, {type, filters}) => Object.assign({}, state, {filters}));\n\n const removeAllSelectedOn = on(actions.RemoveAllSelected, (state: S, {type}: { type: string }) => {\n const result = {\n ...state,\n idsSelected: [],\n // itemsSelected: [], //todo: @deprecated da cancellare questo tipo di assegnazione.\n entitiesSelected: {}\n };\n\n return result;\n });\n\n const addManySelectedOn = on(actions.AddManySelected, (state: S, {type, items}: { type: string, items: T[] }) => {\n const entitiesCurr = toDictionary(items, adapter);\n const entitiesSelected = {...state.entitiesSelected, ...entitiesCurr};\n const idsSelected = Object.keys(entitiesSelected);\n const result = {\n ...state,\n idsSelected,\n // itemsSelected: items, //todo: @deprecated da cancellare questo tipo di assegnazione.\n entitiesSelected\n };\n\n return result;\n });\n\n const removeManySelectedOn = on(actions.RemoveManySelected, (state: S, {type, ids}: { type: string, ids: string[] }) => {\n const idsAsString = ids.map(x => x + '');\n const idsSelected = Object.keys(state.entitiesSelected).filter(id => !idsAsString.includes(id + ''));\n const entitiesSelected = idsSelected.reduce((prec, curr) => ({...prec, [curr]: state.entitiesSelected[curr]}), {});\n // const itemsSelected = Object.values(entitiesSelected);\n\n const result = {\n ...state,\n idsSelected,\n // itemsSelected, //todo: @deprecated da cancellare questo tipo di assegnazione.\n entitiesSelected\n };\n\n return result;\n });\n\n const selectItemsOn = on(actions.SelectItems, (state: S, {type, items}) => {\n const entitiesSelected = toDictionary(items, adapter);\n const idsSelected = Object.keys(entitiesSelected);\n const result = {\n ...state,\n idsSelected,\n // itemsSelected: items,\n entitiesSelected\n };\n\n return result;\n });\n const selectItemOn = on(actions.SelectItem, (state: S, {type, item}) => {\n const idSelected = selectIdValue(item, adapter.selectId);\n const result = {\n ...state,\n idSelected,\n itemSelected: item\n };\n\n return result;\n });\n const selectSuccessOn = on(actions.SelectSuccess, (state: S, {type, item}) => {\n const idSelected = selectIdValue(item, adapter.selectId);\n const result = {\n ...state,\n idSelected,\n itemSelected: item,\n isLoaded: true,\n isLoading: false,\n error: null\n };\n\n return result;\n }\n );\n const searchFailureOn = on(\n actions.SearchFailure,\n (state: S, {type, error}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const deleteFailureOn = on(\n actions.DeleteFailure,\n (state: S, {type, error}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const deleteManyFailureOn = on(\n actions.DeleteManyFailure,\n (state: S, {type, error}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const createFailureOn = on(\n actions.CreateFailure,\n (state: S, {type, error}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const createManyFailureOn = on(\n actions.CreateManyFailure,\n (state: S, {type, error}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const editFailureOn = on(\n actions.EditFailure,\n (state: S, {error, type}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const editManyFailureOn = on(\n actions.EditManyFailure,\n (state: S, {error, type}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const selectFailureOn = on(\n actions.SelectFailure,\n (state: S, {error, type}) => Object.assign(\n {},\n state,\n {\n isLoaded: false,\n isLoading: false,\n error\n }\n ));\n const resetOn = on(actions.Reset, (state: S) => ({...state, ...initialState}));\n return {\n responseOn,\n resetResponsesOn,\n searchRequestOn,\n deleteRequestOn,\n deleteManyRequestOn,\n editRequestOn,\n editManyRequestOn,\n createRequestOn,\n createManyRequestOn,\n selectRequestOn,\n searchSuccessOn,\n deleteSuccessOn,\n deleteManySuccessOn,\n createSuccessOn,\n createManySuccessOn,\n selectSuccessOn,\n editSuccessOn,\n editManySuccessOn,\n searchFailureOn,\n deleteFailureOn,\n deleteManyFailureOn,\n createFailureOn,\n createManyFailureOn,\n selectFailureOn,\n editFailureOn,\n editManyFailureOn,\n resetOn,\n filtersOn,\n selectItemsOn,\n removeAllSelectedOn,\n addManySelectedOn,\n removeManySelectedOn,\n selectItemOn,\n editOn,\n createOn,\n deleteOn\n };\n\n}\n\nexport function createCrudReducerFactory<T>(adapter: EntityAdapter<T>) {\n function createCrudReducer<S extends EntityCrudState<T>>(initialState: S, actions: Actions<T>, ...ons: ReducerTypes<S, ActionCreator[]>[]) {\n const {\n responseOn,\n resetResponsesOn,\n searchRequestOn,\n deleteRequestOn,\n deleteManyRequestOn,\n editRequestOn,\n editManyRequestOn,\n createRequestOn,\n createManyRequestOn,\n selectRequestOn,\n searchSuccessOn,\n deleteSuccessOn,\n deleteManySuccessOn,\n createSuccessOn,\n createManySuccessOn,\n selectSuccessOn,\n editSuccessOn,\n editManySuccessOn,\n searchFailureOn,\n deleteFailureOn,\n deleteManyFailureOn,\n createFailureOn,\n createManyFailureOn,\n selectFailureOn,\n editFailureOn,\n editManyFailureOn,\n resetOn,\n filtersOn,\n selectItemsOn,\n removeAllSelectedOn,\n addManySelectedOn,\n removeManySelectedOn,\n selectItemOn,\n editOn,\n createOn,\n deleteOn\n } = createCrudOns(adapter, initialState, actions);\n const totalOns: ReducerTypes<S, ActionCreator[]>[] = [\n ...ons,\n responseOn,\n resetResponsesOn,\n searchRequestOn,\n deleteRequestOn,\n deleteManyRequestOn,\n editRequestOn,\n editManyRequestOn,\n createRequestOn,\n createManyRequestOn,\n selectRequestOn,\n searchSuccessOn,\n deleteSuccessOn,\n deleteManySuccessOn,\n createSuccessOn,\n createManySuccessOn,\n selectSuccessOn,\n editSuccessOn,\n editManySuccessOn,\n searchFailureOn,\n deleteFailureOn,\n deleteManyFailureOn,\n createFailureOn,\n createManyFailureOn,\n selectFailureOn,\n editFailureOn,\n editManyFailureOn,\n resetOn,\n filtersOn,\n selectItemsOn,\n removeAllSelectedOn,\n addManySelectedOn,\n removeManySelectedOn,\n selectItemOn,\n editOn,\n createOn,\n deleteOn\n ];\n return createReducer<S>(initialState,\n ...totalOns\n );\n }\n\n return {\n createCrudReducer\n };\n}\n","import {Comparer, EntityCrudAdapter, IdSelector} from './models';\nimport {createEntityAdapter} from '@ngrx/entity';\nimport {createInitialCrudStateFactory} from './entity_state';\nimport {createCrudSelectorsFactory} from './state_selectors';\nimport {createCrudActionsFactory} from './actions';\nimport {createCrudReducerFactory} from './reducer';\n\nexport function createCrudEntityAdapter<T>(options?: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n}): EntityCrudAdapter<T>;\n\nexport function createCrudEntityAdapter<T>(options?: {\n selectId?: IdSelector<T>;\n sortComparer?: false | Comparer<T>;\n}): EntityCrudAdapter<T> {\n\n const adapter = createEntityAdapter<T>(options);\n const stateFactory = createInitialCrudStateFactory<T>();\n const selectorsFactory = createCrudSelectorsFactory<T>(adapter);\n const actionsFactory = createCrudActionsFactory<T>();\n const reducerFactory = createCrudReducerFactory<T>(adapter);\n\n return Object.assign(\n {},\n adapter,\n stateFactory,\n selectorsFactory,\n actionsFactory,\n reducerFactory\n );\n}\n","import {ofType} from '@ngrx/effects';\r\nimport {Actions, ICriteria, OptEffect, OptRequest, Response} from './models';\r\nimport {from, MonoTypeOperatorFunction} from 'rxjs';\r\nimport {Action} from '@ngrx/store';\r\nimport {catchError, concatMap, map, repeat, switchMap} from 'rxjs/operators';\r\nimport {IBaseCrudService} from './ibase-crud-service';\r\n\r\nexport const searchCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n switchMap(payload => service.search(payload).pipe(\r\n map((response: Response<T[]>) => ({response, payload}))\r\n ))\r\n );\r\n};\r\n\r\nexport const searchResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n switchMap(({response, payload}) => {\r\n const result: Action[] = [];\r\n if (response.hasError) {\r\n result.push(actions.SearchFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n result.push(actions.SearchSuccess({items: response.data, request: payload}));\r\n result.push(actions.Filters({filters: {}}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const searchCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => { // TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.SearchFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const searchRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<Action> => {\r\n return input$ => input$.pipe(\r\n ofType(actions.SearchRequest),\r\n searchCall(service),\r\n searchResponse(actions, optEffect),\r\n searchCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n/**\r\n * @deprecated use:\r\n *\r\n * actions$.pipe(\r\n * searchRequest(actions, service, clazz, optEffect)\r\n * );\r\n *\r\n * or:\r\n *\r\n * actions$.pipe(\r\n * ofType(actions.SearchRequest),\r\n * searchCall(service),\r\n * searchResponse(actions, optEffect),\r\n * searchCatchError(actions),\r\n * repeat()\r\n * );\r\n *\r\n */\r\n\r\nexport const searchRequestEffect = <T>(actions$, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => actions$.pipe(\r\n searchRequest(actions, service, optEffect)\r\n);\r\n\r\nexport const deleteCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.delete((payload as OptRequest<T>)).pipe(\r\n map((response: Response<string>) => ({response, payload}))\r\n )),\r\n );\r\n};\r\n\r\nexport const deleteResponse = <T>(actions: Actions<T>, clazz: any, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.DeleteFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n if (!clazz.selectId) {\r\n throw Error('the selectId method is not present in the managed entity.');\r\n }\r\n const id = clazz.selectId(payload.mutationParams);\r\n result.push(actions.DeleteSuccess({id}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const deleteCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.EditFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const deleteRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.DeleteRequest),\r\n deleteCall(service),\r\n deleteResponse(actions, clazz, optEffect),\r\n deleteCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n/**\r\n * @deprecated use:\r\n *\r\n * actions$.pipe(\r\n * deleteRequest(actions, service, clazz, optEffect)\r\n * );\r\n *\r\n * or:\r\n *\r\n * actions$.pipe(\r\n * ofType(actions.DeleteRequest),\r\n * deleteCall(service),\r\n * deleteResponse(actions, clazz, optEffect),\r\n * deleteCatchError(actions),\r\n * repeat()\r\n * );\r\n *\r\n */\r\nexport const deleteRequestEffect = <T>(actions$, actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect) => actions$.pipe(\r\n deleteRequest(actions, service, clazz, optEffect)\r\n);\r\n\r\n\r\nexport const deleteManyCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.deleteMany((payload)).pipe(\r\n map((response: Response<string>) => ({response, payload}))\r\n )),\r\n );\r\n};\r\n\r\nexport const deleteManyResponse = <T>(actions: Actions<T>, clazz: any, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.DeleteManyFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n if (!clazz.selectId) {\r\n throw Error('the selectId method is not present in the managed entity.');\r\n }\r\n const ids = (payload as OptRequest<T[]>).mutationParams.map(id => clazz.selectId(id));\r\n result.push(actions.DeleteManySuccess({ids}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const deleteManyCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.DeleteManyFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const deleteManyRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.DeleteManyRequest),\r\n deleteManyCall(service),\r\n deleteManyResponse(actions, clazz, optEffect),\r\n deleteManyCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\nexport const createCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.create((payload as OptRequest<T>)).pipe(\r\n map((response: Response<T>) => ({response, payload}))\r\n ))\r\n );\r\n};\r\n\r\nexport const createResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.CreateFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n const item = response.data;\r\n result.push(actions.CreateSuccess({item}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const createCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.CreateFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const createRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.CreateRequest),\r\n createCall(service),\r\n createResponse(actions, optEffect),\r\n createCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n/**\r\n * @deprecated use:\r\n *\r\n * actions$.pipe(\r\n * createRequest(actions, service, optEffect)\r\n * );\r\n *\r\n * or:\r\n *\r\n * actions$.pipe(\r\n * ofType(actions.DeleteRequest),\r\n * createCall(service),\r\n * createResponse(actions, optEffect),\r\n * createCatchError(actions),\r\n * repeat()\r\n * );\r\n *\r\n */\r\nexport const createRequestEffect = <T>(actions$, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => actions$.pipe(\r\n createRequest(actions, service, optEffect)\r\n);\r\n\r\nexport const createManyCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.createMany((payload as OptRequest<T[]>)).pipe(\r\n map((response: Response<T[]>) => ({response, payload}))\r\n ))\r\n );\r\n};\r\n\r\nexport const createManyResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.CreateManyFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n const items = response.data;\r\n result.push(actions.CreateManySuccess({items}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const createManyCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.EditManyFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const createManyRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.CreateManyRequest),\r\n createManyCall(service),\r\n createManyResponse(actions, optEffect),\r\n createManyCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n\r\nexport const editCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.update((payload as OptRequest<T>)).pipe(\r\n map((response: Response<T>) => ({response, payload}))\r\n )),\r\n );\r\n};\r\n\r\nexport const editResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.EditFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n const item = response.data;\r\n result.push(actions.EditSuccess({item}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const editCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.EditFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const editRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.EditRequest),\r\n editCall(service),\r\n editResponse(actions, optEffect),\r\n editCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n/**\r\n * @deprecated use:\r\n *\r\n * actions$.pipe(\r\n * editRequest(actions, service, optEffect)\r\n * );\r\n *\r\n * or:\r\n *\r\n * actions$.pipe(\r\n * ofType(actions.EditRequest),\r\n * editCall(service),\r\n * editResponse(actions, optEffect),\r\n * editCatchError(actions),\r\n * repeat()\r\n * );\r\n *\r\n */\r\nexport const editRequestEffect = <T>(actions$, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => actions$.pipe(\r\n editRequest(actions, service, optEffect)\r\n);\r\n\r\n\r\nexport const editManyCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.updateMany((payload as OptRequest<T[]>)).pipe(\r\n map((response: Response<T>) => ({response, payload}))\r\n )),\r\n );\r\n};\r\n\r\nexport const editManyResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.EditManyFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n const items = response.data;\r\n result.push(actions.EditManySuccess({items}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const editManyCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.EditManyFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const editManyRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.EditManyRequest),\r\n editManyCall(service),\r\n editManyResponse(actions, optEffect),\r\n editManyCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n\r\nexport const selectCall = <T>(service: IBaseCrudService<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(payload => service.select((payload as ICriteria)).pipe(\r\n // @ts-ignore\r\n map((response: Response<T>) => ({response, payload}))\r\n ))\r\n );\r\n};\r\n\r\nexport const selectResponse = <T>(actions: Actions<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n concatMap(({response, payload}) => {\r\n const result = [];\r\n if (response.hasError) {\r\n result.push(actions.SelectFailure({error: response.message}));\r\n if (payload.onFault) {\r\n result.push(...payload.onFault);\r\n }\r\n } else {\r\n const item = response.data;\r\n result.push(actions.SelectSuccess({item}));\r\n if (payload.onResult) {\r\n const onResults = (payload.onResult as Action[]).map(a => (a as any).newAction ? (a as any).newAction(response, payload) : a);\r\n result.push(...onResults);\r\n }\r\n }\r\n\r\n if ((optEffect || {}).dispatchResponse || payload.dispatchResponse) {\r\n result.push(actions.Response({\r\n actionType: payload.type,\r\n request: payload,\r\n response\r\n }));\r\n }\r\n\r\n return result;\r\n }\r\n )\r\n );\r\n};\r\n\r\nexport const selectCatchError = <T>(actions: Actions<T>): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n catchError((error, caught) => {\r\n const response = [];\r\n response.push(actions.EditFailure({error}));\r\n response.push(actions.Response({\r\n actionType: 'Failure',\r\n request: null,\r\n response: {hasError: true, message: error.message, data: null}\r\n }));\r\n return from(response);\r\n }\r\n ),\r\n );\r\n};\r\n\r\nexport const selectRequest = <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect): MonoTypeOperatorFunction<any> => {// TODO: tipizzare any\r\n return input$ => input$.pipe(\r\n ofType(actions.SelectRequest),\r\n selectCall(service),\r\n selectResponse(actions, optEffect),\r\n selectCatchError(actions),\r\n repeat()\r\n );\r\n};\r\n\r\n/**\r\n * @deprecated use:\r\n *\r\n * actions$.pipe(\r\n * selectRequest(actions, service, clazz, optEffect)\r\n * );\r\n *\r\n * or:\r\n *\r\n * actions$.pipe(\r\n * ofType(actions.SelectRequest),\r\n * selectCall(service),\r\n * selectResponse(actions, optEffect),\r\n * selectCatchError(actions),\r\n * repeat()\r\n * );\r\n *\r\n */\r\nexport const selectRequestEffect = <T>(actions$, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => actions$.pipe(\r\n selectRequest(actions, service, optEffect)\r\n);\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, mergeMap} from 'rxjs/operators';\nimport {ICriteria, OptRequest, Response} from './models';\nimport {Observable, of} from 'rxjs';\nimport {IBaseCrudService} from './ibase-crud-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseCrudService<T> implements IBaseCrudService<T> {\n\n service = '';\n id = 'id';\n debug = false;\n\n debugMode() {\n this.debug = true;\n }\n\n constructor(public http: HttpClient) {\n }\n\n httpOptions = () => {\n return {\n headers: new HttpHeaders({'Content-Type': 'application/json'})\n };\n }\n\n create(opt: OptRequest<T>): Observable<Response<T>> {\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('%c BaseCrudService.create()', 'color: #777777');\n console.log('%c Extended from: ' + this.constructor.name, 'color: #777777');\n }\n const path = !!opt && !!opt.path ? opt.path : null;\n return this.http.post<Response<T>>(`${this.getUrl(path)}`, opt.mutationParams, this.httpOptions());\n }\n\n createMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>> {\n this.checkOptRequest(opt);\n const result = (opt.mutationParams as T[]).map(mutationParams => {\n const optB: OptRequest<T> = {...opt, mutationParams};\n return this.create(optB).pipe(\n map(value => ({...value, data: [value.data]})) // trasformo la singola risposta da {data:T} in {data:T[]}\n );\n });\n return of(...result).pipe(\n mergeMap(value => value)\n );\n }\n\n /**\n * metodo introdotto per la verifica di OptRequest\n * nella nuova versione è stato sostituito opt.item e opt.items con opt.mutationParams\n * in modo da renderlo compatibile come nomenclatura a graphql\n * @param opt\n */\n checkOptRequest(opt: any): boolean {\n if (opt && opt.hasOwnProperty('item') && !!opt.item) {\n throw new Error('Error, in new versions of the library the \"items\" or \"item\" attribute have been replaced by \"mutationParams\". all project attributes must be renamed.')\n }\n if (opt && opt.hasOwnProperty('items') && !!opt.items) {\n throw new Error('Error, in new versions of the library the \"items\" or \"item\" attribute have been replaced by \"mutationParams\". all project attributes must be renamed.')\n }\n return true;\n }\n\n search(value?: ICriteria): Observable<Response<T[]>> {\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('BaseCrudService.search()');\n console.log('Extended from: ' + this.constructor.name);\n }\n const url = value && value.hasOwnProperty('path') && !!value.path ? value.path.join('/') : '';\n let httpOptions = this.httpOptions();\n\n if (value && value.hasOwnProperty('queryParams') && !!value.queryParams) {\n httpOptions = ({...httpOptions, ...{params: value.queryParams}});\n }\n return this.http.get(this.getUrl() + url, httpOptions).pipe(\n map(this.searchMap),\n ) as Observable<Response<T[]>>;\n\n }\n\n searchMap = res => res;\n\n select(opt: ICriteria): Observable<Response<T>> {\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('%c BaseCrudService.select()', 'color: #777777');\n console.log('%c Extended from: ' + this.constructor.name, 'color: #777777');\n }\n\n const id = this.getId(opt.queryParams);\n const path = !!opt && !!opt.path ? opt.path : null;\n return this\n .http\n .get<Response<T>>(`${this.getUrl(path)}/${id}`, this.httpOptions());\n }\n\n update(opt: OptRequest<T>): Observable<Response<T>> {\n this.checkOptRequest(opt);\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('%c BaseCrudService.update()', 'color: #777777');\n console.log('%c Extended from: ' + this.constructor.name, 'color: #777777');\n }\n const id = this.getId(opt.mutationParams);\n const path = !!opt && !!opt.path ? opt.path : null;\n return this.http.put<Response<T>>(`${this.getUrl(path)}/${id}`, opt.mutationParams, this.httpOptions());\n }\n\n updateMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>> {\n this.checkOptRequest(opt);\n const result = (opt.mutationParams as T[]).map(mutationParams => {\n const optB: OptRequest<T> = {...opt, mutationParams};\n return this.update(optB).pipe(\n map(value => ({...value, data: [value.data]})) // trasformo la singola risposta da {data:T} in {data:T[]}\n );\n });\n return of(...result).pipe(\n mergeMap(value => value)\n );\n }\n\n delete(opt: OptRequest<T>): Observable<Response<string>> {\n this.checkOptRequest(opt);\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('%c BaseCrudService.delete()', 'color: #777777');\n console.log('%c Extended from: ' + this.constructor.name, 'color: #777777');\n }\n const id = this.getId(opt.mutationParams);\n const path = !!opt && !!opt.path ? opt.path : null;\n return this.http.delete<Response<string>>(`${this.getUrl(path)}/${id}`, this.httpOptions());\n }\n\n deleteMany(opt: OptRequest<T[] | T>): Observable<Response<string[]>> {\n this.checkOptRequest(opt);\n const result = (opt.mutationParams as T[]).map(mutationParams => {\n const optB: OptRequest<T> = {...opt, mutationParams};\n return this.delete(optB);\n });\n return of(...result).pipe(\n mergeMap(value => value)\n );\n }\n\n getId = (value) => value[this.id];\n\n getUrl(path?: string[]): string {\n const result = !!path ? `${this.service}/${path.join('/')}` : this.service;\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('%c BaseCrudService.getUrl(path?:string[]): string', 'color: #777777');\n console.log('%c path: ' + path, 'color: #777777');\n console.log('%c Extended from: ' + this.constructor.name, 'color: #777777');\n console.log('%c result: ' + result, 'color: #777777');\n }\n return result;\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {ICriteria, OptRequest, Response} from './models';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {IBaseCrudService} from './ibase-crud-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseCrudGqlService<T> implements IBaseCrudService<T> {\n public service\n\n protected apollo: any;\n\n search(value?: ICriteria): Observable<Response<T[]>> {\n return this.query(value);\n }\n\n select(opt: OptRequest): Observable<Response<T>> {\n return this.mutate(opt)\n }\n\n create(opt: OptRequest): Observable<Response<T>> {\n return this.mutate(opt)\n }\n\n createMany(opt: OptRequest): Observable<Response<T[]>> {\n return this.mutate(opt)\n }\n\n update(opt: OptRequest): Observable<Response<T>> {\n return this.mutate(opt)\n }\n\n updateMany(opt: OptRequest): Observable<Response<T[]>> {\n return this.mutate(opt);\n }\n\n delete(opt: OptRequest): Observable<Response<string>> {\n return this.mutate(opt)\n }\n\n deleteMany(opt: OptRequest): Observable<Response<string[]>> {\n return this.mutate(opt)\n }\n\n //todo tolgo tipizzazione MutationOptions mutateMany(opt: OptRequest<MutationOptions>): Observable<Response<string[]>> {\n mutateMany(opt: OptRequest): Observable<Response<string[]>> {\n return this.apollo.mutate(opt.mutationParams).pipe(\n map((response: any) => {\n debugger\n return ({\n message: '',\n hasError: false,\n data: (response.data as any).allCoins\n })\n })\n )\n }\n\n //todo tolgo tipizzazione MutationOptions mutate(opt: OptRequest<MutationOptions>): Observable<Response<string[]>> {\n mutate(opt: OptRequest): Observable<Response<string[]>> {\n return this.apollo.mutate(opt.mutationParams).pipe(\n map((response: any) => {\n debugger\n return ({\n message: '',\n hasError: false,\n data: (response.data as any).allCoins\n })\n })\n )\n }\n\n //todo tolgo tipizzazione QueryOptions query(value?: ICriteria<QueryOptions>): Observable<Response<T[]>> {\n query(value?: ICriteria): Observable<Response<T[]>> {\n console.log('CoinService.search()');\n return this.apollo\n .query(value.queryParams).pipe(\n map((response: any) => {\n debugger\n return ({\n message: '',\n hasError: false,\n data: (response.data as any).allCoins\n })\n })\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/lib/actions.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAA+D,MAAM,UAAU,CAAC;AAG3G,wBAAgB,wBAAwB,CAAC,CAAC;8BACP,MAAM,KAAG,QAAQ,CAAC,CAAC;EA0GrD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ICriteria, OptRequest, Response } from './models';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { IBaseCrudService } from './ibase-crud-service';
|
|
4
|
+
export declare class BaseCrudGqlService<T> implements IBaseCrudService<T> {
|
|
5
|
+
service: any;
|
|
6
|
+
protected apollo: any;
|
|
7
|
+
search(value?: ICriteria): Observable<Response<T[]>>;
|
|
8
|
+
select(opt: OptRequest): Observable<Response<T>>;
|
|
9
|
+
create(opt: OptRequest): Observable<Response<T>>;
|
|
10
|
+
createMany(opt: OptRequest): Observable<Response<T[]>>;
|
|
11
|
+
update(opt: OptRequest): Observable<Response<T>>;
|
|
12
|
+
updateMany(opt: OptRequest): Observable<Response<T[]>>;
|
|
13
|
+
delete(opt: OptRequest): Observable<Response<string>>;
|
|
14
|
+
deleteMany(opt: OptRequest): Observable<Response<string[]>>;
|
|
15
|
+
mutateMany(opt: OptRequest): Observable<Response<string[]>>;
|
|
16
|
+
mutate(opt: OptRequest): Observable<Response<string[]>>;
|
|
17
|
+
query(value?: ICriteria): Observable<Response<T[]>>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=base-crud-gql.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-crud-gql.service.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/base-crud-gql.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,qBAGa,kBAAkB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACxD,OAAO,MAAA;IAEd,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAEtB,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAIpD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIhD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIhD,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAItD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIhD,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAItD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAIrD,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAK3D,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAc3D,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAcvD,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;CAcpD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { ICriteria, OptRequest, Response } from './models';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { IBaseCrudService } from './ibase-crud-service';
|
|
5
|
+
export declare class BaseCrudService<T> implements IBaseCrudService<T> {
|
|
6
|
+
http: HttpClient;
|
|
7
|
+
service: string;
|
|
8
|
+
id: string;
|
|
9
|
+
debug: boolean;
|
|
10
|
+
debugMode(): void;
|
|
11
|
+
constructor(http: HttpClient);
|
|
12
|
+
httpOptions: () => {
|
|
13
|
+
headers: HttpHeaders;
|
|
14
|
+
};
|
|
15
|
+
create(opt: OptRequest<T>): Observable<Response<T>>;
|
|
16
|
+
createMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>>;
|
|
17
|
+
/**
|
|
18
|
+
* metodo introdotto per la verifica di OptRequest
|
|
19
|
+
* nella nuova versione è stato sostituito opt.item e opt.items con opt.mutationParams
|
|
20
|
+
* in modo da renderlo compatibile come nomenclatura a graphql
|
|
21
|
+
* @param opt
|
|
22
|
+
*/
|
|
23
|
+
checkOptRequest(opt: any): boolean;
|
|
24
|
+
search(value?: ICriteria): Observable<Response<T[]>>;
|
|
25
|
+
searchMap: (res: any) => any;
|
|
26
|
+
select(opt: ICriteria): Observable<Response<T>>;
|
|
27
|
+
update(opt: OptRequest<T>): Observable<Response<T>>;
|
|
28
|
+
updateMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>>;
|
|
29
|
+
delete(opt: OptRequest<T>): Observable<Response<string>>;
|
|
30
|
+
deleteMany(opt: OptRequest<T[] | T>): Observable<Response<string[]>>;
|
|
31
|
+
getId: (value: any) => any;
|
|
32
|
+
getUrl(path?: string[]): string;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=base-crud.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-crud.service.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/base-crud.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACzD,OAAO,EAAC,UAAU,EAAK,MAAM,MAAM,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,qBAGa,eAAe,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAUzC,IAAI,EAAE,UAAU;IARnC,OAAO,SAAM;IACb,EAAE,SAAQ;IACV,KAAK,UAAS;IAEd,SAAS;gBAIU,IAAI,EAAE,UAAU;IAGnC,WAAW;;MAIV;IAED,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IASnD,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAa/D;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAUlC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAiBpD,SAAS,oBAAc;IAEvB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAa/C,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAWnD,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAa/D,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAWxD,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAWpE,KAAK,sBAA6B;IAElC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;CAWhC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Comparer, EntityCrudAdapter, IdSelector } from './models';
|
|
2
|
+
export declare function createCrudEntityAdapter<T>(options?: {
|
|
3
|
+
selectId?: IdSelector<T>;
|
|
4
|
+
sortComparer?: false | Comparer<T>;
|
|
5
|
+
}): EntityCrudAdapter<T>;
|
|
6
|
+
//# sourceMappingURL=create_adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_adapter.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/create_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAOjE,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IACnD,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC"}
|
package/lib/effect.d.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Actions, OptEffect } from './models';
|
|
2
|
+
import { MonoTypeOperatorFunction } from 'rxjs';
|
|
3
|
+
import { Action } from '@ngrx/store';
|
|
4
|
+
import { IBaseCrudService } from './ibase-crud-service';
|
|
5
|
+
export declare const searchCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
6
|
+
export declare const searchResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
7
|
+
export declare const searchCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
8
|
+
export declare const searchRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<Action>;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use:
|
|
11
|
+
*
|
|
12
|
+
* actions$.pipe(
|
|
13
|
+
* searchRequest(actions, service, clazz, optEffect)
|
|
14
|
+
* );
|
|
15
|
+
*
|
|
16
|
+
* or:
|
|
17
|
+
*
|
|
18
|
+
* actions$.pipe(
|
|
19
|
+
* ofType(actions.SearchRequest),
|
|
20
|
+
* searchCall(service),
|
|
21
|
+
* searchResponse(actions, optEffect),
|
|
22
|
+
* searchCatchError(actions),
|
|
23
|
+
* repeat()
|
|
24
|
+
* );
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
export declare const searchRequestEffect: <T>(actions$: any, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => any;
|
|
28
|
+
export declare const deleteCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
29
|
+
export declare const deleteResponse: <T>(actions: Actions<T>, clazz: any, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
30
|
+
export declare const deleteCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
31
|
+
export declare const deleteRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated use:
|
|
34
|
+
*
|
|
35
|
+
* actions$.pipe(
|
|
36
|
+
* deleteRequest(actions, service, clazz, optEffect)
|
|
37
|
+
* );
|
|
38
|
+
*
|
|
39
|
+
* or:
|
|
40
|
+
*
|
|
41
|
+
* actions$.pipe(
|
|
42
|
+
* ofType(actions.DeleteRequest),
|
|
43
|
+
* deleteCall(service),
|
|
44
|
+
* deleteResponse(actions, clazz, optEffect),
|
|
45
|
+
* deleteCatchError(actions),
|
|
46
|
+
* repeat()
|
|
47
|
+
* );
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
export declare const deleteRequestEffect: <T>(actions$: any, actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect) => any;
|
|
51
|
+
export declare const deleteManyCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
52
|
+
export declare const deleteManyResponse: <T>(actions: Actions<T>, clazz: any, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
53
|
+
export declare const deleteManyCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
54
|
+
export declare const deleteManyRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, clazz: any, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
55
|
+
export declare const createCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
56
|
+
export declare const createResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
57
|
+
export declare const createCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
58
|
+
export declare const createRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated use:
|
|
61
|
+
*
|
|
62
|
+
* actions$.pipe(
|
|
63
|
+
* createRequest(actions, service, optEffect)
|
|
64
|
+
* );
|
|
65
|
+
*
|
|
66
|
+
* or:
|
|
67
|
+
*
|
|
68
|
+
* actions$.pipe(
|
|
69
|
+
* ofType(actions.DeleteRequest),
|
|
70
|
+
* createCall(service),
|
|
71
|
+
* createResponse(actions, optEffect),
|
|
72
|
+
* createCatchError(actions),
|
|
73
|
+
* repeat()
|
|
74
|
+
* );
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
export declare const createRequestEffect: <T>(actions$: any, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => any;
|
|
78
|
+
export declare const createManyCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
79
|
+
export declare const createManyResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
80
|
+
export declare const createManyCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
81
|
+
export declare const createManyRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
82
|
+
export declare const editCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
83
|
+
export declare const editResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
84
|
+
export declare const editCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
85
|
+
export declare const editRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
86
|
+
/**
|
|
87
|
+
* @deprecated use:
|
|
88
|
+
*
|
|
89
|
+
* actions$.pipe(
|
|
90
|
+
* editRequest(actions, service, optEffect)
|
|
91
|
+
* );
|
|
92
|
+
*
|
|
93
|
+
* or:
|
|
94
|
+
*
|
|
95
|
+
* actions$.pipe(
|
|
96
|
+
* ofType(actions.EditRequest),
|
|
97
|
+
* editCall(service),
|
|
98
|
+
* editResponse(actions, optEffect),
|
|
99
|
+
* editCatchError(actions),
|
|
100
|
+
* repeat()
|
|
101
|
+
* );
|
|
102
|
+
*
|
|
103
|
+
*/
|
|
104
|
+
export declare const editRequestEffect: <T>(actions$: any, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => any;
|
|
105
|
+
export declare const editManyCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
106
|
+
export declare const editManyResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
107
|
+
export declare const editManyCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
108
|
+
export declare const editManyRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
109
|
+
export declare const selectCall: <T>(service: IBaseCrudService<T>) => MonoTypeOperatorFunction<any>;
|
|
110
|
+
export declare const selectResponse: <T>(actions: Actions<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
111
|
+
export declare const selectCatchError: <T>(actions: Actions<T>) => MonoTypeOperatorFunction<any>;
|
|
112
|
+
export declare const selectRequest: <T>(actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => MonoTypeOperatorFunction<any>;
|
|
113
|
+
/**
|
|
114
|
+
* @deprecated use:
|
|
115
|
+
*
|
|
116
|
+
* actions$.pipe(
|
|
117
|
+
* selectRequest(actions, service, clazz, optEffect)
|
|
118
|
+
* );
|
|
119
|
+
*
|
|
120
|
+
* or:
|
|
121
|
+
*
|
|
122
|
+
* actions$.pipe(
|
|
123
|
+
* ofType(actions.SelectRequest),
|
|
124
|
+
* selectCall(service),
|
|
125
|
+
* selectResponse(actions, optEffect),
|
|
126
|
+
* selectCatchError(actions),
|
|
127
|
+
* repeat()
|
|
128
|
+
* );
|
|
129
|
+
*
|
|
130
|
+
*/
|
|
131
|
+
export declare const selectRequestEffect: <T>(actions$: any, actions: Actions<T>, service: IBaseCrudService<T>, optEffect?: OptEffect) => any;
|
|
132
|
+
//# sourceMappingURL=effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/effect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EntityCrudState } from './models';
|
|
2
|
+
export declare function getInitialEntityCrudState<V>(): EntityCrudState<V>;
|
|
3
|
+
export declare function createInitialCrudStateFactory<V>(): {
|
|
4
|
+
getInitialCrudState: {
|
|
5
|
+
(): EntityCrudState<V>;
|
|
6
|
+
<S extends object>(additionalState: S): EntityCrudState<V> & S;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=entity_state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity_state.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/entity_state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAEzC,wBAAgB,yBAAyB,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAejE;AAED,wBAAgB,6BAA6B,CAAC,CAAC;;YACb,gBAAgB,CAAC,CAAC;;;EASnD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ICriteria, OptRequest, Response } from './models';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export interface IBaseCrudService<T> {
|
|
4
|
+
create(opt: OptRequest<T>): Observable<Response<T>>;
|
|
5
|
+
createMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>>;
|
|
6
|
+
search(value?: ICriteria): Observable<Response<T[]>>;
|
|
7
|
+
select(opt: ICriteria): Observable<Response<T>>;
|
|
8
|
+
update(opt: OptRequest<T>): Observable<Response<T>>;
|
|
9
|
+
updateMany(opt: OptRequest<T[] | T>): Observable<Response<T[]>>;
|
|
10
|
+
delete(opt: OptRequest<T>): Observable<Response<string[]>>;
|
|
11
|
+
deleteMany(opt: OptRequest<T[] | T>): Observable<Response<string[]>>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ibase-crud-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibase-crud-service.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/ibase-crud-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAEhC,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAEjC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErD,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE3D,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAEtE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FilterMetadata } from './models';
|
|
2
|
+
export declare const isEmpty: (obj: any) => boolean;
|
|
3
|
+
export declare function jNgrxFilter<T>(items: T[], filters: {
|
|
4
|
+
[s: string]: FilterMetadata;
|
|
5
|
+
}): T[];
|
|
6
|
+
export declare class JNgrxFilter<T> {
|
|
7
|
+
private readonly filterConstraints;
|
|
8
|
+
jNgrxFilter(items: T[], filters: {
|
|
9
|
+
[s: string]: FilterMetadata;
|
|
10
|
+
}): T[];
|
|
11
|
+
private resolveFieldData;
|
|
12
|
+
private readonly isFunction;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=j-ngrx-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"j-ngrx-filter.d.ts","sourceRoot":"","sources":["../../../projects/ngrx-entity-crud/src/lib/j-ngrx-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,OAAO,uBAWnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;CAAE,GAAG,CAAC,EAAE,CAEzF;AAED,qBAAa,WAAW,CAAC,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAiFhC;IAEK,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;KAAE,GAAG,CAAC,EAAE;IAiC9E,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqE;CACjG"}
|