| Index: third_party/pkg/angular/lib/mock/http_backend.dart
|
| diff --git a/third_party/pkg/angular/lib/mock/http_backend.dart b/third_party/pkg/angular/lib/mock/http_backend.dart
|
| deleted file mode 100644
|
| index 20a8e97a7b3d167dc81fc2d2f86b03ee761d6e64..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/mock/http_backend.dart
|
| +++ /dev/null
|
| @@ -1,627 +0,0 @@
|
| -part of angular.mock;
|
| -
|
| -class _MockXhr {
|
| - var $$method, $$url, $$async, $$reqHeaders, $$respHeaders;
|
| -
|
| - void open(method, url, async) {
|
| - $$method = method;
|
| - $$url = url;
|
| - $$async = async;
|
| - $$reqHeaders = {};
|
| - $$respHeaders = {};
|
| - }
|
| -
|
| - var $$data;
|
| -
|
| - void send(data) {
|
| - $$data = data;
|
| - }
|
| -
|
| - void setRequestHeader(key, value) {
|
| - $$reqHeaders[key] = value;
|
| - }
|
| -
|
| - String getResponseHeader(name) {
|
| - // the lookup must be case insensitive, that's why we try two quick
|
| - // lookups and full scan at last
|
| - if ($$respHeaders.containsKey(name)) return $$respHeaders[name];
|
| -
|
| - name = name.toLowerCase();
|
| - if ($$respHeaders.containsKey(name)) return $$respHeaders[name];
|
| -
|
| - String header = null;
|
| - $$respHeaders.forEach((headerName, headerVal) {
|
| - if (header != null) return;
|
| - if (headerName.toLowerCase()) header = headerVal;
|
| - });
|
| - return header;
|
| - }
|
| -
|
| - getAllResponseHeaders() {
|
| - if ($$respHeaders == null) return '';
|
| -
|
| - var lines = [];
|
| -
|
| - $$respHeaders.forEach((key, value) {
|
| - lines.add("$key: $value");
|
| - });
|
| - return lines.join('\n');
|
| - }
|
| -
|
| - // noop
|
| - abort() {}
|
| -}
|
| -
|
| -/**
|
| - * An internal class used by [MockHttpBackend].
|
| - */
|
| -class MockHttpExpectation {
|
| - final method;
|
| - final url;
|
| - final data;
|
| - final headers;
|
| -
|
| - var response;
|
| -
|
| - MockHttpExpectation(this.method, this.url, [this.data, this.headers]);
|
| -
|
| - bool match(method, url, [data, headers]) {
|
| - if (method != method) return false;
|
| - if (!matchUrl(url)) return false;
|
| - if (data != null && !matchData(data)) return false;
|
| - if (headers != null && !matchHeaders(headers)) return false;
|
| - return true;
|
| - }
|
| -
|
| - bool matchUrl(u) {
|
| - if (url == null) return true;
|
| - if (url is RegExp) return url.hasMatch(u);
|
| - return url == u;
|
| - }
|
| -
|
| - bool matchHeaders(h) {
|
| - if (headers == null) return true;
|
| - if (headers is Function) return headers(h);
|
| - return "$headers" == "$h";
|
| - }
|
| -
|
| - bool matchData(d) {
|
| - if (data == null) return true;
|
| - if (d == null) return false;
|
| - if (data is File) return data == d;
|
| - assert(d is String);
|
| - if (data is RegExp) return data.hasMatch(d);
|
| - return JSON.encode(data) == JSON.encode(d);
|
| - }
|
| -
|
| - String toString() => "$method $url";
|
| -}
|
| -
|
| -
|
| -class _Chain {
|
| - final Function _respondFn;
|
| - _Chain({respond}): _respondFn = respond;
|
| - respond([x,y,z]) => _respondFn(x,y,z);
|
| -}
|
| -
|
| -/**
|
| - * A mock implementation of [HttpBackend], used in tests.
|
| - */
|
| -class MockHttpBackend implements HttpBackend {
|
| - var definitions = [],
|
| - expectations = [],
|
| - responses = [];
|
| -
|
| - /**
|
| - * This function is called from [Http] and designed to mimic the Dart APIs.
|
| - */
|
| - dart_async.Future request(String url,
|
| - {String method, bool withCredentials, String responseType,
|
| - String mimeType, Map<String, String> requestHeaders, sendData,
|
| - void onProgress(ProgressEvent e)}) {
|
| - dart_async.Completer c = new dart_async.Completer();
|
| - var callback = (status, data, headers) {
|
| - if (status >= 200 && status < 300) {
|
| - c.complete(new MockHttpRequest(status, data, headers));
|
| - } else {
|
| - c.completeError(new MockProgressEvent(
|
| - new MockHttpRequest(status, data, headers)));
|
| - }
|
| - };
|
| - call(method == null ? 'GET' : method, url, sendData, callback,
|
| - requestHeaders);
|
| - return c.future;
|
| - }
|
| -
|
| - _createResponse(statusOrDataOrFunction, dataOrHeaders, headersOrNone) {
|
| - if (statusOrDataOrFunction is Function) return statusOrDataOrFunction;
|
| - var status, data, headers;
|
| - if (statusOrDataOrFunction is num) {
|
| - status = statusOrDataOrFunction;
|
| - data = dataOrHeaders;
|
| - headers = headersOrNone;
|
| - } else {
|
| - status = 200;
|
| - data = statusOrDataOrFunction;
|
| - headers = dataOrHeaders;
|
| - }
|
| - if (data is Map || data is List) data = JSON.encode(data);
|
| -
|
| - return ([a,b,c,d,e]) => [status, data, headers];
|
| - }
|
| -
|
| -
|
| - /**
|
| - * A callback oriented API. This function takes a callback with
|
| - * will be called with (status, data, headers)
|
| - */
|
| - void call(method, [url, data, callback, headers, timeout]) {
|
| - var xhr = new _MockXhr(),
|
| - expectation = expectations.isEmpty ? null : expectations[0],
|
| - wasExpected = false;
|
| -
|
| - var prettyPrint = (data) {
|
| - return (data is String || data is Function || data is RegExp)
|
| - ? data
|
| - : JSON.encode(data);
|
| - };
|
| -
|
| - var wrapResponse = (wrapped) {
|
| - var handleResponse = () {
|
| - var response = wrapped.response(method, url, data, headers);
|
| - xhr.$$respHeaders = response[2];
|
| - utils.relaxFnApply(callback, [response[0], response[1],
|
| - xhr.getAllResponseHeaders()]);
|
| - };
|
| -
|
| - var handleTimeout = () {
|
| - for (var i = 0; i < responses.length; i++) {
|
| - if (identical(responses[i], handleResponse)) {
|
| - responses.removeAt(i);
|
| - callback(-1, null, '');
|
| - break;
|
| - }
|
| - }
|
| - };
|
| -
|
| - if (timeout != null) timeout.then(handleTimeout);
|
| - return handleResponse;
|
| - };
|
| -
|
| - if (expectation != null && expectation.match(method, url)) {
|
| - if (!expectation.matchData(data))
|
| - throw ['Expected $expectation with different data\n' +
|
| - 'EXPECTED: ${prettyPrint(expectation.data)}\nGOT: $data'];
|
| -
|
| - if (!expectation.matchHeaders(headers))
|
| - throw ['Expected $expectation with different headers\n'
|
| - 'EXPECTED: ${prettyPrint(expectation.headers)}\n'
|
| - 'GOT: ${prettyPrint(headers)}'];
|
| -
|
| - expectations.removeAt(0);
|
| -
|
| - if (expectation.response != null) {
|
| - responses.add(wrapResponse(expectation));
|
| - return;
|
| - }
|
| - wasExpected = true;
|
| - }
|
| -
|
| - for (var definition in definitions) {
|
| - if (definition.match(method, url, data, headers != null ? headers : {})) {
|
| - if (definition.response != null) {
|
| - // if $browser specified, we do auto flush all requests
|
| - responses.add(wrapResponse(definition));
|
| - } else throw ['No response defined !'];
|
| - return;
|
| - }
|
| - }
|
| - throw wasExpected ?
|
| - ['No response defined !'] :
|
| - ['Unexpected request: $method $url\n' + (expectation != null ?
|
| - 'Expected $expectation' :
|
| - 'No more requests expected')];
|
| - }
|
| -
|
| - /**
|
| - * Creates a new backend definition.
|
| - *
|
| - * @param {string} method HTTP method.
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {(Object|function(Object))=} headers HTTP headers or function that
|
| - * receives http header object and returns true if the headers match the
|
| - * current definition.
|
| - * @returns {requestHandler} Returns an object with `respond` method that
|
| - * control how a matched request is handled.
|
| - *
|
| - * - respond – `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
|
| - * – The respond method takes a set of static data to be returned or a function that can return
|
| - * an array containing response status (number), response data (string) and response headers
|
| - * (Object).
|
| - */
|
| - _Chain when(method, [url, data, headers]) {
|
| - var definition = new MockHttpExpectation(method, url, data, headers),
|
| - chain = new _Chain(respond: (status, data, headers) {
|
| - definition.response = _createResponse(status, data, headers);
|
| - });
|
| -
|
| - definitions.add(definition);
|
| - return chain;
|
| - }
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenGET
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for GET requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(Object|function(Object))=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain whenGET(url, [headers]) => when('GET', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenDELETE
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for DELETE requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(Object|function(Object))=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain whenDELETE(url, [headers]) => when('DELETE', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenJSONP
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for JSONP requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain whenJSONP(url, [headers]) => when('JSONP', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenPUT
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for PUT requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {(Object|function(Object))=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain whenPUT(url, [data, headers]) => when('PUT', url, data, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenPOST
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for POST requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {(Object|function(Object))=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain whenPOST(url, [data, headers]) => when('POST', url, data, headers);
|
| -
|
| - _Chain whenPATCH(url, [data, headers]) => when('PATCH', url, data, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#whenHEAD
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new backend definition for HEAD requests. For more info see `when()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(Object|function(Object))=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expect
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation.
|
| - *
|
| - * @param {string} method HTTP method.
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
| - * object and returns true if the headers match the current expectation.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - *
|
| - * - respond – `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
|
| - * – The respond method takes a set of static data to be returned or a function that can return
|
| - * an array containing response status (number), response data (string) and response headers
|
| - * (Object).
|
| - */
|
| - _Chain expect(method, [url, data, headers]) {
|
| - var expectation = new MockHttpExpectation(method, url, data, headers);
|
| - expectations.add(expectation);
|
| - return new _Chain(respond: (status, data, headers) {
|
| - expectation.response = _createResponse(status, data, headers);
|
| - });
|
| - }
|
| -
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectGET
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for GET requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled. See #expect for more info.
|
| - */
|
| - _Chain expectGET(url, [headers]) => expect('GET', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectDELETE
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for DELETE requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain expectDELETE(url, [headers]) => expect('DELETE', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectJSONP
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for JSONP requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain expectJSONP(url, [headers]) => expect('JSONP', url, null, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectPUT
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for PUT requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain expectPUT(url, [data, headers]) => expect('PUT', url, data, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectPOST
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for POST requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain expectPOST(url, [data, headers]) => expect('POST', url, data, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectPATCH
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for PATCH requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {(string|RegExp)=} data HTTP request body.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| - _Chain expectPATCH(url, [data, headers]) => expect('PATCH', url, data, headers);
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#expectHEAD
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Creates a new request expectation for HEAD requests. For more info see `expect()`.
|
| - *
|
| - * @param {string|RegExp} url HTTP url.
|
| - * @param {Object=} headers HTTP headers.
|
| - * @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
| - * request is handled.
|
| - */
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#flush
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Flushes all pending requests using the trained responses.
|
| - *
|
| - * @param {number=} count Number of responses to flush (in the order they arrived). If undefined,
|
| - * all pending requests will be flushed. If there are no pending requests when the flush method
|
| - * is called an exception is thrown (as this typically a sign of programming error).
|
| - */
|
| - void flush([count]) {
|
| - if (responses.isEmpty) throw ['No pending request to flush !'];
|
| -
|
| - if (count != null) {
|
| - while (count-- > 0) {
|
| - if (responses.isEmpty) throw ['No more pending request to flush !'];
|
| - responses.removeAt(0)();
|
| - }
|
| - } else {
|
| - while (!responses.isEmpty) {
|
| - responses.removeAt(0)();
|
| - }
|
| - }
|
| - verifyNoOutstandingExpectation();
|
| - }
|
| -
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#verifyNoOutstandingExpectation
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Verifies that all of the requests defined via the `expect` api were made. If any of the
|
| - * requests were not made, verifyNoOutstandingExpectation throws an exception.
|
| - *
|
| - * Typically, you would call this method following each test case that asserts requests using an
|
| - * "afterEach" clause.
|
| - *
|
| - * <pre>
|
| - * afterEach($httpBackend.verifyNoOutstandingExpectation);
|
| - * </pre>
|
| - */
|
| - void verifyNoOutstandingExpectation() {
|
| - if (!expectations.isEmpty) {
|
| - throw ['Unsatisfied requests: ${expectations.join(', ')}'];
|
| - }
|
| - }
|
| -
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#verifyNoOutstandingRequest
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Verifies that there are no outstanding requests that need to be flushed.
|
| - *
|
| - * Typically, you would call this method following each test case that asserts requests using an
|
| - * "afterEach" clause.
|
| - *
|
| - * <pre>
|
| - * afterEach($httpBackend.verifyNoOutstandingRequest);
|
| - * </pre>
|
| - */
|
| - void verifyNoOutstandingRequest() {
|
| - if (!responses.isEmpty) throw ['Unflushed requests: ${responses.length}'];
|
| - }
|
| -
|
| -
|
| - /**
|
| - * @ngdoc method
|
| - * @name ngMock.$httpBackend#resetExpectations
|
| - * @methodOf ngMock.$httpBackend
|
| - * @description
|
| - * Resets all request expectations, but preserves all backend definitions. Typically, you would
|
| - * call resetExpectations during a multiple-phase test when you want to reuse the same instance of
|
| - * $httpBackend mock.
|
| - */
|
| - void resetExpectations() {
|
| - expectations.length = 0;
|
| - responses.length = 0;
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * Mock implementation of the [HttpRequest] object returned from the HttpBackend.
|
| - */
|
| -class MockHttpRequest implements HttpRequest {
|
| - final bool supportsCrossOrigin = false;
|
| - final bool supportsLoadEndEvent = false;
|
| - final bool supportsOverrideMimeType = false;
|
| - final bool supportsProgressEvent = false;
|
| - final Events on = null;
|
| -
|
| - final dart_async.Stream<ProgressEvent> onAbort = null;
|
| - final dart_async.Stream<ProgressEvent> onError = null;
|
| - final dart_async.Stream<ProgressEvent> onLoad = null;
|
| - final dart_async.Stream<ProgressEvent> onLoadEnd = null;
|
| - final dart_async.Stream<ProgressEvent> onLoadStart = null;
|
| - final dart_async.Stream<ProgressEvent> onProgress = null;
|
| - final dart_async.Stream<ProgressEvent> onReadyStateChange = null;
|
| -
|
| - final dart_async.Stream<ProgressEvent> onTimeout = null;
|
| - final int readyState = 0;
|
| -
|
| - get responseText => response == null ? null : "$response";
|
| - Map<String, String> get responseHeaders => null;
|
| - final responseXml = null;
|
| - final String statusText = null;
|
| - final HttpRequestUpload upload = null;
|
| -
|
| - String responseType = null;
|
| - int timeout = 0;
|
| - bool withCredentials;
|
| -
|
| - final int status;
|
| - final response;
|
| - final String headers;
|
| -
|
| - MockHttpRequest(this.status, this.response, [this.headers]);
|
| -
|
| - void abort() {}
|
| - bool dispatchEvent(Event event) => false;
|
| - String getAllResponseHeaders() => headers;
|
| - String getResponseHeader(String header) => null;
|
| -
|
| - void open(String method, String url, {bool async, String user, String password}) {}
|
| - void overrideMimeType(String override) {}
|
| - void send([data]) {}
|
| - void setRequestHeader(String header, String value) {}
|
| - void addEventListener(String type, EventListener listener, [bool useCapture]) {}
|
| - void removeEventListener(String type, EventListener listener, [bool useCapture]) {}
|
| -}
|
| -
|
| -class MockProgressEvent implements ProgressEvent {
|
| - final bool bubbles = false;
|
| - final bool cancelable = false;
|
| - final DataTransfer clipboardData = null;
|
| - final EventTarget currentTarget;
|
| - final Element matchingTarget = null;
|
| - final bool defaultPrevented = false;
|
| - final int eventPhase = 0;
|
| - final bool lengthComputable = false;
|
| - final int loaded = 0;
|
| - final List<Node> path = null;
|
| - final int position = 0;
|
| - final Type runtimeType = null;
|
| - final EventTarget target = null;
|
| - final int timeStamp = 0;
|
| - final int total = 0;
|
| - final int totalSize = 0;
|
| - final String type = null;
|
| -
|
| - bool cancelBubble = false;
|
| -
|
| - MockProgressEvent(MockHttpRequest this.currentTarget);
|
| -
|
| - void preventDefault() {}
|
| - void stopImmediatePropagation() {}
|
| - void stopPropagation() {}
|
| -}
|
|
|