@huntsman-cancer-institute/dictionary-service 17.9.0 → 17.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
83
83
|
type: Inject,
|
|
84
84
|
args: [DICTIONARY_ENDPOINT]
|
|
85
85
|
}] }] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGljdGlvbmFyeS1zZXJ2aWNlL3NyYy9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQzs7O0FBS2pELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUM7QUFFcEY7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsSUFBZ0IsRUFBdUMsa0JBQTBCO1FBQWpGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBdUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO0lBQUcsQ0FBQztJQUVsRyxxQkFBcUIsQ0FBQyxTQUFpQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFDTSw0QkFBNEIsQ0FBQyxTQUFpQixFQUNqQixVQUFpQyxFQUNqQyxPQUF3QixFQUN4QixVQUFzQjtRQUV4RCxJQUFJLE9BQU8sR0FBNkIsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQzVELENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFD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a2VufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7RHJvcGRvd25FbnRyeX0gZnJvbSBcIi4uL21vZGVsL2Ryb3Bkb3duLWVudHJ5LmR0b1wiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlNZXRhZGF0YX0gZnJvbSBcIi4uL21vZGVsL2RpY3Rpb25hcnktbWV0YWRhdGEuZHRvXCI7XHJcblxyXG5leHBvcnQgY29uc3QgRElDVElPTkFSWV9FTkRQT0lOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFwiZGljdGlvbmFyeUVuZHBvaW50XCIpO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2VydmljZSBpbnRlcmFjdHMgd2l0aCB0aGUgZGljdGlvbmFyeSBhcGkuXHJcbiAqXHJcbiAqIFRoZSB0eXBpY2FsIGRpY3Rpb25hcnkgdXJsIHdvdWxkIGJlIFwiL2FwaS9kaWN0aW9uYXJpZXNcIlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeVNlcnZpY2Uge1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBASW5qZWN0KERJQ1RJT05BUllfRU5EUE9JTlQpIHByaXZhdGUgZGljdGlvbmFyeUVuZHBvaW50OiBzdHJpbmcpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXREaWN0aW9uYXJ5TWV0YURhdGEoY2xhc3NOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnlNZXRhZGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGljdGlvbmFyeU1ldGFkYXRhPih0aGlzLmRpY3Rpb25hcnlFbmRwb2ludCArIGNsYXNzTmFtZSArIFwiL21ldGFkYXRhXCIpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0RGljdGlvbmFyeU1ldGFEYXRhTG9hZGluZyhjbGFzc05hbWU6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlc3BvbnNlOiAoZGF0YTogT2JqZWN0KSA9PiBhbnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcj86IChlcnJvcikgPT4gYW55LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmluYWxpemU/OiAoKSA9PiBhbnkpOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4ge1xyXG5cclxuICAgIGxldCBsb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAgIHRoaXMuaHR0cC5nZXQ8T2JqZWN0PihcclxuICAgICAgdGhpcy5kaWN0aW9uYXJ5RW5kcG9pbnQgKyBjbGFzc05hbWUgKyBcIi9tZXRhZGF0YVwiKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBPYmplY3QpID0+IHtcclxuICAgICAgICBsb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIG9uUmVzcG9uc2UoZGF0YSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIG9uRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgb25GaW5hbGl6ZSgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBsb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRoZSBkaWN0aW9uYXJ5IG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBjbGFzcyBuYW1lLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXNzTmFtZVxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPE9iamVjdD59XHJcbiAgICovXHJcbiAgcHVibGljIGdldERpY3Rpb25hcnkoY2xhc3NOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2JqZWN0Pih0aGlzLmRpY3Rpb25hcnlFbmRwb2ludCArIGNsYXNzTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIGRpY3Rpb25hcnkgZGF0YSBiYXNlZCBvbiB0aGUgY2xhc3MgbmFtZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPYmplY3RbXT59XHJcbiAgICovXHJcbiAgcHVibGljIGdldERpY3Rpb25hcnlFbnRyaWVzKGNsYXNzTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxPYmplY3RbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T2JqZWN0W10+KHRoaXMuZGljdGlvbmFyeUVuZHBvaW50ICsgY2xhc3NOYW1lICsgXCIvZW50cmllc1wiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREaWN0aW9uYXJ5RW50cmllc0FzWE1MKGNsYXNzTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxTdHJpbmc+IHtcclxuICAgIGxldCBxdWVyeVBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiZm9ybWF0XCIsIFwieG1sXCIpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZGljdGlvbmFyeUVuZHBvaW50ICsgY2xhc3NOYW1lICsgXCIvZW50cmllc1wiLCB7b2JzZXJ2ZTogXCJib2R5XCIsIHBhcmFtczogcXVlcnlQYXJhbXMsIHJlc3BvbnNlVHlwZTogXCJ0ZXh0XCJ9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGREaWN0aW9uYXJ5RW50cmllcyhjbGFzc05hbWU6IHN0cmluZywgZW50cmllczogYW55W10pOiBPYnNlcnZhYmxlPE9iamVjdFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8T2JqZWN0W10+KHRoaXMuZGljdGlvbmFyeUVuZHBvaW50ICsgY2xhc3NOYW1lICsgXCIvZW50cmllcy9hZGRcIiwgZW50cmllcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlRGljdGlvbmFyeUVudHJpZXMoY2xhc3NOYW1lOiBzdHJpbmcsIGVudHJpZXM6IGFueVtdKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE9iamVjdFtdPih0aGlzLmRpY3Rpb25hcnlFbmRwb2ludCArIGNsYXNzTmFtZSArIFwiL2VudHJpZXMvZGVsZXRlXCIsIGVudHJpZXMsIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZURpY3Rpb25hcnlFbnRyaWVzKGNsYXNzTmFtZTogc3RyaW5nLCBlbnRyaWVzOiBhbnlbXSk6IE9ic2VydmFibGU8T2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxPYmplY3RbXT4odGhpcy5kaWN0aW9uYXJ5RW5kcG9pbnQgKyBjbGFzc05hbWUgKyBcIi9lbnRyaWVzL3VwZGF0ZVwiLCBlbnRyaWVzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREaWN0aW9uYXJ5RHJvcGRvd25FbnRyaWVzKGNsYXNzTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEcm9wZG93bkVudHJ5W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERyb3Bkb3duRW50cnlbXT4odGhpcy5kaWN0aW9uYXJ5RW5kcG9pbnQgKyBjbGFzc05hbWUgKyBcIi9kcm9wZG93bi1lbnRyaWVzXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERpY3Rpb25hcnlEcm9wZG93bkVudHJ5KGNsYXNzTmFtZTogc3RyaW5nLCBpZE5hbWU6IHN0cmluZywgaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RHJvcGRvd25FbnRyeT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RHJvcGRvd25FbnRyeT4odGhpcy5kaWN0aW9uYXJ5RW5kcG9pbnQgKyBjbGFzc05hbWUgKyBcIi9kcm9wZG93bi1lbnRyeVwiLFxyXG4gICAgICB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoaWROYW1lLCA8c3RyaW5nPjxhbnk+aWQpIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGZ1bGwgbGlzdCBvZiBkaWN0aW9uYXJpZXMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxPYmplY3RbXT59XHJcbiAgICovXHJcbiAgcHVibGljIGdldERpY3Rpb25hcmllcygpOiBPYnNlcnZhYmxlPE9iamVjdFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPYmplY3RbXT4odGhpcy5kaWN0aW9uYXJ5RW5kcG9pbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huntsman-cancer-institute-dictionary-service.mjs","sources":["../../../projects/dictionary-service/src/services/dictionary.service.ts","../../../projects/dictionary-service/src/dictionary-service.module.ts","../../../projects/dictionary-service/src/huntsman-cancer-institute-dictionary-service.ts"],"sourcesContent":["import {Inject, Injectable, InjectionToken} from \"@angular/core\";\nimport {HttpClient, HttpParams, HttpResponse} from \"@angular/common/http\";\n\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\nimport {DropdownEntry} from \"../model/dropdown-entry.dto\";\nimport {DictionaryMetadata} from \"../model/dictionary-metadata.dto\";\n\nexport const DICTIONARY_ENDPOINT = new InjectionToken<string>(\"dictionaryEndpoint\");\n\n/**\n * This service interacts with the dictionary api.\n *\n * The typical dictionary url would be \"/api/dictionaries\"\n */\n@Injectable()\nexport class DictionaryService {\n\n\n constructor(private http: HttpClient, @Inject(DICTIONARY_ENDPOINT) private dictionaryEndpoint: string) {}\n\n public getDictionaryMetaData(className: string): Observable<DictionaryMetadata> {\n return this.http.get<DictionaryMetadata>(this.dictionaryEndpoint + className + \"/metadata\");\n }\n public getDictionaryMetaDataLoading(className: string,\n onResponse: (data: Object) => any,\n onError?: (error) => any,\n onFinalize?: () => any): BehaviorSubject<boolean> {\n\n let loading: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n this.http.get<Object>(\n this.dictionaryEndpoint + className + \"/metadata\").subscribe(\n (data: Object) => {\n loading.next(false);\n onResponse(data);\n },\n (error) => {\n onError(error);\n },\n () => {\n onFinalize();\n }\n );\n\n return loading;\n }\n\n /**\n * Return the dictionary metadata based on the class name.\n *\n * @param {string} className\n * @returns {Observable<Object>}\n */\n public getDictionary(className: string): Observable<Object> {\n return this.http.get<Object>(this.dictionaryEndpoint + className);\n }\n\n /**\n * Return the dictionary data based on the class name.\n *\n * @param {string} className\n * @returns {Observable<Object[]>}\n */\n public getDictionaryEntries(className: string): Observable<Object[]> {\n return this.http.get<Object[]>(this.dictionaryEndpoint + className + \"/entries\");\n }\n\n public getDictionaryEntriesAsXML(className: string): Observable<String> {\n let queryParams: HttpParams = new HttpParams().set(\"format\", \"xml\");\n\n return this.http.get(this.dictionaryEndpoint + className + \"/entries\", {observe: \"body\", params: queryParams, responseType: \"text\"});\n }\n\n public addDictionaryEntries(className: string, entries: any[]): Observable<Object[]> {\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/add\", entries);\n }\n\n public deleteDictionaryEntries(className: string, entries: any[]): Observable<HttpResponse<any>> {\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/delete\", entries, { observe: \"response\" });\n }\n\n public updateDictionaryEntries(className: string, entries: any[]): Observable<Object[]> {\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/update\", entries);\n }\n\n public getDictionaryDropdownEntries(className: string): Observable<DropdownEntry[]> {\n return this.http.get<DropdownEntry[]>(this.dictionaryEndpoint + className + \"/dropdown-entries\");\n }\n\n public getDictionaryDropdownEntry(className: string, idName: string, id: number): Observable<DropdownEntry> {\n return this.http.get<DropdownEntry>(this.dictionaryEndpoint + className + \"/dropdown-entry\",\n { params: new HttpParams().set(idName, <string><any>id) });\n }\n\n /**\n * Returns a full list of dictionaries.\n *\n * @returns {Observable<Object[]>}\n */\n public getDictionaries(): Observable<Object[]> {\n return this.http.get<Object[]>(this.dictionaryEndpoint);\n }\n}\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\nimport {DICTIONARY_ENDPOINT, DictionaryService} from \"./services/dictionary.service\";\r\n\r\n/**\r\n * The module providing the dictionary service.\r\n *\r\n * @since 1.0.0\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class DictionaryServiceModule {\r\n static forRoot(config: any): ModuleWithProviders<DictionaryServiceModule> {\r\n return {\r\n providers: [\r\n {provide: DICTIONARY_ENDPOINT, useValue: config.dictionaryEndpoint},\r\n DictionaryService\r\n ],\r\n ngModule: DictionaryServiceModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"huntsman-cancer-institute-dictionary-service.mjs","sources":["../../../projects/dictionary-service/src/services/dictionary.service.ts","../../../projects/dictionary-service/src/dictionary-service.module.ts","../../../projects/dictionary-service/src/huntsman-cancer-institute-dictionary-service.ts"],"sourcesContent":["import {Inject, Injectable, InjectionToken} from \"@angular/core\";\r\nimport {HttpClient, HttpParams, HttpResponse} from \"@angular/common/http\";\r\n\r\nimport {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nimport {DropdownEntry} from \"../model/dropdown-entry.dto\";\r\nimport {DictionaryMetadata} from \"../model/dictionary-metadata.dto\";\r\n\r\nexport const DICTIONARY_ENDPOINT = new InjectionToken<string>(\"dictionaryEndpoint\");\r\n\r\n/**\r\n * This service interacts with the dictionary api.\r\n *\r\n * The typical dictionary url would be \"/api/dictionaries\"\r\n */\r\n@Injectable()\r\nexport class DictionaryService {\r\n\r\n\r\n constructor(private http: HttpClient, @Inject(DICTIONARY_ENDPOINT) private dictionaryEndpoint: string) {}\r\n\r\n public getDictionaryMetaData(className: string): Observable<DictionaryMetadata> {\r\n return this.http.get<DictionaryMetadata>(this.dictionaryEndpoint + className + \"/metadata\");\r\n }\r\n public getDictionaryMetaDataLoading(className: string,\r\n onResponse: (data: Object) => any,\r\n onError?: (error) => any,\r\n onFinalize?: () => any): BehaviorSubject<boolean> {\r\n\r\n let loading: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n this.http.get<Object>(\r\n this.dictionaryEndpoint + className + \"/metadata\").subscribe(\r\n (data: Object) => {\r\n loading.next(false);\r\n onResponse(data);\r\n },\r\n (error) => {\r\n onError(error);\r\n },\r\n () => {\r\n onFinalize();\r\n }\r\n );\r\n\r\n return loading;\r\n }\r\n\r\n /**\r\n * Return the dictionary metadata based on the class name.\r\n *\r\n * @param {string} className\r\n * @returns {Observable<Object>}\r\n */\r\n public getDictionary(className: string): Observable<Object> {\r\n return this.http.get<Object>(this.dictionaryEndpoint + className);\r\n }\r\n\r\n /**\r\n * Return the dictionary data based on the class name.\r\n *\r\n * @param {string} className\r\n * @returns {Observable<Object[]>}\r\n */\r\n public getDictionaryEntries(className: string): Observable<Object[]> {\r\n return this.http.get<Object[]>(this.dictionaryEndpoint + className + \"/entries\");\r\n }\r\n\r\n public getDictionaryEntriesAsXML(className: string): Observable<String> {\r\n let queryParams: HttpParams = new HttpParams().set(\"format\", \"xml\");\r\n\r\n return this.http.get(this.dictionaryEndpoint + className + \"/entries\", {observe: \"body\", params: queryParams, responseType: \"text\"});\r\n }\r\n\r\n public addDictionaryEntries(className: string, entries: any[]): Observable<Object[]> {\r\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/add\", entries);\r\n }\r\n\r\n public deleteDictionaryEntries(className: string, entries: any[]): Observable<HttpResponse<any>> {\r\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/delete\", entries, { observe: \"response\" });\r\n }\r\n\r\n public updateDictionaryEntries(className: string, entries: any[]): Observable<Object[]> {\r\n return this.http.post<Object[]>(this.dictionaryEndpoint + className + \"/entries/update\", entries);\r\n }\r\n\r\n public getDictionaryDropdownEntries(className: string): Observable<DropdownEntry[]> {\r\n return this.http.get<DropdownEntry[]>(this.dictionaryEndpoint + className + \"/dropdown-entries\");\r\n }\r\n\r\n public getDictionaryDropdownEntry(className: string, idName: string, id: number): Observable<DropdownEntry> {\r\n return this.http.get<DropdownEntry>(this.dictionaryEndpoint + className + \"/dropdown-entry\",\r\n { params: new HttpParams().set(idName, <string><any>id) });\r\n }\r\n\r\n /**\r\n * Returns a full list of dictionaries.\r\n *\r\n * @returns {Observable<Object[]>}\r\n */\r\n public getDictionaries(): Observable<Object[]> {\r\n return this.http.get<Object[]>(this.dictionaryEndpoint);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary\r\n */\r\nimport {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\nimport {DICTIONARY_ENDPOINT, DictionaryService} from \"./services/dictionary.service\";\r\n\r\n/**\r\n * The module providing the dictionary service.\r\n *\r\n * @since 1.0.0\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class DictionaryServiceModule {\r\n static forRoot(config: any): ModuleWithProviders<DictionaryServiceModule> {\r\n return {\r\n providers: [\r\n {provide: DICTIONARY_ENDPOINT, useValue: config.dictionaryEndpoint},\r\n DictionaryService\r\n ],\r\n ngModule: DictionaryServiceModule\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|