ngrx-entity-crud 12.9.0-beta.6 → 12.10.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-entity-crud.umd.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","../../../node_modules/tslib/tslib.es6.js","../../../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-singular-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 CrudBaseState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n lastCriteria: ICriteria;\n responses: OptResponse<T>[];\n}\n\nexport interface SingleCrudState<T> extends CrudBaseState<T>{\n item: T\n}\n\n\nexport interface CrudState<T> extends CrudBaseState<T>, EntityState<T> {\n filters: { [s: string]: FilterMetadata; };\n idsSelected: string[] | number[];\n itemSelected: T;\n idSelected: string | number;\n entitiesSelected: Dictionary<T>;\n}\n\nexport interface EntityCrudBaseSelectors<T, V> {\n\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 response variable contained in the formula\n * @param (state: V) => OptResponse<T>[]\n */\n selectResponses: (state: V) => OptResponse<T>[];\n\n}\n\nexport interface EntitySingleCrudSelectors<T, V> extends EntityCrudBaseSelectors<T, V> {\n selectItem: (state: V) => T;\n}\n\nexport interface EntityCrudSelectors<T, V> extends EntityCrudBaseSelectors<T, V>, 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 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}\n\n\nexport interface EntityCrudBaseState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n lastCriteria: ICriteria;\n // ogni entità registra l'azione scatenata e la risposta dal server.\n responses: OptResponse<T>[];\n}\n\nexport interface EntitySingleCrudState<T> extends EntityCrudBaseState<T> {\n item: T\n}\n\nexport interface EntityCrudState<T> extends EntityCrudBaseState<T>, EntityState<T> {\n filters: { [s: string]: FilterMetadata; };\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}\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, EntitySingleCrudState} 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 getInitialSingleCrudState<V>(): EntitySingleCrudState<V> {\n return {\n item:null,\n isLoading: false,\n isLoaded: false,\n error: null,\n lastCriteria: 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 {CrudBaseState, CrudState, Dictionary, EntityCrudBaseSelectors, EntityCrudBaseState, EntityCrudSelectors, EntityCrudState, EntitySingleCrudSelectors, EntitySingleCrudState, FilterMetadata, ICriteria, OptResponse, SingleCrudState} from './models';\nimport {createSelector, MemoizedSelector} from '@ngrx/store';\nimport {jNgrxFilter} from './j-ngrx-filter';\n\nconst getError = <T>(state: CrudBaseState<T>): any => state.error;\nconst getIsLoading = <T>(state: CrudBaseState<T>): boolean => state.isLoading;\nconst getIsLoaded = <T>(state: CrudBaseState<T>): boolean => state.isLoaded;\nconst getFilters = <T>(state: CrudState<T>): { [s: string]: FilterMetadata; } => state.filters;\nconst getLastCriteria = <T>(state: CrudBaseState<T>): ICriteria => state.lastCriteria;\nconst getItemSelected = <T>(state: CrudState<T>): T => state.itemSelected;\nconst getIdSelected = <T>(state: CrudState<T>): string | number => state.idSelected;\nconst getEntitiesSelected = <T>(state: CrudState<T>): Dictionary<T> => state.entitiesSelected;\nconst getIdsSelected = <T>(state: CrudState<T>): string[] | number[] => state.idsSelected;\nconst getRespones = <T>(state: CrudBaseState<T>): OptResponse<T>[] => state.responses;\nconst getItem = <T>(state: SingleCrudState<T>): T => state.item;\n\nexport function getCrudBaseSelectors<T, V>(\n selectState: (state: V) => EntityCrudBaseState<T>\n): EntityCrudBaseSelectors<T, V> {\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 selectLastCriteria: MemoizedSelector<V, ICriteria> = createSelector(selectState, getLastCriteria);\n const selectResponses: MemoizedSelector<V, OptResponse<T>[]> = createSelector(selectState, getRespones);\n\n return {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses,\n };\n}\n\nexport function getSingeCrudSelectors<T, V>(\n selectState: (state: V) => EntitySingleCrudState<T>\n): EntitySingleCrudSelectors<T, V> {\n const {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n } = getCrudBaseSelectors(selectState);\n\n const selectItem: MemoizedSelector<V, T> = createSelector(selectState, getItem);\n return {\n selectItem,\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n };\n}\n\nexport function createCrudSelectorsFactory<T>(adapter) {\n function getCrudSelectors<V>(\n selectState: (state: V) => EntityCrudState<T>\n ): EntityCrudSelectors<T, V> {\n\n const selectFilters: MemoizedSelector<V, { [s: string]: FilterMetadata; }> = createSelector(\n selectState,\n getFilters\n );\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 {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n } = getCrudBaseSelectors(selectState);\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 SearchSingleRequest = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.REQUEST}`, props<ICriteria>());\n const SearchSingleFailure = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const SearchSingleSuccess = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.SUCCESS}`, props<{ item: 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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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, EntitySingleCrudState, 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 {...crudOns} = createCrudOns(adapter, initialState, actions);\n const totalOns: ReducerTypes<S, ActionCreator[]>[] = [\n ...ons,\n ...Object.values(crudOns)\n ];\n return createReducer<S>(initialState,\n ...totalOns\n );\n }\n\n return {\n createCrudReducer\n };\n}\n\n\nexport function createSingleCrudOns<T, S extends EntitySingleCrudState<T>>(initialState: S, actions: Actions<T>): { [key: string]: any } {\n\n const selectRequestOn = on(actions.SelectRequest, (state: S, {type}) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const selectSuccessOn = on(actions.SelectSuccess, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const selectFailureOn = on(actions.SelectFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\n }));\n\n const createRequestOn = on(actions.CreateRequest, (state: S) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const createSuccessOn = on(actions.CreateSuccess, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const createOn = on(actions.Create, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const editRequestOn = on(actions.EditRequest, (state: S) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const editSuccessOn = on(actions.EditSuccess, (state: S, {item, type}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const editOn = on(actions.Edit, (state: S, {item, type}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n\n const createFailureOn = on(actions.CreateFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\n }));\n\n\n const editFailureOn = on(actions.EditFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\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\n const resetOn = on(actions.Reset, (state: S) => ({...state, ...initialState}));\n return {\n responseOn,\n resetResponsesOn,\n\n selectRequestOn,\n selectSuccessOn,\n selectFailureOn,\n\n createRequestOn,\n createSuccessOn,\n createFailureOn,\n\n editRequestOn,\n editSuccessOn,\n editFailureOn,\n\n resetOn,\n editOn,\n createOn\n };\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.SelectFailure({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 {map} from 'rxjs/operators';\nimport {Observable} from 'rxjs';\nimport {BaseCrudService} from './base-crud.service';\nimport {IBaseCrudService} from './ibase-crud-service';\nimport {ICriteria, Response} from './models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseSingularCrudService<T> extends BaseCrudService<T> implements IBaseCrudService<T> {\n\n\n select(opt: ICriteria): Observable<Response<T>> {\n console.log('BaseSingularCrudService.select()');\n\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('BaseCrudService.search()');\n console.log('Extended from: ' + this.constructor.name);\n }\n const url = opt && opt.hasOwnProperty('path') && !!opt.path ? opt.path.join('/') : '';\n let httpOptions = this.httpOptions();\n\n if (opt && opt.hasOwnProperty('queryParams') && !!opt.queryParams) {\n httpOptions = ({...httpOptions, ...{params: opt.queryParams}});\n }\n\n console.log('httpOptions', httpOptions);\n console.log('url', url);\n console.log('this.getUrl()', this.getUrl());\n\n return this.http.get(this.getUrl() + url, httpOptions).pipe(\n map(this.searchMap),\n ) as Observable<Response<T>>;\n\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":["CrudEnum","ActionEnum","createSelector","createAction","props","filter","isDevMode","on","createReducer","createEntityAdapter","switchMap","map","catchError","from","ofType","repeat","concatMap","HttpHeaders","of","mergeMap","Injectable","HttpClient"],"mappings":"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"}
1
+ {"version":3,"file":"ngrx-entity-crud.umd.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","../../../node_modules/tslib/tslib.es6.js","../../../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-singular-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 CrudBaseState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n lastCriteria: ICriteria;\n responses: OptResponse<T>[];\n}\n\nexport interface SingleCrudState<T> extends CrudBaseState<T>{\n item: T\n}\n\n\nexport interface CrudState<T> extends CrudBaseState<T>, EntityState<T> {\n filters: { [s: string]: FilterMetadata; };\n idsSelected: string[] | number[];\n itemSelected: T;\n idSelected: string | number;\n entitiesSelected: Dictionary<T>;\n}\n\nexport interface EntityCrudBaseSelectors<T, V> {\n\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 response variable contained in the formula\n * @param (state: V) => OptResponse<T>[]\n */\n selectResponses: (state: V) => OptResponse<T>[];\n\n}\n\nexport interface EntitySingleCrudSelectors<T, V> extends EntityCrudBaseSelectors<T, V> {\n selectItem: (state: V) => T;\n}\n\nexport interface EntityCrudSelectors<T, V> extends EntityCrudBaseSelectors<T, V>, 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 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}\n\n\nexport interface EntityCrudBaseState<T> {\n error: string;\n isLoading: boolean;\n isLoaded: boolean;\n lastCriteria: ICriteria;\n // ogni entità registra l'azione scatenata e la risposta dal server.\n responses: OptResponse<T>[];\n}\n\nexport interface EntitySingleCrudState<T> extends EntityCrudBaseState<T> {\n item: T\n}\n\nexport interface EntityCrudState<T> extends EntityCrudBaseState<T>, EntityState<T> {\n filters: { [s: string]: FilterMetadata; };\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}\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, EntitySingleCrudState} 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 getInitialSingleCrudState<V>(): EntitySingleCrudState<V> {\n return {\n item:null,\n isLoading: false,\n isLoaded: false,\n error: null,\n lastCriteria: 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 {CrudBaseState, CrudState, Dictionary, EntityCrudBaseSelectors, EntityCrudBaseState, EntityCrudSelectors, EntityCrudState, EntitySingleCrudSelectors, EntitySingleCrudState, FilterMetadata, ICriteria, OptResponse, SingleCrudState} from './models';\nimport {createSelector, MemoizedSelector} from '@ngrx/store';\nimport {jNgrxFilter} from './j-ngrx-filter';\n\nconst getError = <T>(state: CrudBaseState<T>): any => state.error;\nconst getIsLoading = <T>(state: CrudBaseState<T>): boolean => state.isLoading;\nconst getIsLoaded = <T>(state: CrudBaseState<T>): boolean => state.isLoaded;\nconst getFilters = <T>(state: CrudState<T>): { [s: string]: FilterMetadata; } => state.filters;\nconst getLastCriteria = <T>(state: CrudBaseState<T>): ICriteria => state.lastCriteria;\nconst getItemSelected = <T>(state: CrudState<T>): T => state.itemSelected;\nconst getIdSelected = <T>(state: CrudState<T>): string | number => state.idSelected;\nconst getEntitiesSelected = <T>(state: CrudState<T>): Dictionary<T> => state.entitiesSelected;\nconst getIdsSelected = <T>(state: CrudState<T>): string[] | number[] => state.idsSelected;\nconst getRespones = <T>(state: CrudBaseState<T>): OptResponse<T>[] => state.responses;\nconst getItem = <T>(state: SingleCrudState<T>): T => state.item;\n\nexport function getCrudBaseSelectors<T, V>(\n selectState: (state: V) => EntityCrudBaseState<T>\n): EntityCrudBaseSelectors<T, V> {\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 selectLastCriteria: MemoizedSelector<V, ICriteria> = createSelector(selectState, getLastCriteria);\n const selectResponses: MemoizedSelector<V, OptResponse<T>[]> = createSelector(selectState, getRespones);\n\n return {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses,\n };\n}\n\nexport function getSingeCrudSelectors<T, V>(\n selectState: (state: V) => EntitySingleCrudState<T>\n): EntitySingleCrudSelectors<T, V> {\n const {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n } = getCrudBaseSelectors(selectState);\n\n const selectItem: MemoizedSelector<V, T> = createSelector(selectState, getItem);\n return {\n selectItem,\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n };\n}\n\nexport function createCrudSelectorsFactory<T>(adapter) {\n function getCrudSelectors<V>(\n selectState: (state: V) => EntityCrudState<T>\n ): EntityCrudSelectors<T, V> {\n\n const selectFilters: MemoizedSelector<V, { [s: string]: FilterMetadata; }> = createSelector(\n selectState,\n getFilters\n );\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 {\n selectError,\n selectIsLoading,\n selectIsLoaded,\n selectLastCriteria,\n selectResponses\n } = getCrudBaseSelectors(selectState);\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 SearchSingleRequest = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.REQUEST}`, props<ICriteria>());\n const SearchSingleFailure = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.FAILURE}`, props<{ error: string }>());\n const SearchSingleSuccess = createAction(`[${name}] ${CrudEnum.SEARCH} ${ActionEnum.SUCCESS}`, props<{ item: 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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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, EntitySingleCrudState, 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 {...crudOns} = createCrudOns(adapter, initialState, actions);\n const totalOns: ReducerTypes<S, ActionCreator[]>[] = [\n ...ons,\n ...Object.values(crudOns)\n ];\n return createReducer<S>(initialState,\n ...totalOns\n );\n }\n\n return {\n createCrudReducer\n };\n}\n\n\nexport function createSingleCrudOns<T, S extends EntitySingleCrudState<T>>(initialState: S, actions: Actions<T>): { [key: string]: any } {\n\n const selectRequestOn = on(actions.SelectRequest, (state: S, {type}) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const selectSuccessOn = on(actions.SelectSuccess, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const selectFailureOn = on(actions.SelectFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\n }));\n\n const createRequestOn = on(actions.CreateRequest, (state: S) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const createSuccessOn = on(actions.CreateSuccess, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const createOn = on(actions.Create, (state: S, {type, item}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const editRequestOn = on(actions.EditRequest, (state: S) => (\n {\n ...state,\n isLoading: true,\n error: null\n }\n ));\n\n const editSuccessOn = on(actions.EditSuccess, (state: S, {item, type}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n const editOn = on(actions.Edit, (state: S, {item, type}) => (\n {\n ...state,\n item,\n isLoaded: true,\n isLoading: false,\n error: null\n }\n ));\n\n\n const createFailureOn = on(actions.CreateFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\n }));\n\n\n const editFailureOn = on(actions.EditFailure, (state: S, {type, error}) => ({\n ...state,\n isLoaded: false,\n isLoading: false,\n error\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\n const resetOn = on(actions.Reset, (state: S) => ({...state, ...initialState}));\n return {\n responseOn,\n resetResponsesOn,\n\n selectRequestOn,\n selectSuccessOn,\n selectFailureOn,\n\n createRequestOn,\n createSuccessOn,\n createFailureOn,\n\n editRequestOn,\n editSuccessOn,\n editFailureOn,\n\n resetOn,\n editOn,\n createOn\n };\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.SelectFailure({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 {map} from 'rxjs/operators';\nimport {Observable} from 'rxjs';\nimport {BaseCrudService} from './base-crud.service';\nimport {IBaseCrudService} from './ibase-crud-service';\nimport {ICriteria, Response} from './models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseSingularCrudService<T> extends BaseCrudService<T> implements IBaseCrudService<T> {\n\n\n select(opt: ICriteria): Observable<Response<T>> {\n console.log('BaseSingularCrudService.select()');\n\n if (typeof (console) !== 'undefined' && this.debug) {\n console.log('BaseCrudService.search()');\n console.log('Extended from: ' + this.constructor.name);\n }\n const url = opt && opt.hasOwnProperty('path') && !!opt.path ? opt.path.join('/') : '';\n let httpOptions = this.httpOptions();\n\n if (opt && opt.hasOwnProperty('queryParams') && !!opt.queryParams) {\n httpOptions = ({...httpOptions, ...{params: opt.queryParams}});\n }\n\n console.log('httpOptions', httpOptions);\n console.log('url', url);\n console.log('this.getUrl()', this.getUrl());\n\n return this.http.get(this.getUrl() + url, httpOptions).pipe(\n map(this.searchMap),\n ) as Observable<Response<T>>;\n\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":["CrudEnum","ActionEnum","createSelector","createAction","props","filter","isDevMode","on","createReducer","createEntityAdapter","switchMap","map","catchError","from","ofType","repeat","concatMap","HttpHeaders","of","mergeMap","Injectable","HttpClient"],"mappings":"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"}