CORD-772 Example UI Extension
Change-Id: I66f9236620a56219cc84a5f7ed5be719751db3bd
diff --git a/typings/globals/angular-resource/index.d.ts b/typings/globals/angular-resource/index.d.ts
new file mode 100644
index 0000000..0496d92
--- /dev/null
+++ b/typings/globals/angular-resource/index.d.ts
@@ -0,0 +1,204 @@
+// Generated by typings
+// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/19854af46f2bcd37cf416341ce74ef03ab1717b9/angularjs/angular-resource.d.ts
+declare module 'angular-resource' {
+ var _: string;
+ export = _;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// ngResource module (angular-resource.js)
+///////////////////////////////////////////////////////////////////////////////
+declare namespace angular.resource {
+
+ /**
+ * Currently supported options for the $resource factory options argument.
+ */
+ interface IResourceOptions {
+ /**
+ * If true then the trailing slashes from any calculated URL will be stripped (defaults to true)
+ */
+ stripTrailingSlashes?: boolean;
+ /**
+ * If true, the request made by a "non-instance" call will be cancelled (if not already completed) by calling
+ * $cancelRequest() on the call's return value. This can be overwritten per action. (Defaults to false.)
+ */
+ cancellable?: boolean;
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ResourceService
+ // see http://docs.angularjs.org/api/ngResource.$resource
+ // Most part of the following definitions were achieved by analyzing the
+ // actual implementation, since the documentation doesn't seem to cover
+ // that deeply.
+ ///////////////////////////////////////////////////////////////////////////
+ interface IResourceService {
+ (url: string, paramDefaults?: any,
+ /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
+ where deleteDescriptor : IActionDescriptor */
+ actions?: IActionHash, options?: IResourceOptions): IResourceClass<IResource<any>>;
+ <T, U>(url: string, paramDefaults?: any,
+ /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
+ where deleteDescriptor : IActionDescriptor */
+ actions?: IActionHash, options?: IResourceOptions): U;
+ <T>(url: string, paramDefaults?: any,
+ /** example: {update: { method: 'PUT' }, delete: deleteDescriptor }
+ where deleteDescriptor : IActionDescriptor */
+ actions?: IActionHash, options?: IResourceOptions): IResourceClass<T>;
+ }
+
+ // Hash of action descriptors allows custom action names
+ interface IActionHash {
+ [action: string]: IActionDescriptor
+ }
+
+ // Just a reference to facilitate describing new actions
+ interface IActionDescriptor {
+ method: string;
+ params?: any;
+ url?: string;
+ isArray?: boolean;
+ transformRequest?: angular.IHttpRequestTransformer | angular.IHttpRequestTransformer[];
+ transformResponse?: angular.IHttpResponseTransformer | angular.IHttpResponseTransformer[];
+ headers?: any;
+ cache?: boolean | angular.ICacheObject;
+ /**
+ * Note: In contrast to $http.config, promises are not supported in $resource, because the same value
+ * would be used for multiple requests. If you are looking for a way to cancel requests, you should
+ * use the cancellable option.
+ */
+ timeout?: number
+ cancellable?: boolean;
+ withCredentials?: boolean;
+ responseType?: string;
+ interceptor?: IHttpInterceptor;
+ }
+
+ // Allow specify more resource methods
+ // No need to add duplicates for all four overloads.
+ interface IResourceMethod<T> {
+ (): T;
+ (params: Object): T;
+ (success: Function, error?: Function): T;
+ (params: Object, success: Function, error?: Function): T;
+ (params: Object, data: Object, success?: Function, error?: Function): T;
+ }
+
+ // Allow specify resource moethod which returns the array
+ // No need to add duplicates for all four overloads.
+ interface IResourceArrayMethod<T> {
+ (): IResourceArray<T>;
+ (params: Object): IResourceArray<T>;
+ (success: Function, error?: Function): IResourceArray<T>;
+ (params: Object, success: Function, error?: Function): IResourceArray<T>;
+ (params: Object, data: Object, success?: Function, error?: Function): IResourceArray<T>;
+ }
+
+ // Baseclass for every resource with default actions.
+ // If you define your new actions for the resource, you will need
+ // to extend this interface and typecast the ResourceClass to it.
+ //
+ // In case of passing the first argument as anything but a function,
+ // it's gonna be considered data if the action method is POST, PUT or
+ // PATCH (in other words, methods with body). Otherwise, it's going
+ // to be considered as parameters to the request.
+ // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L461-L465
+ //
+ // Only those methods with an HTTP body do have 'data' as first parameter:
+ // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L463
+ // More specifically, those methods are POST, PUT and PATCH:
+ // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L432
+ //
+ // Also, static calls always return the IResource (or IResourceArray) retrieved
+ // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L538-L549
+ interface IResourceClass<T> {
+ new(dataOrParams? : any) : T & IResource<T>;
+ get: IResourceMethod<T>;
+
+ query: IResourceArrayMethod<T>;
+
+ save: IResourceMethod<T>;
+
+ remove: IResourceMethod<T>;
+
+ delete: IResourceMethod<T>;
+ }
+
+ // Instance calls always return the the promise of the request which retrieved the object
+ // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L538-L546
+ interface IResource<T> {
+ $get(): angular.IPromise<T>;
+ $get(params?: Object, success?: Function, error?: Function): angular.IPromise<T>;
+ $get(success: Function, error?: Function): angular.IPromise<T>;
+
+ $query(): angular.IPromise<IResourceArray<T>>;
+ $query(params?: Object, success?: Function, error?: Function): angular.IPromise<IResourceArray<T>>;
+ $query(success: Function, error?: Function): angular.IPromise<IResourceArray<T>>;
+
+ $save(): angular.IPromise<T>;
+ $save(params?: Object, success?: Function, error?: Function): angular.IPromise<T>;
+ $save(success: Function, error?: Function): angular.IPromise<T>;
+
+ $remove(): angular.IPromise<T>;
+ $remove(params?: Object, success?: Function, error?: Function): angular.IPromise<T>;
+ $remove(success: Function, error?: Function): angular.IPromise<T>;
+
+ $delete(): angular.IPromise<T>;
+ $delete(params?: Object, success?: Function, error?: Function): angular.IPromise<T>;
+ $delete(success: Function, error?: Function): angular.IPromise<T>;
+
+ $cancelRequest(): void;
+
+ /** the promise of the original server interaction that created this instance. **/
+ $promise : angular.IPromise<T>;
+ $resolved : boolean;
+ toJSON(): T;
+ }
+
+ /**
+ * Really just a regular Array object with $promise and $resolve attached to it
+ */
+ interface IResourceArray<T> extends Array<T & IResource<T>> {
+ $cancelRequest(): void;
+
+ /** the promise of the original server interaction that created this collection. **/
+ $promise : angular.IPromise<IResourceArray<T>>;
+ $resolved : boolean;
+ }
+
+ /** when creating a resource factory via IModule.factory */
+ interface IResourceServiceFactoryFunction<T> {
+ ($resource: angular.resource.IResourceService): IResourceClass<T>;
+ <U extends IResourceClass<T>>($resource: angular.resource.IResourceService): U;
+ }
+
+ // IResourceServiceProvider used to configure global settings
+ interface IResourceServiceProvider extends angular.IServiceProvider {
+
+ defaults: IResourceOptions;
+ }
+
+}
+
+/** extensions to base ng based on using angular-resource */
+declare namespace angular {
+
+ interface IModule {
+ /** creating a resource service factory */
+ factory(name: string, resourceServiceFactoryFunction: angular.resource.IResourceServiceFactoryFunction<any>): IModule;
+ }
+
+ namespace auto {
+ interface IInjectorService {
+ get(name: '$resource'): ng.resource.IResourceService;
+ }
+ }
+}
+
+interface Array<T>
+{
+ /** the promise of the original server interaction that created this collection. **/
+ $promise : angular.IPromise<Array<T>>;
+ $resolved : boolean;
+}
diff --git a/typings/globals/angular-resource/typings.json b/typings/globals/angular-resource/typings.json
new file mode 100644
index 0000000..bc04b28
--- /dev/null
+++ b/typings/globals/angular-resource/typings.json
@@ -0,0 +1,8 @@
+{
+ "resolution": "main",
+ "tree": {
+ "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/19854af46f2bcd37cf416341ce74ef03ab1717b9/angularjs/angular-resource.d.ts",
+ "raw": "registry:dt/angular-resource#1.5.0+20161114123626",
+ "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/19854af46f2bcd37cf416341ce74ef03ab1717b9/angularjs/angular-resource.d.ts"
+ }
+}